【问题标题】:LDAP Search disconnecting when connecting via SSL to IBM Tivoli Directory通过 SSL 连接到 IBM Tivoli Directory 时 LDAP 搜索断开连接
【发布时间】:2012-08-13 03:24:04
【问题描述】:

我正在开发一个具有 LDAP 连接性的应用程序。到目前为止,我们只使用 Open JLDAP 库来执行 LDAP 搜索和身份验证。我们有许多成功使用此功能的客户,通过未加密和 SSL 连接连接到 Active Directory 和 Oracle Internet Directory。

我们最近有一个使用 IBM Tivoli Directory 的客户端,当处于标准模式(非 SSL)时,OpenLDAP 库可以很好地连接到该服务器,但是在使用 SSL 时,执行搜索时连接将断开。绑定和读取工作正常。

我们得到的错误是:

LDAPException:连接丢失等待来自 ldap.host:389 (91) 的结果的连接错误 java.io.EOFException: BERDecoder: decode: EOF in Identifier

我认为这是 JLDAP 的问题,所以我用 UnboundId LDAP 库替换了我们的代码,但我遇到了类似的问题。连接仅在执行搜索时断开,仅在 SSL 下。

作为测试,我安装了 Tivoli Directory 的试用版,并启用了 SSL。 JLDAP 和 UnBoundID 库都可以针对我的实例正常工作。

Tivoli 上是否有任何配置选项会导致仅在 SSL 下断开连接?

我有一个 LDAP 工具 (jxplorer),它可以通过 SSL 连接和搜索客户端 LDAP 服务器。我认为 jxplorer 使用 JNDI 库进行 LDAP 连接。

我想看看在移植我的 LDAP 代码以使用 JNDI LDAP 代码之前是否可以尝试其他任何事情...(可能仍然存在相同的问题)。

欢迎提出想法...

谢谢。

【问题讨论】:

    标签: java ldap openldap tivoli unboundid-ldap-sdk


    【解决方案1】:

    服务器正在断开连接。看看它在 SSL 模式下的超时设置。

    JXplorer 使用自己的 LDAP 库,而不是 JNDI。

    【讨论】:

      【解决方案2】:

      我找到了自己的答案。在 Java 1.6_18 到 Java 1.6_28 之间的 JNDI 库中,Java 的 SSL 实现存在问题,在最近的补丁之前,该问题也存在于 Java 1.7 中。

      【讨论】:

        【解决方案3】:

        我看到了同样的例外:

        LDAPException: Connection lost waiting for results from ldap.host:636 (91) Connect Error java.io.EOFException: BERDecoder: decode: EOF in Identifier
        

        尝试使用非 SSL 套接字工厂连接到 SSL 端口时。

        【讨论】:

          猜你喜欢
          • 2012-08-30
          • 2013-01-26
          • 2013-06-25
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2015-01-09
          相关资源
          最近更新 更多