Ошибка CAS AD LDAP 32
Я вижу это, когда пытаюсь войти в систему с CAS, который аутентифицируется против AD через LDAP.
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.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)
до этого момента я был аутентифицирован BindLdapAuthenticationHandler, разрешен, он сгенерировал построитель запросов, а затем бросил это.
Я думаю, что это не удается, когда он пытается вернуть атрибуты. Почему remaining name '/'
?
2 ответов
оставшееся имя является частью DN, которая фактически не была найдена на определенном уровне DIT. Например, при поиске cn=johns,ou=marketing,dc=example,dc=com
и но cn=johns
не существует внутри ou=marketing
тогда восстановленное имя будет cn=johns
.
'/' не похоже на действительное RDN. Я бы рекомендовал проверить, что вы передаете в качестве базы поиска. Скорее всего, это недопустимая строка DN.
код ошибки LDAP 32 означает "нет такого объекта", в этом случае, возможно, базовый объект поиска не существовал.