簡體   English   中英

symfony2配置防火牆-登錄時出現奇怪的行為

[英]symfony2 configuring the firewall - weird behaviour at login

我正在將symfony2與FOSUserBundle一起使用,並且試圖正確設置防火牆。

我希望匿名用戶不能訪問我網站的主要部分。 主頁(公共模式下的$)和其他一些模式應該可用。

使用當前配置,登錄后我將重定向到主頁,但仍以匿名身份登錄。 如果我之后直接輸入不允許直接匿名的頁面的URL,則可以訪問它並登錄(在探查器中)。

我的配置:

dev:
    pattern:  ^/(_(profiler|wdt)|css|images|js)/
    security: false
public:
    pattern:        /(login$|register|resetting|public|$)
    anonymous:      true
main:
    pattern:        ^/
    anonymous:      false
    provider:       main
    form_login:
        login_path: fos_user_security_login
        check_path: fos_user_security_check
    logout:
        path:       fos_user_security_logout
        target:     /

我該怎么做才能使其正常工作(登錄后正確記錄)。

編輯:我更好地了解發生了什么:登錄后,我被重定向到首頁=根地址。 這首先落入公共防火牆,這就是為什么我不被視為已連接。

做完了! 解決方案涉及防火牆的上下文屬性,在此處對其進行更好的描述: 使用一個登錄表單對多個symfony2防火牆進行身份驗證

我的配置現在變為:

防火牆:

dev:
    pattern:  ^/(_(profiler|wdt)|css|images|js)/
    security: false
guest:
    pattern:        /(user/login$|user/register|user/resetting|$)
    anonymous:      true
    context:        main_auth
main:
    pattern:        ^/(?!user/login$)
    anonymous:      false
    provider:       main
    context:        main_auth
    form_login:
        login_path: fos_user_security_login
        check_path: fos_user_security_check
    logout:
        path:       fos_user_security_logout
        target:     /
    remember_me:
        key:      "%secret%"
        lifetime: 86400 # 365 jours en secondes
        path:     /
        domain:   ~ # Prend la valeur par défaut du domaine courant depuis $_SERVER
    oauth:
        remember_me: true
        resource_owners:
            facebook:           "/loginhwi/check-facebook"
            github:             "/loginhwi/check-github"
            google:             "/loginhwi/check-google"
            twitter:            "/loginhwi/check-twitter"
            linkedin:           "/loginhwi/check-linkedin"
            flickr:             "/loginhwi/check-flickr"
        login_path:        fos_user_security_login
        check_path:        fos_user_security_check
        failure_path:      fos_user_security_login
        success_handler:  foodmeup_user.handler_auth
        oauth_user_provider:
            service: fosubuser.provider

好吧,您始終可以在登錄后對您重定向的路徑進行硬編碼(在security.yml文件中)。 你可以在這里閱讀更多

security:
    firewalls:
        main:
            form_login:
                default_target_path: default_security_target

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM