试试这个:
firewalls:
secured_area:
pattern: ^/
#anonymous: ~
form_login:
check_path: /login_check
login_path: /login
logout:
path: /logout
login_firewall:
pattern: ^/login$
anonymous: ~
请参阅文档http://symfony.com/doc/current/book/security.html#book-security-common-pitfalls
确保登录页面不安全
此外,请确保登录页面不需要查看任何角色。例如,以下配置 - 需要所有 URL(包括 /login URL)的 ROLE_ADMIN 角色,将导致重定向循环:
access_control:
- { path: ^/, roles: ROLE_ADMIN }
删除 /login URL 上的访问控制可以解决问题:
access_control:
- { path: ^/login, roles: IS_AUTHENTICATED_ANONYMOUSLY }
- { path: ^/, roles: ROLE_ADMIN }
此外,如果您的防火墙不允许匿名用户,您需要创建一个允许匿名用户登录页面的特殊防火墙:
firewalls:
login_firewall:
pattern: ^/login$
anonymous: ~
secured_area:
pattern: ^/
form_login: ~