migrating session for UsernamePasswordJsonAuthenticationListener

This commit is contained in:
Ryan Weaver 2018-05-22 10:38:56 -04:00 committed by Fabien Potencier
parent 73432d5fbb
commit 891ae6b28b

View File

@ -139,6 +139,8 @@ class UsernamePasswordJsonAuthenticationListener implements ListenerInterface
$this->logger->info('User has been authenticated successfully.', array('username' => $token->getUsername()));
}
$this->migrateSession($request);
$this->tokenStorage->setToken($token);
if (null !== $this->eventDispatcher) {
@ -182,4 +184,15 @@ class UsernamePasswordJsonAuthenticationListener implements ListenerInterface
return $response;
}
private function migrateSession(Request $request)
{
if (!$request->hasSession() || !$request->hasPreviousSession()) {
return;
}
// Destroying the old session is broken in php 5.4.0 - 5.4.10
// See https://bugs.php.net/63379
$destroy = \PHP_VERSION_ID < 50400 || \PHP_VERSION_ID >= 50411;
$request->getSession()->migrate($destroy);
}
}