【问题标题】:Multiple firewalls Symfony security多个防火墙 Symfony 安全性
【发布时间】:2014-10-28 05:58:16
【问题描述】:

我在为我的 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

【问题讨论】:

  • 你有响应/vendor/login-check URL 的路由吗?如果你运行app/console router:debug | grep login,它会出现吗?
  • @Hpatoio 是的。我知道它有效,因为我交换了 2 条检查路线并且它适用于成员。

标签: php security symfony authentication


【解决方案1】:

我找到了问题。我的登录、注销和检查路径不在防火墙后面。

我必须允许匿名访问我的供应商安全区域以允许访问登录页面,然后使用访问控制要求角色。

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 }

【讨论】:

    猜你喜欢
    • 2022-08-20
    • 2020-10-01
    • 2015-01-19
    • 2015-09-09
    • 1970-01-01
    • 2020-11-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多