Commit dd5c8b60 authored by Bertrand Gauthier's avatar Bertrand Gauthier
Browse files

Merge branch 'release-3.2.0'

parents ff93d62a 06ac47cc
Loading
Loading
Loading
Loading
Loading
+3 −0
Original line number Diff line number Diff line
@@ -45,3 +45,6 @@ Première version officielle sous ZF3.
- Possibilité de connaître la source de l'authentification (db, ldap, cas, shib).
- Possibilité de stopper l'usurpation en cours pour revenir à l'identité d'origine.
- [FIX] Usurpation d'un compte local en BDD.
- [FIX] Lorsque l'usurpateur stoppait l'usurpation, il ne récupérait pas son dernier endossé
- [FIX] En cas d'usurpation puis de déconnexion puis de reconnexion, on revenait dans la peau de l'usurpé sans pouvoir 
  stopper l'usurpation
 No newline at end of file
+16 −5
Original line number Diff line number Diff line
@@ -194,22 +194,33 @@ $settings = [
         * Ex: identifiant de l'usager au sein du référentiel établissement, transmis par l'IDP via le supannRefId.
         */
        'shib_user_id_extractor' => [
            /*
            // domaine (ex: 'unicaen.fr') de l'EPPN (ex: hochonp@unicaen.fr')
            'unicaen.fr' => [
                [
                    // nom du 1er attribut recherché
                    'name' => 'supannRefId', // ex: '{REFERENTIEL}1234;{ISO15693}044D1AZE7A5P80'
                    'name' => 'supannRefId', // ex: '{OCTOPUS:ID}1234;{ISO15693}044D1AZE7A5P80'
                    // pattern éventuel pour extraire la partie intéressante
                    'preg_match_pattern' => '|\{REFERENTIEL\}(\d+)|', // ex: permet d'extraire '1234'
                    'preg_match_pattern' => '|\{OCTOPUS:ID\}(\d+)|', // ex: permet d'extraire '1234'
                ],
                [
                    // nom du 2e attribut recherché
                    // nom du 2e attribut recherché, si le 1er est introuvable
                    'name' => 'supannEmpId',
                    // pas de pattern donc valeur directement utilisable
                    // pas de pattern donc valeur brute utilisée
                    'preg_match_pattern' => null,
                ],
                [
                    // nom du 3e attribut recherché
                    // nom du 3e attribut recherché, si le 2e est introuvable
                    'name' => 'supannEtuId',
                ],
            ],
            */
            // config de repli pour tous les autres domaines
            'default' => [
                [
                    'name' => 'supannEmpId',
                ],
                [
                    'name' => 'supannEtuId',
                ],
            ],
+20 −11
Original line number Diff line number Diff line
@@ -123,21 +123,30 @@ return [
             */
            'shib_user_id_extractor' => [
                // domaine (ex: 'unicaen.fr') de l'EPPN (ex: hochonp@unicaen.fr')
                'unicaen.fr' => [
                    [
                        // nom du 1er attribut recherché
                        'name' => 'supannRefId', // ex: '{REFERENTIEL}1234;{ISO15693}044D1AZE7A5P80'
                        // pattern éventuel pour extraire la partie intéressante
                        'preg_match_pattern' => '|\{REFERENTIEL\}(\d+)|', // ex: permet d'extraire '1234'
                    ],
//                'unicaen.fr' => [
//                    [
//                        // nom du 1er attribut recherché
//                        'name' => 'supannRefId', // ex: '{OCTOPUS:ID}1234;{ISO15693}044D1AZE7A5P80'
//                        // pattern éventuel pour extraire la partie intéressante
//                        'preg_match_pattern' => '|\{OCTOPUS:ID\}(\d+)|', // ex: permet d'extraire '1234'
//                    ],
//                    [
//                        // nom du 2e attribut recherché
//                        'name' => 'supannEmpId',
//                        // pas de pattern donc valeur brute utilisée
//                        'preg_match_pattern' => null,
//                    ],
//                    [
//                        // nom du 3e attribut recherché
//                        'name' => 'supannEtuId',
//                    ],
//                ],
                // config de repli pour tous les autres domaines
                'default' => [
                    [
                        // nom du 2e attribut recherché
                        'name' => 'supannEmpId',
                        // pas de pattern donc valeur directement utilisable
                        'preg_match_pattern' => null,
                    ],
                    [
                        // nom du 3e attribut recherché
                        'name' => 'supannEtuId',
                    ],
                ],
+5 −4
Original line number Diff line number Diff line
@@ -28,11 +28,11 @@ class LocalAdapterFactory

        // db adapter
        if (array_key_exists('db', $localConfig)) {
            $this->attachSubAdapter($localAdapter, $container, $localConfig['db']);
            $this->attachSubAdapter($localAdapter, $container, $localConfig['db'], 20); // en 1er
        }
        // ldap adapter
        if (array_key_exists('ldap', $localConfig)) {
            $this->attachSubAdapter($localAdapter, $container, $localConfig['ldap']);
            $this->attachSubAdapter($localAdapter, $container, $localConfig['ldap'], 10); // en 2e
        }

        return $localAdapter;
@@ -42,8 +42,9 @@ class LocalAdapterFactory
     * @param LocalAdapter $localAdapter
     * @param ContainerInterface $container
     * @param array $config
     * @param int $priority
     */
    private function attachSubAdapter(LocalAdapter $localAdapter, ContainerInterface $container, array $config)
    private function attachSubAdapter(LocalAdapter $localAdapter, ContainerInterface $container, array $config, int $priority)
    {
        $enabled = isset($config['enabled']) && $config['enabled'] === true;
        if (! $enabled) {
@@ -52,7 +53,7 @@ class LocalAdapterFactory

        /** @var AbstractAdapter $subAdapter */
        $subAdapter = $container->get($config['adapter']);
        $subAdapter->attach($localAdapter->getEventManager());
        $subAdapter->attach($localAdapter->getEventManager(), $priority);
    }

}
 No newline at end of file
+10 −0
Original line number Diff line number Diff line
@@ -54,4 +54,14 @@ class Shib extends AbstractStorage

        return $this->shibService->getAuthenticatedUser();
    }

    /**
     * @inheritDoc
     */
    public function clear(ChainEvent $e)
    {
        parent::clear($e);

        $this->shibService->deactivateUsurpation();
    }
}
Loading