防火墙模式不匹配登录方法的check_path

时间:2015-02-18 12:16:43

标签: php symfony symfony-2.5

我在Symfony2上为登录表单配置安全层,但此错误不断出现:

InvalidConfigurationException: Invalid configuration for path 
"security.firewalls.gestor_area": The check_path "^/ES/gestor/login_check" 
for login method "form_login" is not matched by the firewall pattern "^/ES/gestor".

security.yml 的相关部分是:

firewalls:
    dev:
        pattern:  ^/(_(profiler|wdt)|css|images|js)/
        security: false

    gestor_area:
        pattern: ^/ES/gestor
        http_basic: ~
        provider: db
        form_login:
            login_path: weblogin_login
            check_path: ^/ES/gestor/login_check

    access_control: 
           - { path: ^/ES/gestor, roles: ROLE_ADMIN } 
           - { path: weblogin_login, roles: IS_AUTHENTICATED_ANONYMOUSLY } 
           - { path: ^/ES/gestor/login_check, roles: IS_AUTHENTICATED_ANONYMOUSLY } 
           - { path: ^/PT/project, roles: ROLE_ADMIN } 
           - { path: ^/FR/project, roles: ROLE_ADMIN } 
           - { path: ^/CL/project, roles: ROLE_ADMIN } 
           - { path: ^/ES/project, roles: ROLE_ADMIN } 
           - { path: ^/, roles: IS_AUTHENTICATED_ANONYMOUSLY }

使其完全正常工作http autentification - 同时显示登录表单,但是当我尝试使用登录表单进行身份验证时,它会崩溃,或者只是显示此错误。

如何设置路由以匹配防火墙模式?

更新: 添加了访问控制的路径,仍然无法正常工作,同样的错误。

2 个答案:

答案 0 :(得分:0)

您可以使用我的管理防火墙,它适用于我。 我使用jms i18n翻译生根包与fos用户包和sonata管理包。

    admin:
        pattern:            /admin(.*)
        context:            user
        form_login:
            provider:       fos_userbundle
            login_path:     sonata_user_admin_security_login
            use_forward:    false
            check_path:     sonata_user_admin_security_check
            failure_path:   null
        logout:
            path:           sonata_user_admin_security_logout
        anonymous:          true

答案 1 :(得分:-2)

关注Symfony Best Practices

  

除非您有两个合法不同的身份验证系统和用户(例如,主站点的表单登录和API的令牌系统),我们建议只启用一个防火墙条目并启用匿名密钥。

所以你的配置设置可能是这样的:

firewalls:
    secured_area:
        pattern: ^/
        anonymous: true
        form_login:
            check_path: security_login_check
            login_path: security_login_form

查看本章以获取更多信息