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$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)

До этого момента я был аутентифицирован BindLdapAuthenticationHandler, разрешен, он сгенерировал построитель запросов, а затем бросил это.

Я думаю, что это терпит неудачу, когда он пытается вернуть атрибуты. Почему remaining name '/'?


person Brandon    schedule 17.11.2011    source источник


Ответы (2)


Оставшееся имя — это часть DN, которая фактически не была найдена на определенном уровне DIT. Например, когда вы ищете cn=johns,ou=marketing,dc=example,dc=com и ou=marketing,dc=example,dc=com существует, но cn=johns не существует внутри ou=marketing, тогда остаточное имя будет cn=johns.

'/' не выглядит допустимым RDN. Я бы порекомендовал проверить то, что вы передаете в качестве базы поиска. Скорее всего, это неверная строка DN.

person Kirill Kovalenko    schedule 18.11.2011
comment
Вместо этого я получил пустое оставшееся имя, то есть , что выглядит еще более странно, проблема описана здесь (и на самом деле она открытая награда) - person A_Di-Matteo; 12.09.2016

Код ошибки LDAP 32 означает «нет такого объекта», в этом случае, возможно, базовый объект поиска не существовал.

person Terry Gardner    schedule 18.11.2011
comment
Я могу подтвердить, что это было причиной проблемы, пустой базовый объект. - person sorin; 04.11.2014