Tutorial :Spring LDAP 1.3.0 clarify



Question:

I have this error, what does it mean?

org.springframework.ldap.NameNotFoundException: [LDAP: error code 32 - 0000208D: NameErr: DSID-031001A8, problem 2001 (NO_OBJECT), data 0, best match of:      ''  ]; nested exception is javax.naming.NameNotFoundException: [LDAP: error code 32 - 0000208D: NameErr: DSID-031001A8, problem 2001 (NO_OBJECT), data 0, best match of:      ''  ]; remaining name '/'      org.springframework.ldap.support.LdapUtils.convertLdapException(LdapUtils.java:172)      org.springframework.ldap.core.LdapTemplate.search(LdapTemplate.java:306)      org.springframework.ldap.core.LdapTemplate.search(LdapTemplate.java:237)      org.springframework.ldap.core.LdapTemplate.search(LdapTemplate.java:624)      org.springframework.ldap.core.LdapTemplate.search(LdapTemplate.java:535)      org.springframework.ldap.core.LdapTemplate.search(LdapTemplate.java:462)      org.springframework.ldap.core.LdapTemplate.search(LdapTemplate.java:483)      org.springframework.ldap.core.LdapTemplate.search(LdapTemplate.java:503)      org.springframework.ldap.core.LdapTemplate.authenticate(LdapTemplate.java:1424)      org.springframework.ldap.core.LdapTemplate.authenticate(LdapTemplate.java:1386)      com.spsetia.iss.services.ISSServiceImpl.login(ISSServiceImpl.java:92)      sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)      sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)      sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)      java.lang.reflect.Method.invoke(Method.java:597)      org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:307)      org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:182)      org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:149)      org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:89)      org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:171)      org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:204)      $Proxy55.login(Unknown Source)      sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)      sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)      sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)      java.lang.reflect.Method.invoke(Method.java:597)      org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:307)      org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:182)      org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:149)      org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:106)      org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:171)      org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:204)      $Proxy56.login(Unknown Source)      com.spsetia.iss.services.UserDetailsServiceImpl.loadUserByUsername(UserDetailsServiceImpl.java:70)      com.spsetia.iss.services.UserDetailsAuthenticationProvider.retrieveUser(UserDetailsAuthenticationProvider.java:26)      org.springframework.security.providers.dao.AbstractUserDetailsAuthenticationProvider.authenticate(AbstractUserDetailsAuthenticationProvider.java:121)      org.springframework.security.providers.ProviderManager.doAuthentication(ProviderManager.java:188)      org.springframework.security.AbstractAuthenticationManager.authenticate(AbstractAuthenticationManager.java:46)      org.springframework.security.ui.webapp.AuthenticationProcessingFilter.attemptAuthentication(AuthenticationProcessingFilter.java:82)      org.springframework.security.ui.AbstractProcessingFilter.doFilterHttp(AbstractProcessingFilter.java:258)      org.springframework.security.ui.SpringSecurityFilter.doFilter(SpringSecurityFilter.java:53)      org.springframework.security.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:390)      org.springframework.security.context.HttpSessionContextIntegrationFilter.doFilterHttp(HttpSessionContextIntegrationFilter.java:235)      org.springframework.security.ui.SpringSecurityFilter.doFilter(SpringSecurityFilter.java:53)      org.springframework.security.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:390)      org.springframework.security.util.FilterChainProxy.doFilter(FilterChainProxy.java:175)      org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:236)      org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:167)  

I trying to do this

 filter.and(new EqualsFilter("objectclass", "user")).and(new EqualsFilter("mail", username));    return ldapTemplate.authenticate(DistinguishedName.EMPTY_PATH, filter.toString(), password);  


Solution:1

LDAP 32 is like eDirectory -601 and AD's (ah I forget the code).

Basically object not found. I wonder if the DN you provided to bind with is not correct? Since you are doing a search, and object not found in a search should really just return an empty search result.


Solution:2

I have two versions of code, one using Spring LDAP 1.2.1, the other using 1.3.0. The 1.2.1 version works, the 1.3.0 version gives that error above.

There are small differences between the two versions. The 1.3.0 version disables connection pooling and uses a SingleContextSource. ( too avoid ldap connection pooling, which messes up the retrieval of paged results in Active Directory )

So I think 1.3.0 introduced a bug.


Note:If u also have question or solution just comment us below or mail us on toontricks1994@gmail.com
Previous
Next Post »