0

我正在尝试为我的用户计算失败和成功的登录次数。为此,我只想在身份验证尝试成功或失败时增加数据库中的相应计数器。但我想保留默认行为而不重新发明它。

所以我关注了这篇文章:Symfony2 在扩展 DefaultAuthenticationSuccessHandler 时保持行为

但显然我不能向我的 DefaultAuthenticationSuccessHandler 子类的构造函数添加任何参数,或者 Symfony 抱怨参数类型错误。

如何将我的用户管理服务作为构造函数参数注入?

编辑:实际上,问题似乎有点不同!我的 services.yml 中有以下行:

services:
 security.authentication.success_handler:
  class: %security.authentication.success_handler.class%
  arguments: [@my_stuff.my_user_management_service, @security.http_utils, {}]

但是传递给构造函数的第二个参数是一个包含“login_path”等选项的数组。但它应该是 HttpUtils 的一个实例。我很困惑...

4

1 回答 1

0

我自己想通了:参数的顺序很重要。我不得不将 my_stuff.my_user_management_service 移动到参数数组的末尾,如下所示:

arguments: [@security.http_utils, {}, @my_stuff.my_user_management_service]

不过,我真的不明白为什么。参数注入有问题。也许有人有一些见识?

于 2013-08-26T08:04:52.247 回答