我在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 - 同时显示登录表单,但是当我尝试使用登录表单进行身份验证时,它会崩溃,或者只是显示此错误。
如何设置路由以匹配防火墙模式?
更新: 添加了访问控制的路径,仍然无法正常工作,同样的错误。
答案 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)
除非您有两个合法不同的身份验证系统和用户(例如,主站点的表单登录和API的令牌系统),我们建议只启用一个防火墙条目并启用匿名密钥。
所以你的配置设置可能是这样的:
firewalls:
secured_area:
pattern: ^/
anonymous: true
form_login:
check_path: security_login_check
login_path: security_login_form
查看本章以获取更多信息