CAS AD LDAP 32错误

Bra*_*don 8 cas ldap active-directory

当我尝试使用CAS进行登录时,我看到了这种情况,这是通过LDAP对AD进行身份验证.

SEVERE: Servlet.service() for servlet cas threw exception
javax.naming.NameNotFoundException: [LDAP: error code 32 - 0000208D: NameErr: DSID-031001E5, problem 2001 (NO_OBJECT), data 0, best match of:
    ''
]; remaining name '/'
    at com.sun.jndi.ldap.LdapCtx.mapErrorCode(LdapCtx.java:3092)
    at com.sun.jndi.ldap.LdapCtx.processReturnCode(LdapCtx.java:3013)
    at com.sun.jndi.ldap.LdapCtx.processReturnCode(LdapCtx.java:2820)
    at com.sun.jndi.ldap.LdapCtx.searchAux(LdapCtx.java:1829)
    at com.sun.jndi.ldap.LdapCtx.c_search(LdapCtx.java:1752)
    at com.sun.jndi.toolkit.ctx.ComponentDirContext.p_search(ComponentDirContext.java:368)
    at com.sun.jndi.toolkit.ctx.PartialCompositeDirContext.search(PartialCompositeDirContext.java:338)
    at javax.naming.directory.InitialDirContext.search(InitialDirContext.java:257)
    at org.springframework.ldap.core.LdapTemplate$3.executeSearch(LdapTemplate.java:231)
    at org.springframework.ldap.core.LdapTemplate.search(LdapTemplate.java:293)
    at org.springframework.ldap.core.LdapTemplate.search(LdapTemplate.java:237)
    at org.springframework.ldap.core.LdapTemplate.search(LdapTemplate.java:588)
    at org.springframework.ldap.core.LdapTemplate.search(LdapTemplate.java:546)
    at org.springframework.ldap.core.LdapTemplate.search(LdapTemplate.java:401)
    at org.springframework.ldap.core.LdapTemplate.search(LdapTemplate.java:421)
    at org.springframework.ldap.core.LdapTemplate.search(LdapTemplate.java:441)
Run Code Online (Sandbox Code Playgroud)

到目前为止,我通过BindLdapAuthenticationHandler进行了身份验证,解析后,它生成了一个查询构建器,然后将其抛出.

我认为它在试图恢复属性时失败了.为什么remaining name '/'

Kir*_*nko 8

剩余名称是DN的一部分,实际上并未在DIT的某个级别找到.例如,当您搜索cn=johns,ou=marketing,dc=example,dc=comou=marketing,dc=example,dc=com存在但cn=johns内部不存在时,ou=marketing重新生成的名称将是cn=johns.

'/'看起来不像是有效的RDN.我建议验证您作为搜索基础传递的内容.很可能它是一个无效的DN字符串.