我创建了一个自定义身份验证提供程序。有没有办法让auth提供者或监听者获得实体经理?
我知道你可以在UserProvider中获取它,但事实是我只想在凭据正确时刷新用户(我对Windows服务器Active Directory进行身份验证)
答案 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;
}