我正在使用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.特别是对客户端证书的引用.
我怎样才能做到这一点?
我可以使用线程本地存储.
有没有更好的办法?
解决方法
我想你可能正在寻找这样的东西:
env.put("javax.net.ssl.keyStore",keystorePath); //Where keystorePath is the path to the Keys file resource env.put("javax.net.ssl.keyStorePassword","password");