如何在:
上调用SSL连接com.unboundid.ldap.sdk.migrate.ldapjdk.LDAPConnection; ?
以下内容:
SSLUtil sslUtil = new SSLUtil(new TrustAllTrustManager());
LDAPConnection ldp = new LDAPConnection(sslUtil.createSSLSocketFactory(), getHost(), getPort(), getAuthid(), getAuthpw());
仅适用于:
import com.unboundid.ldap.sdk.LDAPConnection;
但是,如果可能的话,我想坚持迁移的ldapjdk连接。
谢谢,
答案 0 :(得分:3)
使用com.unboundid.ldap.sdk.migrate.ldapjdk.LDAPConnection时,其中一个构造函数允许您指定将用于创建的com.unboundid.ldap.sdk.migrate.ldapjdk.LDAPSocketFactory实例底层套接字。此外,您可以将com.unboundid.ldap.sdk.migrate.ldapjdk.JavaToLDAPSocketFactory类用作包装javax.net.SocketFactory(其中javax.net.ssl.SSLSocketFactory是子类)的LDAPSocketFactory。
执行此操作的代码应该是:
SSLUtil sslUtil = new SSLUtil(new TrustAllTrustManager());
SSLSocketFactory sslSocketFactory = sslUtil.createSSLSocketFactory();
JavaToLDAPSocketFactory ldapSocketFactory =
new JavaToLDAPSocketFactory(sslSocketFactory);
LDAPConnection ldp = new LDAPConnection(ldapSocketFactory);
请注意,对于您实际打算在实际应用程序中使用的代码,您应该使用比盲目信任服务器提供的任何证书的代码更好的信任管理器,因为TrustAllTrustManager没有做任何事情来帮助防止人员在中间的攻击。但是TrustAllTrustManager是一个方便的第一步,可以验证您是否可以在使用TrustStoreTrustManager等方法切换到一些强大的验证之前获得安全通信。
尼尔