События ядра в классе KernelEvents.
По идее просто вешаетесть на kernel.request. В методе обработчике ваш код будет
Должно получится что-то типа этого:
class AutenticatorListener
{
private $securityContext;
private $firewall;
public function __construct(SecurityContext $securityContext, $firewall)
{
$this->securityContext = $securityContext;
$this->firewall = $firewall;
}
public function checkLogin(GetResponseEvent $event)
{
if (HttpKernel::SUB_REQUEST == $event->getRequestType()) {
return;
}
$request = $event->getRequest();
// ... ваш код
//....
//....
$token = new UsernamePasswordToken($user, null, $this->firewall, $user->getRoles());
$this->securityContext->setToken($token);
}
}