如何在onKernelRequest事件中获取security.context。Symfony2

如何在onKernelRequest事件中获取security.context。Symfony2,symfony,listener,Symfony,Listener,我试图从侦听器事件“onKernelRequest”获取用户会话,但security.context尚不存在,每次都返回null 如何创建在安全上下文之后读取的请求侦听器 多谢各位 类CurrencyListener实现EventSubscriberInterface{ 私人美元默认货币; 私人$serviceContainer; 公共函数构造($default\u currency,$serviceContainer){ $this->default\u currency=strtoupper

我试图从侦听器事件“onKernelRequest”获取用户会话,但security.context尚不存在,每次都返回null

如何创建在安全上下文之后读取的请求侦听器

多谢各位

类CurrencyListener实现EventSubscriberInterface{
私人美元默认货币;
私人$serviceContainer;
公共函数构造($default\u currency,$serviceContainer){
$this->default\u currency=strtoupper($default\u currency);
$this->serviceContainer=$serviceContainer;
}
onKernelRequest公共函数(GetResponseEvent$事件){
$request=$event->getRequest();
var_dump($this->serviceContainer->get('security.context')->getToken());
}
公共静态函数getSubscribedEvents(){
返回数组(
KernelEvents::REQUEST=>array(array('onKernelRequest',15)),
);
}
}
将“onKernelRequest”侦听器优先级更改为小于8(防火墙的默认优先级)


请看这里:

为什么不在security.context应该就绪而不是依赖优先级时侦听kernel.controller之类的事件?此外,您不应该在服务中插入
服务容器。在您的示例中,您应该插入旧的
security.context
或更新的
security.token\u存储。例如,请参阅的“避免代码依赖于容器”部分。