DIGEST-MD5暗号化を使用してLDAPサーバーへの認証を試みています。Simple暗号化を使用している間は問題なく機能しますが、明らかな理由により、パスワードをプレーンテキストでネットワーク経由で送信することはできません。奇妙なことに、Softerra LDAPブラウザーを使用している間、Digest-MD5を使用してサーバーに接続できますが、コードを介してさまざまなエラーが発生します。
これは、初期コンテキストを作成する前にセキュリティ認証などを設定しようとするLDAP認証クラスのコードスニペットです。
Hashtable env = new Hashtable(11);
env.put(Context.SECURITY_AUTHENTICATION, "DIGEST-MD5");
env.put(Context.SECURITY_PRINCIPAL, username);
env.put(Context.SECURITY_CREDENTIALS, password);
env.put(Context.PROVIDER_URL, ldapURI);
env.put(Context.INITIAL_CONTEXT_FACTORY, context);
env.put("com.sun.jndi.ldap.trace.ber", System.out);
try{
DirContext ctx = new InitialLdapContext(env,null);
} Catch (NamingException e){
e.printStackTrace();
}