2011-03-03 76 views
0

任何人都可以看到任何原因此代碼不起作用當ldapwhoami -U portal -h yorktown -Y PLAIN -ZZ工作正常嗎?有沒有我做的事情是不相同的?java sasl身份驗證與openldap服務器

LDAPConnection connection = new LDAPConnection(); 
connection.connect("yorktown.example.com", 389); 
SSLUtil sslUtil = new SSLUtil(new TrustAllTrustManager()); 
SSLContext sslContext = sslUtil.createSSLContext(); 
ExtendedResult extendedResult = connection.processExtendedOperation(new StartTLSExtendedRequest(sslContext)); 
PLAINBindRequest bindRequest = new PLAINBindRequest("u:portal", "test"); 
BindResult bindResult = connection.bind(bindRequest); 

這個代碼給出了以下異常由connection.bind調用拋出:

 
play.exceptions.JavaExecutionException: SASL(-13): user not found: Password verification failed 
     at play.mvc.ActionInvoker.invoke(ActionInvoker.java:285) 
     at Invocation.HTTP Request(Play!) 
Caused by: LDAPException(resultCode=49 (invalid credentials), 
    errorMessage='SASL(-13): user not found: Password verification failed', 
    diagnosticMessage='SASL(-13): user not found: Password verification failed') 
     at com.unboundid.ldap.sdk.LDAPConnection.bind(LDAPConnection.java:1710) 

回答

0

無論是PLAINBindRequest文件是錯誤的或有一些錯誤的OpenLDAP 2.4.23如何處理該請求。服務器日誌顯示u:正在傳遞到服務器,導致DN像uid=u:portal,dc=example,dc=com。一旦我將它更改爲new PLAINBindRequest("portal", "test")它工作。