許すのは、私がsecurity.yml
の下で私のaccess_control
ブロックを持っていると言うためにセキュリティACCESS_CONTROLを設定します。Symfony2の - だけで認証された匿名で
access_control:
- { path: ^/$, roles: IS_AUTHENTICATED_ANONYMOUSLY }
- { path: ^/reset-password, roles: IS_AUTHENTICATED_ANONYMOUSLY }
この場合、誰もがhomepage
とreset-password
ページを入力することalowedされます。しかし、これらのページは匿名で認証されたユーザーにのみ許可したいと考えています。完全に認証されたユーザーには、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()" }
それがうまく動作製パーフェクト! ' - {パス:^ /リセットパスワード、allow_if:" is_anonymous()と!is_authenticated() "}' –