【问题标题】:Symfony2 - get EntityManager in Auth ProviderSymfony2 - 在 Auth Provider 中获取 EntityManager
【发布时间】:2014-06-08 00:32:41
【问题描述】:

我创建了一个自定义身份验证提供程序。有没有办法在身份验证提供者或侦听器中获取实体管理器?

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

【问题讨论】:

    标签: php symfony entitymanager


    【解决方案1】:

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

    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;
    }
    

    【讨论】:

    • 对!应该知道这一点。但是非常感谢您的快速回答;)
    猜你喜欢
    • 2013-11-25
    • 2011-08-08
    • 2015-05-01
    • 1970-01-01
    • 1970-01-01
    • 2021-05-23
    • 1970-01-01
    • 1970-01-01
    • 2013-01-19
    相关资源
    最近更新 更多