0

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

構成を解析して、ハンドラー内からデフォルトのハンドラーで使用できるようにする方法を知っている人はいますか?

サービスコンテナをハンドラーに渡すことで実現できると思います。仕事から帰ってきたらこれを試してみます。

4

1 に答える 1