每当我尝试删除security.yml中的anonymous: ~
配置时,系统最终都会返回错误310:重定向循环。
这是迄今为止的配置:
firewalls:
secured_area:
pattern: ^/
#anonymous: ~
form_login:
check_path: /login_check
login_path: /login
logout:
path: /logout
答案 0 :(得分:4)
试试这个:
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: ~