【发布时间】:2012-09-19 16:22:30
【问题描述】:
Symfony2 中的UserChecker 是用户认证的必要类。
假设您需要在控制器内对用户进行身份验证,您应该定义如下函数:
protected function authenticateUser(User $user) {
$user_checker = ...//Get here the user checker
try {
$user_checker->checkPostAuth($user);
} catch (AccountStatusException $e) {
return;
}
$providerKey = $this->container->getParameter('firewall_name');
$token = new UsernamePasswordToken($user, null, $providerKey, $user->getRoles());
$this->container->get('security.context')->setToken($token);
}
注意UserChecker 在 Symfony2 中被定义为非公共服务:
<service id="security.user_checker" class="%security.user_checker.class%" public="false" />
如何在控制器中获取UserChecker?
提前致谢
【问题讨论】:
-
我无法回答您的问题。可以举例说明吗?
标签: authentication symfony symfony-2.1