通过角色进行 Symfony 访问控制
Symfony access control by roles
我有 FOSUserBundle
,我想做一个简单的访问列表路径,如果用户未登录,它将发送到登录页面,如果不是 ROLE_ADMIN
o 其他他不能转到 /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 }
我有 FOSUserBundle
,我想做一个简单的访问列表路径,如果用户未登录,它将发送到登录页面,如果不是 ROLE_ADMIN
o 其他他不能转到 /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 }