2015-06-01 208 views
0

我們正在運行到連接LDAP服務器的問題後,LDAP SHA-256移民。我們得到了以下異常,當我們運行在調試模式下的應用程序:LDAP訪問 - javax.naming.CommunicationException:簡單綁定失敗

javax.naming.CommunicationException: simple bind failed: xxxamd.xxx.com:636 [Root exception is java.net.SocketException: Socket is closed]​ 

我們試圖下面.CER文件添加到我們的應用程序特定的cacerts文件:

  1. GlobalSignRootCA.cer

  2. GlobalSignOrganizationV alidationCA-G2.cer

  3. OrganizationValidationCA-SHA256,G2.cer

將在cacerts的上述.CER文件後,我們得到了不同的異常:

getLdapContactInfo(): javax.naming.CommunicationException: simple bind failed: xxxamd.xxx.com:636 [Root exception is javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException: Certificate signature validation failed] 

服務器:

Perl Web農場服務器

Java版本:

[email protected]:~/www $ java -version 

java version "1.4.2_19" 
Java(TM) 2 Runtime Environment, Standard Edition (build 1.4.2_19-b04) 
Java HotSpot(TM) Client VM (build 1.4.2_19-b04, mixed mode) 

在這方面的任何幫助或建議非常讚賞。

注意:SUN JRE已在服務器級別實施,我們的應用程序是位於/cgi-bin/文件夾下的IBM JRE。我們嘗試在/usr/lib/jvm/jre/lib/security/的「cacerts」中添加證書(如上所述),但沒有任何工作。

+0

我的直覺是這與驗證證書頒發機構有關。特別是如果您的LDAP無法訪問Internet。在這種情況下,您必須在認證樹上安裝證書。 http://en.wikipedia.org/wiki/Root_certificate – defectus

+0

謝謝Defectus。我解決了這個問題。這個問題與Java版本有關。 – Esh

回答

1

我整理了爲什麼會得到上述例外。上述3 .cer文件與Java 1.4.2不兼容。所以我試着將我的應用程序指向Java 1.6並且問題得到解決。能夠從LDAP服務器檢索信息。

謝謝