簡體   English   中英

Symfony角色訪問控制

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

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM