【问题标题】:Symfony access control by rolesSymfony 角色访问控制
【发布时间】:2018-02-05 11:06:21
【问题描述】:

我有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...

我不明白我的错误。

【问题讨论】:

    标签: symfony security fosuserbundle


    【解决方案1】:

    删除

    - { path: ^/, role: IS_AUTHENTICATED_FULLY }
    

    【讨论】:

      【解决方案2】:

      尝试改变

          - { path: ^/, role: IS_AUTHENTICATED_FULLY }
          - { path: ^/admin, role: ROLE_ADMIN }
      

          - { path: ^/admin, role: ROLE_ADMIN }
          - { path: ^/, role: IS_AUTHENTICATED_FULLY }
      

      【讨论】:

        【解决方案3】:

        规则按照编写顺序进行解析,

        - { path: ^/, role: IS_AUTHENTICATED_FULLY }
        

        如果用户通过身份验证,将授予对 / 下所有区域的访问权限

        您需要切换最后两条规则,所有规则肯定会按您的预期工作。

        【讨论】:

          猜你喜欢
          • 2013-08-27
          • 2018-06-04
          • 2010-09-11
          • 2013-05-08
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多