5

SocketFactoryをInitialLdapContextに提供する静的な方法があります。

env.put("java.naming.ldap.factory.socket", MySocketFactory.class.getName());
new InitialLdapContext(env, null);

しかし、クラス名の代わりにインスタンス自体を提供する方法はありますか?私のソケットファクトリは信頼できる証明書の入力ストリームでパラメータ化されており、さまざまな信頼できる証明書を使用してInitialLdapContextの多くのインスタンスを構成できます。ところで、これはOSGi環境で実行されます。

前もって感謝します。

4

1 に答える 1

2

ソースをcom.sun.jndi.ldap.Connection.createSocket(String, int, String, int)調べると、残念ながらこれを行う方法がないことがわかります。非常に多くの Java コア API の設計が悪いのは悲しいことです。

解決策は、別の実装を使用することです。

  • Netscape LdapSdk
  • OpenLDAP JLDAP
  • Apache ディレクトリ LDAP API
于 2011-06-30T07:00:35.887 に答える