0

如何在以下设备上调用 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 连接。

谢谢,

4

1 回答 1

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 之类的强验证之前验证您是否可以获得安全通信。

尼尔

于 2014-03-26T21:22:33.283 回答