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()」}' –