我正在使用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。特别是对客户证书的引用。
我该怎么做? 我可以使用线程本地存储。
有更好的方法吗?
答案 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)
实际上,本地线程只是解决这个问题的方法,我发现到目前为止。 我在这里发布了我的解决方案: