Symfony2 - 在Auth Provider中获取EntityManager

时间:2014-04-23 09:14:32

标签: php symfony entitymanager

我创建了一个自定义身份验证提供程序。有没有办法让auth提供者或监听者获得实体经理?

我知道你可以在UserProvider中获取它,但事实是我只想在凭据正确时刷新用户(我对Windows服务器Active Directory进行身份验证)

1 个答案:

答案 0 :(得分:1)

是的,您可以在服务定义中注入实体管理器,例如:

services:
    wsse.security.authentication.provider:
        class: Acme\DemoBundle\Security\Authentication\Provider\WsseProvider
        arguments: ["", "%kernel.cache_dir%/security/nonces", "@doctrine.orm.entity_manager"]

然后在WiseProvider中调整__construct方法:

private $em;

public function __construct(UserProviderInterface $userProvider, $cacheDir, EntityManager $em)
{
    $this->userProvider = $userProvider;
    $this->cacheDir     = $cacheDir;
    $this->em           = $em;
}