繁体   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