Mon fichier ldiff ressemble à ceciImpossible d'authentifier Java - LDAP
dn:uid=test,ou=users,dc=example,dc=com
objectclass:person
objectclass:inetOrgPerson
objectclass:organizationalPerson
objectclass:top
givenName: test
title:test
uid:test
cn:test
sn:sdf
userPassword: 81dc9bdb52d04dc20036dbd8313ed055
mail: [email protected]
creatorsName: cn=Directory Manager,cn=Root DNs,cn=config
modifiersName: cn=Directory Manager,cn=Root DNs,cn=config
Le userPassword est haché dans le portail db en utilisant MD5 avec le codage hexadécimal. Également activé le mot de passe pré-encodé à vrai mais n'aide pas.
Le mot de passe de texte brut pour le userPassword ci-dessus est « 1234 » et j'ai un programme java exemple pour authentifier le même
public static void main(String[] args) throws NamingException {
final String ldapAdServer = "ldap://0.0.0.0:389";
final String ldapUsername = "uid=test,ou=People,dc=example,dc=com";
final String ldapPassword = "81dc9bdb52d04dc20036dbd8313ed055;
Hashtable<String, Object> env = new Hashtable<String, Object>();
env.put(Context.SECURITY_AUTHENTICATION, "simple");
if (ldapUsername != null) {
env.put(Context.SECURITY_PRINCIPAL, ldapUsername);
}
if (ldapPassword != null) {
env.put(Context.SECURITY_CREDENTIALS, ldapPassword);
}
env.put(Context.INITIAL_CONTEXT_FACTORY,
"com.sun.jndi.ldap.LdapCtxFactory");
env.put(Context.PROVIDER_URL, ldapAdServer);
env.put("java.naming.ldap.attributes.binary", "objectSID");
DirContext ctx = new InitialDirContext(env);
}
Remplacement du userPassword dans le programme java donne toujours « Exception d'authentification non valide »
Ci-joint le réglage de OpenDJ OPENDJ Passpword policy
Mon exigence est que nous avons un portail dont les mots de passe est stocké dans db dans MD5 avec hex codant pour le portail est l'intégration d à ldap pour chaque changement de mot de passe le ldap est mis à jour avec la valeur hachée, mais le programme java ci-dessus ne fonctionne pas du tout. Besoin d'aide sérieuse.
Merci.