2012-08-13 4 views
0

LDAP 연결이있는 응용 프로그램을 작성 중입니다. 우리는 지금까지 Open JLDAP 라이브러리 만 사용하여 LDAP 검색 및 인증을 수행했습니다. 암호화되지 않은 연결과 SSL 연결을 모두 사용하여 Active Directory 및 Oracle Internet Directory에 연결하여이를 성공적으로 사용하는 많은 고객이 있습니다.SSL을 통해 IBM Tivoli Directory에 연결할 때 LDAP 검색 연결이 끊어졌습니다.

최근에 IBM Tivoli Directory를 사용하는 클라이언트가 있었지만 OpenLDAP 라이브러리는 표준 모드 (비 SSL) 일 때이 서버에 잘 연결되지만 SSL을 사용하면 검색을 수행 할 때 연결이 끊어집니다. 바인딩 및 읽기 작업이 정상입니다.

우리가되어 얻을 오류 :

LDAP 예외 : 연결이 ldap.host:389 결과를 기다리고 분실은 (91) 오류를 java.io.EOFException을 연결 BERDecoder : 디코딩 : EOF를 식별자에

나는 이것이 JLDAP의 문제라고 생각했기 때문에 UnboundId LDAP 라이브러리로 코드를 대체했다. 비슷한 문제가 있다는 것을 제외하고는. 연결은 SSL 하에서 만 검색을 수행 할 때만 연결이 끊어진다.

테스트로서 Tivoli Directory의 평가판을 설치하고 SSL을 사용했습니다. JLDAP 및 UnBoundID 라이브러리는 모두 내 인스턴스에 대해 올바르게 작동합니다.

Tivoli에만 SSL 하에서 연결을 끊을 수있는 구성 옵션이 있습니까?

SSL을 통해 클라이언트 LDAP 서버를 연결하고 검색 할 수있는 LDAP 도구 (jxplorer)가 있습니다. jxplorer는 LDAP 연결을 위해 JNDI 라이브러리를 사용합니다.

JNDI LDAP 코드를 사용하기 위해 LDAP 코드를 포팅하기 전에 시도 할 수있는 것이 있는지 알고 싶었습니다. (여전히 동일한 문제가있을 수 있습니다).

아이디어 환영 ...

감사합니다.

답변

0

나는 이것에 대한 내 자신의 대답을 발견했다. Java 1.6_18에서 Java 1.6_28 사이의 JNDI 라이브러리에서 Java SSL 구현에 문제가 있었으며 최근 패치가 발표 될 때까지 Java 1.7에서도 문제가있었습니다.

0

서버가 연결을 끊습니다. 타임 아웃 설정을 SSL 모드로 살펴보십시오.

JXplorer는 JNDI가 아닌 자체 LDAP 라이브러리를 사용합니다.

0

내가 같은 예외를 보았다 :

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

비 SSL 소켓 팩토리와 SSL 포트에 연결을 시도.