2012-08-13 76 views
0

我正在研究具有LDAP連接的應用程序。到目前爲止,我們只使用Open JLDAP庫來執行LDAP搜索和認證。我們有很多客戶成功使用它,連接到Active Directory和Oracle Internet Directory,同時使用未加密和SSL連接。通過SSL連接到IBM Tivoli Directory時LDAP搜索斷開連接

我們最近有一個使用IBM Tivoli Directory的客戶端,OpenLDAP庫在標準模式(非SSL)下連接到這臺服務器上,但是當使用SSL時,連接在執行搜索時會斷開連接。綁定和閱讀工作確定。

,我們得到的是錯誤:

LDAPException:連接丟失等待ldap.host:389結果(91)連接錯誤 java.io.EOFException的:BERDecoder:解碼:EOF在標識

我認爲這是JLDAP的一個問題,所以我用UnboundId LDAP庫替換了我們的代碼,但我遇到了類似的問題。只有在執行搜索時,連接纔會斷開連接,只能在SSL下進行。

作爲測試,我安裝了Tivoli Directory的試用版,並啓用了SSL。 JLDAP和UnBoundID庫對我的實例都能正常工作。

Tivoli上是否有任何配置選項會導致連接僅在SSL下被刪除?

我有一個LDAP工具(jxplorer),可以通過SSL連接並搜索客戶端LDAP服務器。我認爲jxplorer爲它的LDAP連接使用JNDI庫。

我想看看在移植我的LDAP代碼以使用JNDI LDAP代碼之前是否還有其他東西可以嘗試......(這可能仍然有相同的問題)。

想法歡迎...

謝謝。

回答

0

我找到了我自己的答案。在Java 1.6_18到Java 1.6_28之間的JNDI庫中,Java的SSL實現存在問題,並且直到最近的補丁程序出現在Java 1.7中也存在該問題。

0

服務器正在斷開連接。查看SSL模式下的超時設置。

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

0

我已經看到了同樣的異常:

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

試圖連接到SSL端口與非SSL套接字工廠時。