2011-11-17 3 views
8

Je le vois lorsque j'essaie de me connecter avec CAS qui s'authentifie contre AD via LDAP.CAS AD LDAP 32 erreur

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) 

Jusqu'à ce moment-là j'authentifiées par le BindLdapAuthenticationHandler, Résolus, il a généré un constructeur de requête, puis jeté cela.

Je pense qu'il échoue quand il essaie de récupérer des attributs. Pourquoi est le remaining name '/'?

Répondre

7

Le nom restant est une partie d'un DN qui n'était pas réellement trouvé à un certain niveau d'un DIT. Par exemple lorsque vous effectuez une recherche cn=johns,ou=marketing,dc=example,dc=com et ou=marketing,dc=example,dc=com existe mais cn=johns n'existe pas à l'intérieur de ou=marketing puis le nom rémanent serait cn=johns.

'/' ne ressemble pas à un RDN valide. Je recommanderais de vérifier ce que vous passez comme base de recherche. Très probablement, c'est une chaîne de DN invalide.

+0

J'ai plutôt obtenu un nom restant, c'est-à-dire "", qui semble encore plus étrange, le problème est décrit [ici] (http://stackoverflow.com/q/39372374/5606016) (et il a en fait une prime ouverte) –

3

Le code d'erreur LDAP 32 signifie "pas un tel objet", dans ce cas, peut-être que l'objet de base de la recherche n'existait pas.

+0

Je peux confirmer que c'était la cause du problème, un objet de base vide. – sorin

Questions connexes