diff --git a/src/UnicaenAuth/Authentication/Storage/AuthFactory.php b/src/UnicaenAuth/Authentication/Storage/AuthFactory.php index 7dc7f0e9c55a9a249e609b05d2a4cdf355260d9f..8fa4fed5fda374651d863df94dd63ecd2a01f139 100644 --- a/src/UnicaenAuth/Authentication/Storage/AuthFactory.php +++ b/src/UnicaenAuth/Authentication/Storage/AuthFactory.php @@ -4,6 +4,7 @@ namespace UnicaenAuth\Authentication\Storage; use Interop\Container\ContainerInterface; use Zend\Authentication\Storage\Session; +use Zend\Session\Exception\RuntimeException; use Zend\Session\SessionManager; class AuthFactory @@ -19,8 +20,19 @@ class AuthFactory $sessionManager = $container->get(SessionManager::class); $storage = new Auth(); - $storage->setStorage(new Session(Usurpation::class, null, $sessionManager)); + + try { + $storage->setStorage(new Session(Usurpation::class, null, $sessionManager)); + } catch (RuntimeException $e) { + /** + * Tentative de réagir en cas d'erreur suivante : + * "PHP Fatal error: Uncaught Zend\Session\Exception\RuntimeException: Session validation failed in + * /var/www/sygal/vendor/zendframework/zend-session/src/SessionManager.php:160" + */ + $sessionManager->regenerateId(true); + $storage->setStorage(new Session(Usurpation::class, null, $sessionManager)); + } return $storage; } -} \ No newline at end of file +}