调用javax.naming.ldap.InitialLdapContext的search()方法时,传入DN ...
OU=User Structure, OU=Acecity(LTO), OU=AceCloud,OU=Hosting, DC=AceCloud,DC=local
Run Code Online (Sandbox Code Playgroud)
输出的错误是 Authentication failed. failed to authenticate user:[LDAP: error code 32 - 0000208D: NameErr: DSID-0315270B, problem 2001 (NO_OBJECT), data 0.
LdapName baseDN = new LdapName(baseDN
NamingEnumeration results = ctx.search(baseDN, "("+ identity.getBindAttribute() + "=" + acctname + ")", sc);
Run Code Online (Sandbox Code Playgroud)
出现问题的原因是空间User Structure.当我将用户放在另一个不包含空格的OU中时,我可以进行身份验证.我已经尝试了以下所有方法:
OU=User\ Structure, OU=Acecity(LTO), OU=AcecityCloud,OU=Hosting, DC=AcecityCloud,DC=local
OU=User\20Structure, OU=Acecity(LTO), OU=AcecityCloud,OU=Hosting, DC=AcecityCloud,DC=local
OU=User\\20Structure, OU=Acecity(LTO), OU=AcecityCloud,OU=Hosting, DC=AcecityCloud,DC=local
OU=User%Structure, OU=Acecity(LTO), OU=AcecityCloud,OU=Hosting, DC=AcecityCloud,DC=local
OU=User\ Structure, OU=Acecity(LTO), OU=AcecityCloud,OU=Hosting, DC=AcecityCloud,DC=local
OU=User\\ Structure, OU=Acecity(LTO), OU=AcecityCloud,OU=Hosting, DC=AcecityCloud,DC=local
OU=User\\\\ Structure, OU=Acecity(LTO), OU=AcecityCloud,OU=Hosting, DC=AcecityCloud,DC=local
Run Code Online (Sandbox Code Playgroud)
没有用.有任何想法吗?
如果未正确转义空格,可能会导致 openldap 出现问题。
'OU="User Structure",OU=Acecity(LTO),OU=AceCloud,OU=Hosting,DC=AceCloud,DC=local'
Run Code Online (Sandbox Code Playgroud)
为了避免出现问题,请用单引号将整个 BINDDN 括起来,并用双引号将包含空格字符的公用名 (CN)、组织单位 (OU) 或域组件 (DC) 括起来。
| 归档时间: |
|
| 查看次数: |
1500 次 |
| 最近记录: |