public function handle(Event $event)
{
$request = $event->get('request');
if (!$request->get($this->usernameParameter)) {
return;
}
if ('_exit' === $request->get($this->usernameParameter)) {
$this->securityContext->setToken($this->attemptExitUser($request));
} else {
try {
$this->securityContext->setToken($this->attemptSwitchUser($request));
} catch (AuthenticationException $e) {
if (null !== $this->logger) {
$this->logger->debug(sprintf('Switch User failed: "%s"', $e->getMessage()));
}
}
}
$response = new Response();
$request->server->set('QUERY_STRING', '');
$response->setRedirect($request->getUri(), 302);
$event->setReturnValue($response);
return true;
}