diff --git a/Module.php b/Module.php
index b79872f520aafb5647275b85ea38a4e9c9bb6940..b4d473d542f12285e9069d7bd8f8b0f91de28e80 100644
--- a/Module.php
+++ b/Module.php
@@ -2,7 +2,6 @@
 
 namespace UnicaenAuth;
 
-use UnicaenAuth\Guard\PrivilegeController;
 use Zend\ModuleManager\Feature\AutoloaderProviderInterface;
 use Zend\ModuleManager\Feature\ConfigProviderInterface;
 use Zend\ModuleManager\Feature\ServiceProviderInterface;
@@ -12,7 +11,7 @@ use Zend\ModuleManager\Feature\ServiceProviderInterface;
  *
  * @author Bertrand GAUTHIER <bertrand.gauthier@unicaen.fr>
  */
-class Module implements ConfigProviderInterface, ServiceProviderInterface
+class Module implements AutoloaderProviderInterface, ConfigProviderInterface, ServiceProviderInterface
 {
     /**
      *
diff --git a/src/UnicaenAuth/Guard/PrivilegeController.php b/src/UnicaenAuth/Guard/PrivilegeController.php
index 99b4f2d5158d71343f774be4730b6faba5500331..153564fd5be3503ce551c53d44e563f0e44dce97 100644
--- a/src/UnicaenAuth/Guard/PrivilegeController.php
+++ b/src/UnicaenAuth/Guard/PrivilegeController.php
@@ -9,7 +9,7 @@ use UnicaenApp\Traits\SessionContainerTrait;
 
 
 /**
- * Description of ControllerGuard
+ * Description of PrivilegeController
  *
  * @author Laurent LECLUSE <laurent.lecluse at unicaen.fr>
  */
@@ -30,9 +30,6 @@ class PrivilegeController extends Controller
 
     protected function privilegesToRoles(array $rules)
     {
-//        $session = $this->getSessionContainer();
-//        if (! isset($session->rules)){
-
         $pr = $this->getPrivilegeProvider()->getPrivilegesRoles();
 
         foreach ($rules as $index => $rule) {
@@ -56,9 +53,6 @@ class PrivilegeController extends Controller
         }
 
         return $rules;
-//            $session->rules = $rules;
-//        }
-//        return $session->rules;
     }
 
 
diff --git a/src/UnicaenAuth/Guard/PrivilegeRoute.php b/src/UnicaenAuth/Guard/PrivilegeRoute.php
new file mode 100644
index 0000000000000000000000000000000000000000..1d66b4e30e36aec654a807b79702050f568ce134
--- /dev/null
+++ b/src/UnicaenAuth/Guard/PrivilegeRoute.php
@@ -0,0 +1,77 @@
+<?php
+
+namespace UnicaenAuth\Guard;
+
+use BjyAuthorize\Guard\Route;
+use Zend\ServiceManager\ServiceLocatorInterface;
+use UnicaenAuth\Provider\Privilege\PrivilegeProviderAwareTrait;
+use UnicaenApp\Traits\SessionContainerTrait;
+
+
+/**
+ * Description of PrivilegeRoute
+ *
+ * @author Laurent LECLUSE <laurent.lecluse at unicaen.fr>
+ */
+class PrivilegeRoute extends Route
+{
+    use PrivilegeProviderAwareTrait;
+    use SessionContainerTrait;
+
+
+
+    public function __construct(array $rules, ServiceLocatorInterface $serviceLocator)
+    {
+        $this->serviceLocator = $serviceLocator;
+        parent::__construct($this->privilegesToRoles($rules), $serviceLocator);
+    }
+
+
+
+    protected function privilegesToRoles(array $rules)
+    {
+        $pr = $this->getPrivilegeProvider()->getPrivilegesRoles();
+
+        foreach ($rules as $index => $rule) {
+            if (isset($rule['privileges'])) {
+                $rolesCount    = 0;
+                $privileges    = (array)$rule['privileges'];
+                $rule['roles'] = isset($rule['roles']) ? (array)$rule['roles'] : [];
+                foreach ($pr as $privilege => $roles) {
+                    if (in_array($privilege, $privileges)) {
+                        $rolesCount += count($roles);
+                        $rule['roles'] = array_unique(array_merge($rule['roles'], $roles));
+                    }
+                }
+                unset($rule['privileges']);
+                if (0 < count($rule['roles'])) {
+                    $rules[$index] = $rule;
+                }else{
+                    unset($rules[$index]);
+                }
+            }
+        }
+
+        return $rules;
+    }
+
+
+
+    /**
+     * Pour récupérer le serviceLocator depuis les traits de service
+     *
+     * @return ServiceLocatorInterface
+     */
+    protected function getServiceLocator()
+    {
+        return $this->serviceLocator;
+    }
+
+
+
+    public static function getResourceId($route)
+    {
+        return 'route/'.$route;
+    }
+
+}
\ No newline at end of file