0

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

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

我们得到的错误是:

LDAPException: Connection lost waiting for results from ldap.host:389 (91) Connect Error 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 代码之前是否还有什么可以尝试的...(可能仍然有同样的问题)。

欢迎提出想法...

谢谢。

4

3 回答 3

0

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

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

于 2012-08-15T22:43:10.763 回答
0

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

于 2013-02-17T05:47:31.690 回答
0

我看到了同样的例外:

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

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

于 2016-05-10T11:31:04.507 回答