当 symfony2 通过登录表单对用户进行身份验证时,security.authentication.success会触发一个事件并由DefaultAuthenticationSuccessHandler. 这个对象的构造函数有两个参数HttpUtils $httpUtils和array $options。变量$options不为空,并且包含以下配置选项security.yml:
login_path => pkr_blog_admin_login
user_referer => false
...
我创建了一个AuthenticationSuccessHandler扩展的服务,DefaultAuthenticationSuccessHandler但找不到将值security.yml作为 $options 传递给我的对象的构造函数的方法。我怎样才能做到这一点?
我曾尝试使用 xdebug 逐步调试来查看这些选项是如何传递给DefaultAuthenticationSuccessHandler但在代码中找不到确切位置的:/
//编辑
我发现此配置已设置src/Symfony/Bundle/SecurityBundle/DependencyInjection/Security/Factory/AbstractFactory.php并且仅适用于默认处理程序。
以下是一些关于未从security.yml自定义处理程序中获取配置的评论:
https://github.com/symfony/symfony/issues/5432
https://github.com/symfony/symfony/issues/5488
任何人都知道从我的处理程序中获取配置解析并准备好使用默认处理程序的方法吗?
我想这可以通过将服务容器传递给我的处理程序来完成。当我下班回来时,我会试试这个。