Commit ebb6adda authored by David Surville's avatar David Surville
Browse files

Configuration de l'attribut Ldap utilisé pour le nom d'utilisateur :

- [Fix] Le paramètre de configuration 'ldap_username' n'était pas pris en compte complètement au niveau des adapters d'authentification Cas et Ldap et pas que...
- Seuls les attributs ldap 'uid' et 'supannAliasLogin' sont à présent autorisés comme valeur du paramètre 'ldap_username' => génération d'une exception
parent 5a77b202
Loading
Loading
Loading
Loading
+10 −1
Original line number Diff line number Diff line
@@ -120,7 +120,16 @@ class Cas extends AbstractAdapter
            ->setMessages(['Authentication successful.']);

        // recherche de l'individu dans l'annuaire LDAP (il existe forcément puisque l'auth CAS a réussi)
        $usernameAttribute = $this->getModuleOptions()->getLdapUsername();
        switch($usernameAttribute) {
            case 'uid':
                $ldapPeople = $this->getLdapPeopleMapper()->findOneByUid($identity->getUsername());
                break;
            case 'supannaliaslogin':
            default:
                $ldapPeople = $this->getLdapPeopleMapper()->findOneByUsername($identity->getUsername());
                break;
        }

        /* @var $userService User */
        $this->userService->userAuthenticated($ldapPeople);
+11 −2
Original line number Diff line number Diff line
@@ -18,7 +18,7 @@ use Laminas\EventManager\EventManagerInterface;
use ZfcUser\Authentication\Adapter\AdapterChainEvent;

/**
 * LDAP authentication adpater
 * LDAP authentication adapter
 *
 * @author Bertrand GAUTHIER <bertrand.gauthier@unicaen.fr>
 */
@@ -129,7 +129,16 @@ class Ldap extends AbstractAdapter implements EventManagerAwareInterface
        }

        // recherche de l'individu dans l'annuaire LDAP
        $usernameAttribute = $this->getModuleOptions()->getLdapUsername();
        switch($usernameAttribute) {
            case 'uid':
                $ldapPeople = $this->getLdapPeopleMapper()->findOneByUid($this->usernameUsurpe ?: $username);
                break;
            case 'supannaliaslogin':
            default:
                $ldapPeople = $this->getLdapPeopleMapper()->findOneByUsername($this->usernameUsurpe ?: $username);
                break;
        }
        if (!$ldapPeople) {
            $event
                ->setCode(AuthenticationResult::FAILURE)
+11 −1
Original line number Diff line number Diff line
@@ -57,7 +57,17 @@ class Ldap extends AbstractStorage
        /** @var SessionIdentity $sessionIdentity */
        $sessionIdentity = $this->storage->read();
        $username = $sessionIdentity->getUsername();

        $usernameAttribute = $this->getModuleOptions()->getLdapUsername();
        switch($usernameAttribute) {
            case 'uid':
                $identity = $this->getMapper()->findOneByUid($username);
                break;
            case 'supannaliaslogin':
            default:
                $identity = $this->getMapper()->findOneByUsername($username);
                break;
        }

        if ($identity === null) {
            return null;
+1 −1
Original line number Diff line number Diff line
@@ -18,7 +18,7 @@ class People extends BasePeople implements UserInterface, ProviderInterface
    /**
     * @var string
     */
    protected string $usernameAttributeName = 'supannaliaslogin';
    protected string $usernameAttributeName = 'supannAliasLogin';


    /**
+1 −1
Original line number Diff line number Diff line
@@ -232,7 +232,7 @@ class ModuleOptions extends \ZfcUser\Options\ModuleOptions
     */
    public function getLdapUsername(): string
    {
        return $this->ldapUsername;
        return mb_strtolower($this->ldapUsername);
    }

    /**
Loading