4
比方说,我有下security.yml
我access_control
块:的Symfony2 - 设置安全ACCESS_CONTROL为只允许匿名认证
access_control:
- { path: ^/$, roles: IS_AUTHENTICATED_ANONYMOUSLY }
- { path: ^/reset-password, roles: IS_AUTHENTICATED_ANONYMOUSLY }
在这种情况下,每个人都alowed进入homepage
和reset-password
页面。但是我想只允许这些网页用于匿名验证的用户。完全认证的用户应该获得403 access denied error
或404 page not found
。
根据documentation与allow_if
我应该创建角色表达式来定义访问。但是,如果我不喜欢这样写道:
access_control:
- { path: ^/reset-password, allow_if: "has_role('IS_AUTHENTICATED_ANONYMOUSLY') and not has_role('IS_AUTHENTICATED_FULLY')" }
现在下面的想法完全验证的用户(登录)不应该被允许访问的页面和匿名认证应该能够访问,但是,可惜的是没有的,用户能够访问它...
任何想法我失踪?
UPDATE
这得到它的工作,通过正确答案波纹管提示:
- { path: ^/reset-password, allow_if: "is_anonymous() and !is_authenticated()" }
完善它使人们的工作就好了! ' - {path:^/reset-password,allow_if:“is_anonymous()and!is_authenticated()”}' –