Bonjour,

J'ai écris précédemment en PHP (pour faire plaisir à mon Chef ) un script qui lit l'annuaire de l'entreprise.

Les paramètres de connexion sont de cette forme (j'ai changé les identifiants dans l'exemple ) :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
 
 
$rootLogin = "admin";
$rootPassword = "toto";
$ldapServer = "192.168.2.15";
$ldapPort = 389;
$dcName == "entreprise";
 
$rootDn = "cn=$rootLogin,ou=Users,dc=$dcName,dc=org";
$ds = ldap_connect ( $ldapServer, $ldapPort );
Voulant porter ce script vers le langage JAVA (autant faire bien ), j'arrive à pointer sur l'annuaire avec le code suivant :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
 
 
Hashtable env = new Hashtable();
env.put(Context.INITIAL_CONTEXT_FACTORY, "com.sun.jndi.ldap.LdapCtxFactory");    
env.put(Context.PROVIDER_URL,"ldap://192.168.2.15:389");
 
DirContext dircontext = new InitialDirContext(env);
... par contre j'obtiens l'exception "javax.naming.AuthenticationException: [LDAP: error code 49 - Invalid Credentials]" dès que j'essaie de m'identifier auprès de l'annuaire LDAP avec ce code :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12

Hashtable env = new Hashtable();
env.put(Context.INITIAL_CONTEXT_FACTORY, "com.sun.jndi.ldap.LdapCtxFactory");    
env.put(Context.PROVIDER_URL,"ldap://192.168.2.15:389");

env.put(Context.SECURITY_AUTHENTICATION, "simple");
env.put(Context.SECURITY_PRINCIPAL, "cn=admin,ou=Users,dc=entreprise,dc=org");
env.put(Context.SECURITY_CREDENTIALS, "toto");
       
    
DirContext dircontext = new InitialDirContext(env);

J'ai aussi essayé l'exemple d'Oracle et la même exception s'affiche :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13

Hashtable env = new Hashtable();
env.put(Context.INITIAL_CONTEXT_FACTORY, "com.sun.jndi.ldap.LdapCtxFactory");
env.put(Context.PROVIDER_URL, "ldap://192.168.2.15:389/o=ENTREPRISE");

// Authenticate as S. User and password "mysecret"
env.put(Context.SECURITY_AUTHENTICATION, "simple");
env.put(Context.SECURITY_PRINCIPAL, "cn=admin. User, ou=Users, o=ENTREPRISE");
env.put(Context.SECURITY_CREDENTIALS, "toto");

// Create the initial context
DirContext ctx = new InitialDirContext(env);
Doù peut bien venir le problème ? Merci pour votre aide.

A+