2011-11-17 13 views
8

Lo vedo quando provo ad accedere con CAS che esegue l'autenticazione con AD su LDAP.CAS AD LDAP 32 errore

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) 

Fino a quel momento mi è stato autenticato dal BindLdapAuthenticationHandler, risolto, ha generato un generatore di query e poi ha gettato questo.

Penso che stia fallendo quando sta cercando di ottenere attributi indietro. Perché lo remaining name '/'?

risposta

7

Il nome rimanente fa parte di un DN che non è stato effettivamente trovato a un determinato livello di un DIT. Ad esempio, quando si cerca cn=johns,ou=marketing,dc=example,dc=com e ou=marketing,dc=example,dc=com esiste ma cn=johns non esiste all'interno di ou=marketing quindi il nome rimanente sarebbe cn=johns.

"/" non sembra un RDN valido. Consiglierei di verificare ciò che si passa come base di ricerca. Molto probabilmente è una stringa DN non valida.

+0

Ho invece ottenuto un nome rimanente vuoto, cioè "", che sembra ancora più strano, il problema è descritto [qui] (http://stackoverflow.com/q/39372374/5606016) (e in realtà ha una bounty aperta) –

3

codice di errore LDAP 32 significa "no tale oggetto", in questo caso, forse l'oggetto base della ricerca non esisteva.

+0

Posso confermare che questa era la causa del problema, un oggetto di base vuoto. – sorin