这是我的 security.yml 的访问控制列表的样子:
access_control:
- { path: ^/admin, roles: IS_AUTHENTICATED_FULLY }
- { path: ^/admin, roles: ROLE_ADMIN }
我想要做的是,用户必须具有两个角色(ROLE_ADMIN 和 IS_AUTHENTICATED_FULLY)才能访问定义的路径。但根据上述规则,如果用户具有任何一种角色,则用户可以访问我不想要的定义的路径。我也尝试给出如下规则但没有成功:
- { path: ^/admin, roles:[ROLE_ADMIN,IS_AUTHENTICATED_FULLY] }
如何添加要求用户具有两个角色才能访问定义的路径的规则?
IS_AUTHENTICATED_FULLY
当用户实际经过身份验证时返回 true。
匿名用户在技术上经过身份验证,这意味着
匿名用户对象的 isAuthenticated() 方法将返回 true。
要检查您的用户是否确实经过身份验证,请检查
IS_AUTHENTICATED_FULLY 角色。
因此,如果用户具有 ROLE_ADMIN 角色并已登录,则他已通过完全身份验证。因此,无需设置此要求:
- { path: ^/admin, roles: IS_AUTHENTICATED_FULLY }
因为您已经(见下文)其中包括经过完全身份验证
- { path: ^/admin, roles: ROLE_ADMIN }
And
- { path: ^/admin, roles: IS_AUTHENTICATED_FULLY }
将允许任何用户查看管理部分。
Read: http://symfony.com/doc/current/book/security.html http://symfony.com/doc/current/book/security.html
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)