Bonjour,

Voici un code qui se connecte bien à un annuaire LDAP :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
 
Hashtable<String, String> environment = new Hashtable<String, String>();
 
environment.put(Context.INITIAL_CONTEXT_FACTORY, "com.sun.jndi.ldap.LdapCtxFactory");    
environment.put(Context.PROVIDER_URL,"ldap://192.168.2.15:389/ou=Users,dc=entreprise,dc=org");
 
environment.put(Context.SECURITY_AUTHENTICATION, "simple");
environment.put(Context.SECURITY_PRINCIPAL, "cn=admin,dc=org");
environment.put(Context.SECURITY_CREDENTIALS, "password");
 
dirContext = new InitialDirContext(environment);
... et si j'ai bien compris la commande "environment.put(Context.PROVIDER_URL,"ldap://192.168.2.15:389/ou=Users,dc=entreprise,dc=org");" devrait positionner la connexion au nœud de l'arborescence LDAP des utilisateurs (soit Users dans le LDAP) de l'entreprise.

Par contre dès que je désire lire une entrée utilisateur comme cela :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
Attributes attributs = dirContext.getAttributes("cn=admin"); // cela pourrait être un autre utilisateur
Attribute attribut = (Attribute) attributs.get("description") ;
System.out.println("Description : " + attribut.get());
... l'exception suivante est soulevée :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
javax.naming.NameNotFoundException: [LDAP: error code 32 - No Such Object]; remaining name 'cn=admin'
Lorsque je passe en mode debug, il semble que l'objet dirContext ne contienne pas les enregistrement utilisateurs.

Pourquoi autant de mystères ?

Merci pour votre aide car je galèèèèrrrrrrrrrrrrrrrrrrrreeeeeeeeeeeeeeeeeeee vraiment.

A+