Как передать аргументы фабрике нестандартных сокетов LDAP с помощью JNDI? - PullRequest
7 голосов
/ 21 июня 2011

Я использую JNDI для подключения LDAP. Пример:

Hashtable env = new Hashtable();
env.put(Context.PROVIDER_URL, LDAPS_URL);
env.put(Context.SECURITY_AUTHENTICATION, "EXTERNAL");
env.put("java.naming.ldap.factory.socket", "ldaptest.CustomSocketFactory");
...

Мне нужно передать параметры во время выполнения в CustomSocketFactory. В частности, ссылка на сертификат клиента.

Как я могу это сделать? Я мог бы использовать локальное хранилище потока.

Есть ли лучший способ?

Ответы [ 2 ]

2 голосов
/ 15 марта 2012

На самом деле локальный поток - единственный способ решить эту проблему, который я нашел до сих пор.Я разместил свое решение здесь:

jndi LDAPS custom HostnameVerifier и TrustManager

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

Я думаю, что вы можете искать что-то вроде этого:

env.put("javax.net.ssl.keyStore", keystorePath);
//Where keystorePath is the path to the Keys file resource

env.put("javax.net.ssl.keyStorePassword", "password");
...