diff --git a/composer.json b/composer.json
index af842f3b451de0fafb1b70812ae7db9b31d119aa..8ba17c0f23eee37630c6635d7eab018a2e346273 100644
--- a/composer.json
+++ b/composer.json
@@ -8,7 +8,6 @@
         }
     ],
     "require": {
-        "php":                                          "7.3.*",
         "unicaen/app":                                  "^3.0",
         "unicaen/bjy-authorize":                        "^3.0",
         "jasig/phpcas":                                 "^1.3",
diff --git a/config/module.config.php b/config/module.config.php
index e031665b4a57ee2e64430bff0aad0f6bb931c541..7012282367ed50aa13c7337227640ba227d07e71 100644
--- a/config/module.config.php
+++ b/config/module.config.php
@@ -494,6 +494,7 @@ return [
 
             'UnicaenApp\HistoriqueListener' => HistoriqueListenerFactory::class,
             'UnicaenAuth\HistoriqueListener' => HistoriqueListenerFactory::class,
+            \UnicaenAuth\Event\EventManager::class => \UnicaenAuth\Event\EventManagerFactory::class,
         ],
         'lazy_services' => [
             // Mapping services to their class names is required since the ServiceManager is not a declarative DIC.
diff --git a/src/UnicaenAuth/Authentication/Adapter/AbstractFactory.php b/src/UnicaenAuth/Authentication/Adapter/AbstractFactory.php
index 6a32bd9776f9ed6e46266898316d6fcccf929173..fa4e56d78416660267526cc5d4a33263b9a264f0 100644
--- a/src/UnicaenAuth/Authentication/Adapter/AbstractFactory.php
+++ b/src/UnicaenAuth/Authentication/Adapter/AbstractFactory.php
@@ -6,7 +6,7 @@ use Interop\Container\ContainerInterface;
 use UnicaenApp\Exception\LogicException;
 use UnicaenAuth\Options\ModuleOptions;
 use UnicaenAuth\Service\User;
-use Zend\EventManager\EventManager;
+use UnicaenAuth\Event\EventManager;
 use Zend\EventManager\EventManagerAwareInterface;
 use Zend\Router\Http\TreeRouteStack;
 use Zend\ServiceManager\AbstractFactoryInterface;
@@ -62,10 +62,13 @@ class AbstractFactory implements AbstractFactoryInterface
 
         if ($adapter instanceof EventManagerAwareInterface) {
             /** @var EventManager $eventManager */
-            $eventManager = $container->get('EventManager');
+            $eventManager = $container->get(EventManager::class);
             $adapter->setEventManager($eventManager);
             $userService = $container->get('unicaen-auth_user_service'); /* @var $userService \UnicaenAuth\Service\User */
             $eventManager->attach('userAuthenticated', [$userService, 'userAuthenticated'], 100);
+            $eventManager->attach('clear', function() use ($adapter){
+                $adapter->getStorage()->clear();
+            });
         }
 
         return $adapter;
diff --git a/src/UnicaenAuth/Authentication/Adapter/Cas.php b/src/UnicaenAuth/Authentication/Adapter/Cas.php
index d1b068921da2447f075c263618415047596b00d2..12cae0acbebdafc23a6f1618de849084b5d40312 100644
--- a/src/UnicaenAuth/Authentication/Adapter/Cas.php
+++ b/src/UnicaenAuth/Authentication/Adapter/Cas.php
@@ -78,15 +78,6 @@ class Cas extends AbstractAdapter implements EventManagerAwareInterface
         $this->router = $router;
     }
 
-    public function getStorage()
-    {
-        if (null === $this->storage) {
-            $this->setStorage(new Session());
-        }
-
-        return $this->storage;
-    }
-    
     /**
      * Réalise l'authentification.
      *
diff --git a/src/UnicaenAuth/Authentication/Adapter/Db.php b/src/UnicaenAuth/Authentication/Adapter/Db.php
index 2f13e4c7f49e4d19dd701656d796eae98860d776..39b1c8d5595d5ff012971ad0586f25e7c42edcb0 100644
--- a/src/UnicaenAuth/Authentication/Adapter/Db.php
+++ b/src/UnicaenAuth/Authentication/Adapter/Db.php
@@ -37,15 +37,6 @@ class Db extends \ZfcUser\Authentication\Adapter\Db implements ServiceLocatorAwa
         return $this;
     }
 
-    public function getStorage()
-    {
-        if (null === $this->storage) {
-            $this->setStorage(new Session());
-        }
-
-        return $this->storage;
-    }
-
     /**
      * Authentification.
      *
diff --git a/src/UnicaenAuth/Authentication/Adapter/Ldap.php b/src/UnicaenAuth/Authentication/Adapter/Ldap.php
index 41f708703a94cda6385b8d575139155b733e65cf..711935d0d4574caa1b1351eefebbc8de25eae25e 100644
--- a/src/UnicaenAuth/Authentication/Adapter/Ldap.php
+++ b/src/UnicaenAuth/Authentication/Adapter/Ldap.php
@@ -78,15 +78,6 @@ class Ldap extends AbstractAdapter implements EventManagerAwareInterface
         $this->appModuleOptions = $appModuleOptions;
     }
 
-    public function getStorage()
-    {
-        if (null === $this->storage) {
-            $this->setStorage(new Session());
-        }
-
-        return $this->storage;
-    }
-    
     /**
      *
      * @param EventInterface $e
@@ -224,7 +215,7 @@ class Ldap extends AbstractAdapter implements EventManagerAwareInterface
         // verif existence du login usurpé
         if ($this->usernameUsurpe) {
             // s'il nexiste pas, échec de l'authentification
-            if (!$this->getLdapAuthAdapter()->getLdap()->searchEntries("(supannAliasLogin=$this->usernameUsurpe)")) {
+            if (!@$this->getLdapAuthAdapter()->getLdap()->searchEntries("(".$this->getOptions()->getLdapUsername()."=$this->usernameUsurpe)")) {
                 $this->usernameUsurpe = null;
                 $success              = false;
             }
diff --git a/src/UnicaenAuth/Authentication/Storage/Chain.php b/src/UnicaenAuth/Authentication/Storage/Chain.php
index bf958d08747eabe3709f9c96bb7bdef14f3ebbb9..c357b7963d2a50d6d9202c05a4bf5ea34c6bf596 100644
--- a/src/UnicaenAuth/Authentication/Storage/Chain.php
+++ b/src/UnicaenAuth/Authentication/Storage/Chain.php
@@ -163,9 +163,6 @@ class Chain implements StorageInterface, EventManagerAwareInterface
      */
     public function getEventManager()
     {
-        if (null === $this->eventManager) {
-            $this->eventManager = new EventManager();
-        }
         return $this->eventManager;
     }
 
diff --git a/src/UnicaenAuth/Authentication/Storage/ChainServiceFactory.php b/src/UnicaenAuth/Authentication/Storage/ChainServiceFactory.php
index ca4eafcb3cdce63d85b912262047cdc232970268..7318ad862db2e88466090b8b91fa043669e20e9e 100644
--- a/src/UnicaenAuth/Authentication/Storage/ChainServiceFactory.php
+++ b/src/UnicaenAuth/Authentication/Storage/ChainServiceFactory.php
@@ -4,7 +4,7 @@ namespace UnicaenAuth\Authentication\Storage;
 
 use Interop\Container\ContainerInterface;
 use UnicaenAuth\Options\ModuleOptions;
-use Zend\EventManager\EventManager;
+use UnicaenAuth\Event\EventManager;
 use Zend\ServiceManager\FactoryInterface;
 use Zend\ServiceManager\ServiceLocatorInterface;
 
@@ -33,7 +33,7 @@ class ChainServiceFactory implements FactoryInterface
         $chain = new Chain();
 
         /** @var EventManager $eventManager */
-        $eventManager = $container->get('EventManager');
+        $eventManager = $container->get(EventManager::class);
 
         $chain->setEventManager($eventManager);
 
diff --git a/src/UnicaenAuth/Event/EventManager.php b/src/UnicaenAuth/Event/EventManager.php
new file mode 100644
index 0000000000000000000000000000000000000000..d5bbabb14ed54fa0315b388cff2ec6293eff3eda
--- /dev/null
+++ b/src/UnicaenAuth/Event/EventManager.php
@@ -0,0 +1,8 @@
+<?php
+
+namespace UnicaenAuth\Event;
+
+class EventManager extends \Zend\EventManager\EventManager
+{
+    
+}
\ No newline at end of file
diff --git a/src/UnicaenAuth/Event/EventManagerFactory.php b/src/UnicaenAuth/Event/EventManagerFactory.php
new file mode 100644
index 0000000000000000000000000000000000000000..74d9c3b191720c0a710514082673b4d730f83539
--- /dev/null
+++ b/src/UnicaenAuth/Event/EventManagerFactory.php
@@ -0,0 +1,29 @@
+<?php
+
+namespace UnicaenAuth\Event;
+
+use Interop\Container\ContainerInterface;
+
+/**
+ * Description of EventManagerFactory
+ *
+ * @author LECLUSE Laurent <laurent.lecluse at unicaen.fr>
+ */
+class EventManagerFactory
+{
+
+    /**
+     * @param ContainerInterface $container
+     * @param string             $requestedName
+     * @param array|null         $options
+     *
+     * @return EventManager
+     */
+    public function __invoke(ContainerInterface $container, $requestedName, $options = null)
+    {
+        $shared = $container->has('SharedEventManager') ? $container->get('SharedEventManager') : null;
+        $eventManager = new EventManager($shared);
+
+        return $eventManager;
+    }
+}
\ No newline at end of file
diff --git a/src/UnicaenAuth/Provider/Identity/ChainServiceFactory.php b/src/UnicaenAuth/Provider/Identity/ChainServiceFactory.php
index 41c874b8765f0c9c951f1bfd57aff1e34005ca30..1909a84b83e22f4b6f9cb08d115323bdafd42ab9 100644
--- a/src/UnicaenAuth/Provider/Identity/ChainServiceFactory.php
+++ b/src/UnicaenAuth/Provider/Identity/ChainServiceFactory.php
@@ -4,8 +4,8 @@ namespace UnicaenAuth\Provider\Identity;
 
 use BjyAuthorize\Service\Authorize;
 use Interop\Container\ContainerInterface;
+use UnicaenAuth\Event\EventManager;
 use UnicaenAuth\Service\UserContext;
-use Zend\EventManager\EventManager;
 use Zend\ServiceManager\FactoryInterface;
 use Zend\ServiceManager\ServiceLocatorInterface;
 
@@ -32,7 +32,7 @@ class ChainServiceFactory implements FactoryInterface
         $authorizeService = $container->get('BjyAuthorize\Service\Authorize');
 
         /** @var EventManager $eventManager */
-        $eventManager = $container->get('EventManager');
+        $eventManager = $container->get(EventManager::class);
 
         $chain->setUserContextService($userContextService);
         $chain->setAuthorizeService($authorizeService);