我正在使用Java(8)连接到LDAP服务器以获取一些信息。我正在通过SSL进行此操作,但无法确定是否确实使用了指定的安全协议…。
这是我的代码:
LdapContext ctx = null;Hashtable<String, String> env = new Hashtable <String, String>();try{ env.clear(); env.put(Context.INITIAL_CONTEXT_FACTORY, “com.sun.jndi.ldap.LdapCtxFactory”); env.put(Context.SECURITY_PRINCIPAL, “user”); env.put(Context.SECURITY_CREDENTIALS, “password”); env.put(Context.SECURITY_PROTOCOL, “ssl”); env.put(“com.sun.jndi.ldap.read.timeout”, 5000); env.put(“com.sun.jndi.ldap.connect.timeout”, 5000); env.put(Context.PROVIDER_URL, “myurl”); ctx = new InitialLdapContext(env, null);} catch(NamingException nex) { // Errors get treated here}int debug_stop = 1;Context.SECURITY_PROTOCOL以我为例,这一切都是因为成功建立了连接。以下是有关此参数的一些信息:https ://docs.oracle.com/javase/8/docs/technotes/guides/jndi/jndi-ldap-gl.html#protocol
我尝试了usind以下参数(""当然都在其中):我正在使用Java(8)连接到LDAP服务器以获取一些信息。我正在通过SSL进行此操作,但无法确定是否确实使用了指定的安全协议…。
我尝试了usind以下参数(""当然都在其中):
ssl / SSLstarttls / STARTTLSSSL/STARTTLSTLSv1.1但我完全看不到变化。
我尝试在Netbeans中调试它并查看ctx-variable,但是要查看的内容太多,以至于我找不到所需的正确信息。
我看的是:
ctx
遗传defaultInitCtx克林特康恩袜子西斯protocolVersion名称TLSv1无论我在上面的代码中输入什么,这总是表示。我正在使用Java(8)连接到LDAP服务器以获取一些信息。我正在通过SSL进行此操作,但无法确定是否确实使用了指定的安全协议…。
遗传defaultInitCtx克林特康恩袜子西斯protocolVersion名称TLSv1无论我在上面的代码中输入什么,这总是表示。
1)这是连接使用的协议吗?
2)我看错了变量吗?
3)如何确定已建立的连接使用的协议?
我发现的另一件事是
遗传defaultInitCtx克林特康恩袜子遗传自sslContext静态的defaultServerSSLParams协议我正在使用Java(8)连接到LDAP服务器以获取一些信息。我正在通过SSL进行此操作,但无法确定是否确实使用了指定的安全协议…。
遗传defaultInitCtx克林特康恩袜子遗传自sslContext静态的defaultServerSSLParams协议在这里,我找到了一个清单,上面写着:
SSLv2HelloTLSv1TLSv1.1TLSv1.2所以我也尝试使用TLSv1.1上面的参数,但没有成功…