Bonjour,
J'essaie un ldap_bind pour vérifier un mot de passe (l'existence de l'utilisateur est préalablement vérifiée dans le programme, ainsi que son statut d'utilisateur LDAP ou externe) :
Malgré le try / catch, comme j'ai quand même le warning suivant qui s'affiche en dev (en prod, je n'afficherai plus les erreurs) :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21 /** 3) Vérifier le mot de passe de l'utilisateur */ if($utilisateur->getUtiLdap() == true) { // Vérification via LDAP try { $ds = ldap_connect(Configuration::get('ldap_host')); ldap_set_option($ds, LDAP_OPT_PROTOCOL_VERSION, 3); $util = ldap_bind($ds, 'uid='.$username.','.Configuration::get('ldap_base_dn'), $password); ldap_close($ds); } catch (Exception $e) { // Mauvais mot de passe par rapport au LDAP $this->setObjErreur(); $this->getObjErreur()->ajouterErreur('Mauvais mot de passe (LDAP) !'); // TODO i18n // Réaffichage du formulaire de connexion $this->afficherPageConnexion($this->getObjErreur()->getListeErreurs()); } } // Fin de if($utilisateur->getUtiLdap() == true)
Pire : Le code à l'intérieur du catch ne s'exécute pas et j'ai une page blanche.Warning: ldap_bind(): Unable to bind to server: Invalid credentials in mon/chemin/vers/mon/programme.php on line 68
La ligne 68 est bien entendu la ligne du ldap_bind.
Et si je saisis le bon mot de passe, pas d'erreur donc la connexion au ldap n'est pas en cause.
Ce comportement est-il normal ?
Partager