[英]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.