2011-09-02 58 views

回答

4

如果我没有记错,诀窍是将令牌直接设置为security.context服务。由于您使用的是用户名/密码对,因此您可以实例化一个UsernamePasswordToken类并将其设置在安全上下文中。

$securityContext = $this->get('security.context'); 
$token = new UsernamePasswordToken($username, $password, $providerKey, $roles); 

$securityContext->setToken($token); 

对于$user$password$roles参数,这是显而易见的。对于$providerKey,我必须承认,我完全不知道要在这一个中放置什么。因此,也许从AuthenticationProvider获取令牌可能会更容易,或者如果您已经有权访问TokenInterface对象。

我的anwser的主要观点是通过方法setToken将令牌直接设置到SecurityContext对象中。但我不确定如何检索或创建令牌:)

希望得到这个帮助。

问候,
马特

+3

$ providerKey是防火墙的名称,如app/config/security.yml中设置的那样 –