假设我access_control
在下面有我的块security.yml
:
access_control:
- { path: ^/$, roles: IS_AUTHENTICATED_ANONYMOUSLY }
- { path: ^/reset-password, roles: IS_AUTHENTICATED_ANONYMOUSLY }
在这种情况下,每个人都可以进入homepage
和reset-password
页面。但我想只允许匿名身份验证的用户使用这些页面。完全认证的用户应该得到一个403 access denied error
or 404 page not found
。
根据I should be ablo 创建角色表达式来定义访问权限的文档。allow_if
但如果我这样做:
access_control:
- { path: ^/reset-password, allow_if: "has_role('IS_AUTHENTICATED_ANONYMOUSLY') and not has_role('IS_AUTHENTICATED_FULLY')" }
现在遵循这个想法,完全身份验证的用户(登录)不应该被允许访问页面并且匿名身份验证应该能够访问,但是,不幸的是,没有用户能够访问它......
有什么我想念的想法吗?
更新
这使它按照正确答案的建议工作:
- { path: ^/reset-password, allow_if: "is_anonymous() and !is_authenticated()" }