0

任何人都可以看到这段代码在正常工作时不起作用的任何原因ldapwhoami -U portal -h yorktown -Y PLAIN -ZZ吗?有什么我正在做的不等同的事情吗?

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):找不到用户:密码验证失败
        在 play.mvc.ActionInvoker.invoke(ActionInvoker.java:285)
        在 Invocation.HTTP 请求(播放!)
原因:LDAPException(resultCode=49(无效凭据),
    errorMessage='SASL(-13): 找不到用户:密码验证失败',
    diagnosticMessage='SASL(-13): 找不到用户:密码验证失败')
        在 com.unboundid.ldap.sdk.LDAPConnection.bind(LDAPConnection.java:1710)
4

1 回答 1

0

文档PLAINBindRequest有误,或者 OpenLDAP 2.4.23 处理请求的方式有问题。服务器日志显示u:正在传递到服务器,导致 DN 像uid=u:portal,dc=example,dc=com. 一旦我将其更改为new PLAINBindRequest("portal", "test")有效。

于 2011-03-03T18:19:04.210 回答