From 2ca70d4914f1b0a4920e22b1554466f4121ad8eb Mon Sep 17 00:00:00 2001 From: Bertrand GAUTHIER <bertrand.gauthier@unicaen.fr> Date: Mon, 11 Oct 2021 10:40:36 +0200 Subject: [PATCH] =?UTF-8?q?[FIX]=20Donn=C3=A9es=20d'authentification=20:?= =?UTF-8?q?=20utilisation=20du=20SessionManager=20global=20pour=20avoir=20?= =?UTF-8?q?les=20dur=C3=A9es=20de=20conservation=20des=20cookies=20correct?= =?UTF-8?q?es.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- CHANGELOG.md | 5 ++++- src/UnicaenAuth/Authentication/Storage/AuthFactory.php | 6 +++++- src/UnicaenAuth/Authentication/Storage/DbFactory.php | 6 +++++- src/UnicaenAuth/Authentication/Storage/LdapFactory.php | 6 +++++- src/UnicaenAuth/Authentication/Storage/ShibFactory.php | 6 +++++- .../Authentication/Storage/UsurpationFactory.php | 6 +++++- 6 files changed, 29 insertions(+), 6 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index e0f78ce..b5fc83d 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,9 +1,12 @@ CHANGELOG ========= -3.2.6 / 3.2.7 +3.2.8 ----- +- [FIX] Données d'authentification : utilisation du SessionManager global pour avoir les durées de conservation des cookies correctes. +3.2.6 / 3.2.7 +----- - Ajout d'un événement avec le détail des erreurs LDAP 3.2.5 diff --git a/src/UnicaenAuth/Authentication/Storage/AuthFactory.php b/src/UnicaenAuth/Authentication/Storage/AuthFactory.php index c652d3b..7dc7f0e 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\SessionManager; class AuthFactory { @@ -14,8 +15,11 @@ class AuthFactory */ public function __invoke(ContainerInterface $container, string $requestedName): Auth { + /** @var SessionManager $sessionManager */ + $sessionManager = $container->get(SessionManager::class); + $storage = new Auth(); - $storage->setStorage(new Session(Usurpation::class)); + $storage->setStorage(new Session(Usurpation::class, null, $sessionManager)); return $storage; } diff --git a/src/UnicaenAuth/Authentication/Storage/DbFactory.php b/src/UnicaenAuth/Authentication/Storage/DbFactory.php index 59f8f1a..d027285 100644 --- a/src/UnicaenAuth/Authentication/Storage/DbFactory.php +++ b/src/UnicaenAuth/Authentication/Storage/DbFactory.php @@ -6,6 +6,7 @@ use Interop\Container\ContainerInterface; use UnicaenAuth\Authentication\Adapter\Db as DbAdapter; use UnicaenAuth\Options\ModuleOptions; use Zend\Authentication\Storage\Session; +use Zend\Session\SessionManager; use ZfcUser\Mapper\UserInterface as UserMapper; class DbFactory @@ -24,8 +25,11 @@ class DbFactory /** @var ModuleOptions $moduleOptions */ $moduleOptions = $container->get('unicaen-auth_module_options'); + /** @var SessionManager $sessionManager */ + $sessionManager = $container->get(SessionManager::class); + $storage = new Db(); - $storage->setStorage(new Session(DbAdapter::class)); + $storage->setStorage(new Session(DbAdapter::class, null, $sessionManager)); $storage->setMapper($mapper); $storage->setModuleOptions($moduleOptions); diff --git a/src/UnicaenAuth/Authentication/Storage/LdapFactory.php b/src/UnicaenAuth/Authentication/Storage/LdapFactory.php index 0530e12..a891ba9 100644 --- a/src/UnicaenAuth/Authentication/Storage/LdapFactory.php +++ b/src/UnicaenAuth/Authentication/Storage/LdapFactory.php @@ -7,6 +7,7 @@ use UnicaenApp\Mapper\Ldap\People as LdapPeopleMapper; use UnicaenAuth\Authentication\Adapter\Ldap as LdapAdapter; use UnicaenAuth\Options\ModuleOptions; use Zend\Authentication\Storage\Session; +use Zend\Session\SessionManager; class LdapFactory { @@ -18,8 +19,11 @@ class LdapFactory /** @var ModuleOptions $moduleOptions */ $moduleOptions = $container->get('unicaen-auth_module_options'); + /** @var SessionManager $sessionManager */ + $sessionManager = $container->get(SessionManager::class); + $storage = new Ldap(); - $storage->setStorage(new Session(LdapAdapter::class)); + $storage->setStorage(new Session(LdapAdapter::class, null, $sessionManager)); $storage->setMapper($mapper); $storage->setModuleOptions($moduleOptions); diff --git a/src/UnicaenAuth/Authentication/Storage/ShibFactory.php b/src/UnicaenAuth/Authentication/Storage/ShibFactory.php index 07f3c96..7a9a7b4 100644 --- a/src/UnicaenAuth/Authentication/Storage/ShibFactory.php +++ b/src/UnicaenAuth/Authentication/Storage/ShibFactory.php @@ -6,6 +6,7 @@ use Interop\Container\ContainerInterface; use UnicaenAuth\Options\ModuleOptions; use UnicaenAuth\Service\ShibService; use Zend\Authentication\Storage\Session; +use Zend\Session\SessionManager; class ShibFactory { @@ -23,8 +24,11 @@ class ShibFactory /** @var ModuleOptions $moduleOptions */ $moduleOptions = $container->get('unicaen-auth_module_options'); + /** @var SessionManager $sessionManager */ + $sessionManager = $container->get(SessionManager::class); + $storage = new Shib(); - $storage->setStorage(new Session(\UnicaenAuth\Authentication\Adapter\Shib::class)); + $storage->setStorage(new Session(\UnicaenAuth\Authentication\Adapter\Shib::class, null, $sessionManager)); $storage->setShibService($shibService); $storage->setModuleOptions($moduleOptions); diff --git a/src/UnicaenAuth/Authentication/Storage/UsurpationFactory.php b/src/UnicaenAuth/Authentication/Storage/UsurpationFactory.php index 80be0ae..b1faf80 100644 --- a/src/UnicaenAuth/Authentication/Storage/UsurpationFactory.php +++ b/src/UnicaenAuth/Authentication/Storage/UsurpationFactory.php @@ -5,6 +5,7 @@ namespace UnicaenAuth\Authentication\Storage; use Interop\Container\ContainerInterface; use UnicaenAuth\Options\ModuleOptions; use Zend\Authentication\Storage\Session; +use Zend\Session\SessionManager; use ZfcUser\Mapper\UserInterface as UserMapper; class UsurpationFactory @@ -23,8 +24,11 @@ class UsurpationFactory /** @var ModuleOptions $moduleOptions */ $moduleOptions = $container->get('unicaen-auth_module_options'); + /** @var SessionManager $sessionManager */ + $sessionManager = $container->get(SessionManager::class); + $storage = new Usurpation(); - $storage->setStorage(new Session(Usurpation::class)); + $storage->setStorage(new Session(Usurpation::class, null, $sessionManager)); $storage->setMapper($mapper); $storage->setModuleOptions($moduleOptions); -- GitLab