2011-11-17 15 views
8

Estoy viendo esto cuando trato de iniciar sesión con CAS, que se está autenticando contra AD sobre LDAP.CAS AD LDAP 32 error

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) 

Hasta ese momento yo estaba autenticado por el BindLdapAuthenticationHandler, soluciona, se generó un generador de consultas y luego arrojó esto.

Creo que está fallando cuando está tratando de recuperar los atributos. ¿Por qué es el remaining name '/'?

Respuesta

7

El nombre restante es una parte de un DN que realmente no se encontró en un cierto nivel de un DIT. Por ejemplo, cuando busca cn=johns,ou=marketing,dc=example,dc=com y ou=marketing,dc=example,dc=com existe, pero cn=johns no existe dentro de ou=marketing, entonces el nombre de remanencia sería cn=johns.

'/' no parece un RDN válido. Yo recomendaría verificar lo que pasa como una base de búsqueda. Lo más probable es que sea una cadena DN no válida.

+0

En su lugar, obtuve un nombre restante vacío, es decir, "", que parece aún más extraño, el problema se describe [aquí] (http://stackoverflow.com/q/39372374/5606016) (y en realidad tiene una recompensa abierta) –

3

El código de error LDAP 32 significa "no hay tal objeto", en este caso, tal vez el objeto base de la búsqueda no existía.

+0

Puedo confirmar que esta fue la causa del problema, un objeto base vacío. – sorin

Cuestiones relacionadas