2013-07-04 2 views
0

내가 UnboundID LDAP SDK를 사용하여 ApacheDS에 DIGEST-MD5를 사용하여 바인딩하려고 할 때 다음과 같은 오류를 받고 있어요. UnboundID 및 Apache Shiro와의 간단한 바인드를 사용하여 연결을 이미 테스트 했으므로 ApacheDS가 작동합니다.UnboundID LDAP DIGEST-MD5 바인딩 원인 NPE

LDAPException(resultCode=82 (local error), errorMessage='Unable to create a subsequent DIGEST-MD5 SASL request: NullPointerException(trace='processChallenge(DigestMD5Client.java:339)/evaluateChallenge(DigestMD5Client.java:207)/processSASLBind(SASLHelper.java:149)/process(DIGESTMD5BindRequest.java:406)/bind(LDAPConnection.java:1837)/main(UnboundDemo.java:38)', revision=15579)') 
    at com.unboundid.ldap.sdk.SASLHelper.processSASLBind(SASLHelper.java:154) 
    at com.unboundid.ldap.sdk.DIGESTMD5BindRequest.process(DIGESTMD5BindRequest.java:406) 
    at com.unboundid.ldap.sdk.LDAPConnection.bind(LDAPConnection.java:1837) 
    at com.mizar.ldap.UnboundDemo.main(UnboundDemo.java:38) 
Caused by: java.lang.NullPointerException 
    at com.sun.security.sasl.digest.DigestMD5Client.processChallenge(DigestMD5Client.java:339) 
    at com.sun.security.sasl.digest.DigestMD5Client.evaluateChallenge(DigestMD5Client.java:207) 
    at com.unboundid.ldap.sdk.SASLHelper.processSASLBind(SASLHelper.java:149) 
    ... 3 more 

나는 다음과 같이하여 JavaDoc의 예 내 샘플 테스트 코드를 다음 :

이 예외가 아니라 LDAP보다 SASL 처리를 처리하기위한 JDK의 코드에서 발생되는 것 같습니다
LDAPConnection conn; 
BindResult bindResult; 
DIGESTMD5BindRequest mdBind; 
try { 
    conn = new LDAPConnection("1.1.1.1",389); 
    mdBind = new DIGESTMD5BindRequest("dn:uid=someuser,ou=dev,dc=blah,dc=com", "test"); 
    bindResult = conn.bind(mdBind); 
    System.out.println("MD5 bind success!"); 
} 
catch (Exception e) { 
    e.printStackTrace(); 
} 

답변

0

SDK 자체 이것은 영역이 있지만, 바인드 처리를 완료하는 데 필요한 한에서이 문제처럼 찾을 수 있었다 com.sun.security.sasl.digest.DigestMD5Client 클래스 (http://grepcode.com/file/repository.grepcode.com/java/root/jdk/openjdk/6-b14/com/sun/security/sasl/digest/DigestMD5Client.java)에 대한 소스의 버전을 기반으로, 그것은 본다 아무도 사용할 수 없었습니다. 영역을 취하는 DIGESTMD5BindRequest 생성자 중 하나를 사용하도록 전환하고 (디렉토리 관리자에서 찾을 필요가있는) 영역에 적절한 값을 제공하면 바인드가 성공할 수 있어야합니다.

CRAM-MD5, DIGEST-MD5 및 GSSAPI SASL 메커니즘에 대한 LDAP SDK 지원이 변경되었으므로 향후 이러한 종류의 문제가 발생할 경우 더 유용한 메시지를 제공 할 수 있도록 노력하겠습니다.

관련 문제