如何将带反斜杠的用户名放在org.apache.directory.ldap.client.api.LdapConnec



我的LDAP连接有问题。当我尝试连接到apachedirectoryStudio桌面时,我成功地验证了。但当我尝试用Java来做这件事时,它失败了。我认为问题出在包含反斜杠"\"的用户名上。

LdapConnection connection = new LdapNetworkConnection(ldapIp, ldapPort);
connection.bind( "uid=foo\bar,ou=example,dc=example,dc=com", "mysEcretpa55" );

在这种情况下,它说

线程"main"org.apache.directory.api.ldap.model.Exception.LdapInvalidDnException:意外令牌:b

当我放4个斜线时,它会说:

LdapErr:DSID-0C0903C8,注释:AcceptSecurityContext错误,数据52e,v2580

我读到52e是一个错误的凭据。我将再次重复我在apachedirectoryStudio桌面应用程序中验证过的内容,它运行良好。

这是四个斜杠:

connection.bind("uid=foo\\bar,ou=example,dc=example,dc=com", "mysEcretpa55");

签出Active Directory中的文档:要转义的字符。

两个反斜杠用于Java字符串转义,因此您需要进行两次转义,一次用于Java,另一次用于LDAP语法,以获得单个反斜杠槽。

至于您遇到的LDAP错误,Active Directory拒绝有效密码的情况有很多:例如,从不属于域的客户端(Linux框)进行身份验证时,或者您试图进行身份验证的用户没有登录客户端计算机的权限。但一定要仔细检查你的密码。

本SO回答中提到的针对Windows域进行身份验证的其他方法的结账提示。

相关内容

  • 没有找到相关文章

最新更新