2011-11-17 21 views
8

Widzę to, gdy próbuję zalogować się przy pomocy CAS, który uwierzytelnia się przeciwko AD za pośrednictwem LDAP.CAS AD Błąd LDAP 32

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) 

Do tego momentu byłem uwierzytelnionego przez BindLdapAuthenticationHandler, rozwiązany, to generowane konstruktor zapytań, a następnie rzucił to.

Myślę, że to się nie udaje, gdy próbuje odzyskać atrybuty. Dlaczego jest remaining name '/'?

Odpowiedz

7

Pozostała nazwa jest częścią nazwy wyróżniającej, która nie została znaleziona na określonym poziomie DIT. Na przykład podczas wyszukiwania cn=johns,ou=marketing,dc=example,dc=com i ou=marketing,dc=example,dc=com istnieje, ale cn=johns nie istnieje wewnątrz ou=marketing, wtedy nazwa remaning będzie cn=johns.

"/" nie wygląda na prawidłową RDN. Polecam zweryfikować, co przekazujesz jako bazę wyszukiwania. Najprawdopodobniej jest to nieprawidłowy ciąg DN.

+0

Zamiast tego otrzymałem puste, pozostałe imię, czyli "", które wygląda jeszcze dziwniej, problem opisany jest [tutaj] (http://stackoverflow.com/q/39372374/5606016) (i faktycznie ma otwartą nagrodę) –

3

Kod błędu LDAP 32 oznacza "brak takiego obiektu", w tym przypadku być może obiekt podstawowy wyszukiwania nie istnieje.

+0

Mogę potwierdzić, że to była przyczyna problemu, pusty obiekt podstawowy. – sorin