【发布时间】:2014-06-08 00:32:41
【问题描述】:
我创建了一个自定义身份验证提供程序。有没有办法在身份验证提供者或侦听器中获取实体管理器?
我知道您可以在 UserProvider 中获取它,但事实是我只想在凭据正确时刷新用户(我针对 Windows 服务器 Active Directory 进行身份验证)
【问题讨论】:
标签: php symfony entitymanager
我创建了一个自定义身份验证提供程序。有没有办法在身份验证提供者或侦听器中获取实体管理器?
我知道您可以在 UserProvider 中获取它,但事实是我只想在凭据正确时刷新用户(我针对 Windows 服务器 Active Directory 进行身份验证)
【问题讨论】:
标签: php symfony entitymanager
是的,您可以在服务定义中注入实体管理器,例如:
services:
wsse.security.authentication.provider:
class: Acme\DemoBundle\Security\Authentication\Provider\WsseProvider
arguments: ["", "%kernel.cache_dir%/security/nonces", "@doctrine.orm.entity_manager"]
然后调整WsseProvider里面的__construct方法:
private $em;
public function __construct(UserProviderInterface $userProvider, $cacheDir, EntityManager $em)
{
$this->userProvider = $userProvider;
$this->cacheDir = $cacheDir;
$this->em = $em;
}
【讨论】: