簡體   English   中英

多個防火牆Symfony安全性

[英]Multiple firewalls Symfony security

我的Symfony應用程序使用2個防火牆時出現錯誤。 我有一個用於普通成員的防火牆,另一個用於供應商的防火牆。

錯誤為“無法找到路徑“ / vendor / login-check”的控制器。也許您忘了在路由配置中添加匹配的路由?”

當我擊中任何登錄和注銷路由時,member_secured_area都可以正常工作,但不適用於vendor_secured_area路由。

當我轉到/ vendor / dashboard路由時,它將我重定向到/ vendor / login,但是發布到/ vendor / login-check失敗,並出現上述錯誤。

謝謝

firewalls:
        dev:
            pattern:  ^/(_(profiler|wdt)|css|images|js)/
            security: false
        vendor_secured_area:
            pattern: ^/vendor/dashboard
            provider: member
            anonymous: false
            form_login:
                login_path: vendor-login
                check_path: vendor-login-check
            logout:
                path: vendor-logout
                target: /
        member_secured_area:
            pattern: ^/
            provider: member
            anonymous: ~
            form_login:
                login_path: member-login
                check_path: member-login-check
                default_target_path: home
                success_handler: security.authentication_handler
                failure_handler: security.authentication_handler
            logout:
                path: member-logout
                target: /
            remember_me:
                key: "%secret_key%"
                lifetime: 2592000
                path: /
                domain: ~
    access_control:
        member_access:
            path: ^/member/dashboard
            roles: IS_AUTHENTICATED_REMEMBERED
#        vendor_access:
#            path: ^/vendor/dashboard
#            roles: IS_AUTHENTICATED_REMEMBERED

我發現了問題。 我的登錄,注銷和檢查路徑不在防火牆后面。

我必須允許匿名訪問我的供應商安全區域,以允許訪問登錄頁面,然后使用訪問控制來要求角色。

firewalls:
    dev:
        pattern:  ^/(_(profiler|wdt)|css|images|js)/
        security: false
    vendor_secured_area:
        pattern: ^/vendor/dashboard
        provider: member
        anonymous: ~
        form_login:
            login_path: vendor-login
            check_path: vendor-login-check
            default_target_path: vendor-dashboard-index
            always_use_default_target_path: true
        logout:
            path: vendor-logout
            target: /
    member_secured_area:
        pattern: ^/
        provider: member
        anonymous: ~
        form_login:
            login_path: member-login
            check_path: member-login-check
            default_target_path: home
            success_handler: security.authentication_handler
            failure_handler: security.authentication_handler
        logout:
            path: member-logout
            target: /
        remember_me:
            key: "%secret_key%"
            lifetime: 2592000
            path: /
            domain: ~
access_control:
    - { path: ^/member/dashboard, roles: IS_AUTHENTICATED_REMEMBERED }
    - { path: ^/vendor/dashboard/login$, roles: IS_AUTHENTICATED_ANONYMOUSLY }
    - { path: ^/vendor/dashboard, roles: IS_AUTHENTICATED_REMEMBERED }

暫無
暫無

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

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