セキュリティで保護されたルートがある場合、たとえばpanel
以下のように、Symfony はログインしているユーザーのみにアクセスを許可します。
- { path: ^/login$, role: IS_AUTHENTICATED_ANONYMOUSLY }
- { path: ^/register, role: IS_AUTHENTICATED_ANONYMOUSLY }
- { path: ^/resetting, role: IS_AUTHENTICATED_ANONYMOUSLY }
- { path: ^/panel, role: ROLE_USER }
ログインしていないユーザーの場合、常に login_path にリダイレクトされます (私は FOSUserBundle を使用しています)。
security:
firewalls:
main:
pattern: ^/
form_login:
provider: fos_userbundle
login_path: fos_user_security_login
このリダイレクトはどこで無効化または上書きできますか? ユーザーをリダイレクトせずに、ログインフォームを直接表示したい。
と関係があると思いAccessDeniedHandlerInterface
ますが、security.yml でどのキーを上書きする必要がありますか? そして、デフォルトの実装はどこですか?
他の状況についてはDefaultLogoutSuccessHandler, DefaultAuthenticationFailureHandler, DefaultAuthenticationSuccessHandler
、これらの状況ごとにサービスを実装できます。これにより、それぞれのインターフェイスが拡張され、カスタムの方法で状況を処理できます。ただし、AccessDenied については何も見つかりません。そのディレクトリには、インターフェイスのみが含まれています。