マイldiffファイルには、userPassword属性が進エンコーディングでMD5を使用してdbのポータルでハッシュ化されたこの- 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
のように見えます。 また、エンコードされたパスワードをtrueに設定しても有効にはなりません。
のuserPassword上記のためのプレーンテキストのパスワードは「1234」であると私はJavaプログラムでのuserPasswordの交換と同じ
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);
}
を認証するためのサンプルJavaプログラムは常に「無効な認証例外」
を与えています添付は私の要件は、我々はそのパスワードをMD5にDBに格納されてHexはポータルをコードに統合されたポータルを持っているOpenDJ OPENDJ Passpword policy
の設定ですdをldapに変更するたびにldapはハッシュ値で更新されますが、上記のjavaプログラムはまったく動作しません。 深刻な助けが必要です。
ありがとうございました。