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?
Actually thread local is only way to solve this I found so far. I posted my solution here:
jndi LDAPS custom HostnameVerifier and TrustManager
I think that you may be looking for something like this: