如何在以下位置调用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连接。

谢谢,

最佳答案

使用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之类的功能进行强力验证之前,确保安全的通信正常。

尼尔

09-27 14:41