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

Con*_*nor 7 java jndi ldap

我正在使用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");
...
Run Code Online (Sandbox Code Playgroud)

我需要在运行时将参数传递给CustomSocketFactory.特别是对客户端证书的引用.

我怎样才能做到这一点?我可以使用线程本地存储.

有没有更好的办法?

小智 3

我认为您可能正在寻找这样的东西:

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

env.put("javax.net.ssl.keyStorePassword", "password");
Run Code Online (Sandbox Code Playgroud)