Есть ли способ предоставить SocketFactory _instance_ для InitialLdapContext? - PullRequest
5 голосов
/ 29 июня 2011

Существует статический способ предоставления SocketFactory для InitialLdapContext:

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

Но есть ли способ предоставить сам экземпляр вместо его имени класса?Моя фабрика сокетов параметризована входным потоком доверенного сертификата, и может быть настроено много экземпляров InitialLdapContext с разными доверенными сертификатами.Кстати, это будет работать в среде OSGi.

Заранее спасибо.

1 Ответ

2 голосов
/ 30 июня 2011

Проверка источника com.sun.jndi.ldap.Connection.createSocket(String, int, String, int) Я вижу, что, к сожалению, нет способа сделать это.Печально, что так много API ядра Java имеют такой плохой дизайн.

Решение может заключаться в использовании другой реализации:

  • Netscape LdapSdk
  • OpenLDAP JLdap
  • Apache Directory LDAP API
...