问题
I'm using JNDI to make LDAP connections. Example:
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");
...
I need to pass parameters at run time to the CustomSocketFactory. Specifically a reference to a client certificate.
How can I do this? I could use thread local storage.
Is there a better way?
回答1:
Actually thread local is only way to solve this I found so far. I posted my solution here:
jndi LDAPS custom HostnameVerifier and TrustManager
回答2:
I think that you may be looking for something like this:
env.put("javax.net.ssl.keyStore", keystorePath);
//Where keystorePath is the path to the Keys file resource
env.put("javax.net.ssl.keyStorePassword", "password");
来源:https://stackoverflow.com/questions/6424422/how-to-pass-arguments-to-an-ldap-custom-socket-factory-with-jndi