1

Java アプリケーションから LDAPS を使用して RedHat ディレクトリ サーバー/HP UX ディレクトリ サーバーにアクセスするにはどうすればよいですか? LDAP 経由でアクセスしようとしていますが、正常に動作していますが、LDAPS を使用している間はサーバーとの接続が確立されません。

動作していない私のコードは次のとおりです。

public void setPassword(String userDn,String password) {
    InitialDirContext ctx=null;
    DirContext connection;
    Hashtable env = new Hashtable();
    env.put(Context.INITIAL_CONTEXT_FACTORY, "com.sun.jndi.ldap.LdapCtxFactory");
    env.put(Context.SECURITY_AUTHENTICATION, "simple");
    String systemname = "ldaps://myserver:636";
    env.put(Context.PROVIDER_URL, systemname);  
    env.put(Context.SECURITY_PRINCIPAL, "cn=directory manager");
    env.put(Context.SECURITY_CREDENTIALS, "MySecret");
    ctx = new InitialDirContext(env);
    connection = (DirContext)ctx;
    connection.lookup("dc=mydomain,dc=com");
    ModificationItem[] mods = new ModificationItem[1];
    Attribute mod0 = new BasicAttribute("userpassword",password);
    mods[0] = new ModificationItem(DirContext.REPLACE_ATTRIBUTE, mod0);
    connection.modifyAttributes(userDn, mods);
    connection.close();
}

ldapsをbyに置き換えると、上記のコードは正常に機能しldapます。

ただし、LDAPS でも機能するコードが必要です。一部のサイトでは、キーストア、証明書などの必要性について言及していますが、これらについては何も知りません。

4

2 に答える 2

2

いくつかのことを試すことができます:

  • 既知の適切なツールを使用してldapsearch、LDAP クライアントがサーバーに接続できることを確認します
  • openssl s_client -connect host:portクライアントが安全な接続を確立できることを確認するために使用します。
于 2012-10-15T19:12:34.140 に答える
1

Java を使用しているため、サーバーの証明書または認証局チェーンのコピーを取得し、それをコードで使用している JVM の Java キーストアに追加する必要があります。

証明書を取得する方法は、使用している LDAP 実装によって異なります。LDAP 管理者がお手伝いできるはずです。

証明書を Java KeyStore に追加する方法については、Google を参照してください。

-ジム

于 2012-10-16T11:29:44.863 に答える