symfony2 がログイン フォームでユーザーを認証すると、イベントsecurity.authentication.success
が発生し、 によって処理されDefaultAuthenticationSuccessHandler
ます。このオブジェクトのコンストラクタは、 と の 2 つの引数HttpUtils $httpUtils
を取りますarray $options
。変数$options
は空ではなく、次のsecurity.yml
ような構成オプションが含まれています:
login_path => pkr_blog_admin_login
user_referer => false
...
AuthenticationSuccessHandler
拡張するサービスを作成しましたが、値を $options からオブジェクトのコンストラクターにDefaultAuthenticationSuccessHandler
渡す方法が見つかりません。security.yml
これどうやってするの?
これらのオプションがどのように渡されるかを確認するために、xdebug の段階的なデバッグを使用してみましDefaultAuthenticationSuccessHandler
たが、コード内の正確な場所を見つけることができませんでした:/
//編集
この構成はデフォルトの handlersrc/Symfony/Bundle/SecurityBundle/DependencyInjection/Security/Factory/AbstractFactory.php
にのみ設定されていることがわかりました。
security.yml
カスタム ハンドラーで構成を取得しないことについてのコメントを次に示します。
https://github.com/symfony/symfony/issues/5432
https://github.com/symfony/symfony/issues/5488
構成を解析して、ハンドラー内からデフォルトのハンドラーで使用できるようにする方法を知っている人はいますか?
サービスコンテナをハンドラーに渡すことで実現できると思います。仕事から帰ってきたらこれを試してみます。