安全なルートがある場合は、panel
のように、Symfonyはログインしているユーザーのみにアクセスを許可します。それにはログインしていないユーザーのためにsymfonyのセキュリティのログインページへのリダイレクト
- { path: ^/login$, role: IS_AUTHENTICATED_ANONYMOUSLY }
- { path: ^/register, role: IS_AUTHENTICATED_ANONYMOUSLY }
- { path: ^/resetting, role: IS_AUTHENTICATED_ANONYMOUSLY }
- { path: ^/panel, role: ROLE_USER }
常に(私はFOSUserBundleを使用しています)login_pathにリダイレクトされます:
私は無効にするか、このリダイレクトを無効にすることができますsecurity:
firewalls:
main:
pattern: ^/
form_login:
provider: fos_userbundle
login_path: fos_user_security_login
?私は、ユーザーをリダイレクトすることなく、直接ログインフォームを表示したい。
AccessDeniedHandlerInterface
と関係がありますが、security.ymlでどのような鍵を上書きする必要がありますか?そして、デフォルトの実装はどこですか?
その他の状況では、DefaultLogoutSuccessHandler, DefaultAuthenticationFailureHandler, DefaultAuthenticationSuccessHandler
があり、これらの状況ごとにサービスを実装することができます。それぞれのインターフェイスが拡張され、状況に応じてカスタム処理が可能です。しかし、AccessDeniedには何も見つかりません。 Its directoryにはインターフェイスのみが含まれています。
どのような利点がありますか?ログインした後、ユーザーは/ panelにリダイレクトされ、何の違いも感じられません。何が欠けていますか? – ccKep
いくつかのルートにログインページを追加したいと思います。ユーザーはそのページにアクセスしたいがログインしていないので、ログインフォームを表示し、ログイン後(ajaxで)彼はパネルにリダイレクトされる。 –
にログインフォームを表示するには、匿名アクセスを許可する必要があります。コントローラの許可を確認してください(例: – Heah