[英]Symfony access control by roles
我有FOSUserBundle
,我想做一个简单的访问列表路径,如果未登录用户,它将发送到登录页面,如果不是ROLE_ADMIN
,则他不能进入/admin
页面。
我写在我security.yml
:
access_control:
- { path: ^/login$, role: IS_AUTHENTICATED_ANONYMOUSLY }
- { path: ^/register, role: IS_AUTHENTICATED_ANONYMOUSLY }
- { path: ^/resetting, role: IS_AUTHENTICATED_ANONYMOUSLY }
- { path: ^/, role: IS_AUTHENTICATED_FULLY }
- { path: ^/admin, role: ROLE_ADMIN }
但是现在所有登录的用户都可以转到/admin page
...
我不明白我的错。
规则按照其编写的顺序进行解析,
- { path: ^/, role: IS_AUTHENTICATED_FULLY }
如果用户通过身份验证,将授予对/
下所有区域的访问权限
您需要切换最后两个规则,所有规则肯定会按预期工作。
尝试改变
- { path: ^/, role: IS_AUTHENTICATED_FULLY }
- { path: ^/admin, role: ROLE_ADMIN }
至
- { path: ^/admin, role: ROLE_ADMIN }
- { path: ^/, role: IS_AUTHENTICATED_FULLY }
只需删除
- { path: ^/, role: IS_AUTHENTICATED_FULLY }
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.