Bonjour,
j'ai un problème assez strange : j'ai fait une page de test en php me permettant de me connecter à un serveur ldap et d'y faire une recherche. Cette page fonctionnant correctement, j'ai voulu la mettre en pratique dans qqch de plus concret.
J'ai créé une classe connexionLdap qui est sensée ne créer qu'une instance de la connexion (Singleton), mais dans cette classe, il me semble impossible de m'authentifier au serveur.
Dans ma page de test (elle fonctionne puisque pas d'erreur et m'affiche le résultat d'une recherche) :
Dans mon objet connexionLdap, j'ai a peu près la même chose :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 $conn=ldap_connect($ldapServer); // 1ere étape : on teste : le serveur LDAP est-il trouvé ? if (!$conn) echo "connexion impossible au serveur LDAP"; $bindServerLDAP=ldap_bind($conn,$dn,$mdp); // en cas de succès de la liaison, renvoie Vrai if ($bindServerLDAP) echo "Le resultat de connexion est ".$bindServerLDAP.") <br />"; else die("Liaison impossible au serveur ldap ...<br />");
Le problème est que lorsque je teste ca : j'ai a l'écran
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
22
23
24
25
26
27
28
29
30
31
32
33 // Constructeur de la classe connexionLdap : crée l'objet permettant de se connecter à la base LDAP et initialise ses variables aux valeurs par défaut (adresse ip du serveur, port etc ...) private function __construct($ldapServer, $ldapServerPort, $mdp, $dn) { $this->ldapServer = $ldapServer ; // on affecte la variable ldapServer à l'objet connexionLdap. $this->ldapServerPort = $ldapServerPort ; // on affecte la variable ldapServerPort à l'objet connexionLdap. $this->mdp = $mdp ; // on affecte la variable mdp à l'objet connexionLdap. $this->dn = $dn ; // on affecte la variable dn à l'objet connexionLdap. $this->ldapConnect() ; // on appel la méthode ldapConnect pour établir une connexion à proprement parler. } // Fonction appelée par le constructeur pour créer une connexion. private function ldapConnect() { try { $conn=ldap_connect($this->ldapServer) ; if (!$conn) { throw new Exception('Aucun serveur LDAP n\'était disponible lors de la connexion<br />') ; } else { print ("Liaison au serveur : ". ldap_error($conn)." "); $bindServerLDAP=ldap_bind($conn, $this->dn, $this->mdp) ; if (!$bindServerLDAP) { throw new Exception('L\'authentification au serveur LDAP a échouée<br />') ; } echo "Connexion au serveur LDAP réussie en tant que ".$this->dn ; } } catch(Exception $e) { echo 'Erreur : '.$e -> getMessage() ; } }
Je vous remercie de votre aideLiaison au serveur : Success
Erreur : L'authentification au serveur LDAP a échouée
Partager