如何使用JNDI将参数传递给LDAP自定义套接字工厂?

时间:2011-06-21 11:20:58

标签: java ldap jndi

我正在使用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 个答案:

答案 0 :(得分:2)

我认为您可能正在寻找类似的东西:

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

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

答案 1 :(得分:2)

实际上,本地线程只是解决这个问题的方法,我发现到目前为止。 我在这里发布了我的解决方案:

jndi LDAPS custom HostnameVerifier and TrustManager