使用此配置:
firewalls:
login:
pattern: ^/login$
anonymous: ~
security: false
foo:
pattern: ^/foo$
anonymous: ~
security: false
secured_area:
pattern: ^/
form_login:
login_path: /login
check_path: /login_check
logout:
path: /logout
target: /
access_control:
- { path: ^/, roles: ROLE_ADMIN }
- { path: ^/foo, roles: IS_AUTHENTICATED_ANONYMOUSLY }
我希望能够匿名访问/foo
。但是,当我尝试在清除缓存后尝试去那里时,它将不允许我重定向到登录屏幕。
如何保留一条匿名访问路由,同时保留系统的其余部分以进行保护?
答案 0 :(得分:14)
替换
- { path: ^/foo, roles: IS_ANONYMOUS }
与
- { path: ^/foo, roles: IS_AUTHENTICATED_ANONYMOUSLY }
<强>更新强>
另外,我相信,你必须添加
- { path: ^/login, roles: IS_AUTHENTICATED_ANONYMOUSLY }
以使身份验证正常工作。
有关详细信息,请查看避免常见陷阱部分here。