2012-09-19 16 views
1

UserChecker in Symfony2是用户认证所必需的一类。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

在此先感谢

+0

我不明白你的问题。你能用例子来解释吗? –

+0

@AsishAP完成... :) – JeanValjean

回答