Hello: I have an OpenLDAP server running ldaps. It's a very simple and basic configuration that I use for identity management for linux boxes. My structure is as follows:
Root DSE dc=mydomain,dc=com ou=group <entry> objectClass: posixGroup cn: admins gidNumber: 1001 memberUid: test ou=people objectClass: account objectClass: posixAccount objectClass: shadowAccont cn: Test User gidNumber: 1000 uid: test homeDirectory: /home/test uidNumber: 1003 loginShell: /bin/bash userPassword: {SSHA} hashed password I'm able to correctly configure the settings and connect to the server in the configuration screen using the following parameters: Server: ldaps://mydomain.com:636 root DN: dc=mydomain,dc=com User search base: ou=people User search filter: uid={0} Group search base: ou=group Manager DN: cn=Manager,dc=purlogic,dc=biz Manager Password: <the correct password> I know I'm correctly connecting this way as I don't see any red error messages and I can see the connection happen in my JBoss logs. I check the "Logged in users can do anything" radio button and click "Save". However, when I try and login with the test user, it says login failed. My JBoss log outputs the following error message: ----------------------------------------------------------- 09:32:55,258 INFO [hudson.security.AuthenticationProcessingFilter2] Login attempt failed: org.acegisecurity.AuthenticationServiceException: Failed to obtain InitialDirContext due to unexpected exception; nested exception is javax.naming.InvalidNameException: [LDAP: error code 34 - invalid DN]; nested exception is org.acegisecurity.ldap.LdapDataAccessException: Failed to obtain InitialDirContext due to unexpected exception; nested exception is javax.naming.InvalidNameException: [LDAP: error code 34 - invalid DN] at org.acegisecurity.providers.ldap.LdapAuthenticationProvider.retrieveUser(LdapAuthenticationProvider.java: 238) [:] at org.acegisecurity.providers.dao.AbstractUserDetailsAuthenticationProvider.authenticate(AbstractUserDetailsAuthenticationProvider.java: 119) [:] at org.acegisecurity.providers.ProviderManager.doAuthentication(ProviderManager.java: 195) [:] at org.acegisecurity.AbstractAuthenticationManager.authenticate(AbstractAuthenticationManager.java: 45) [:] at org.acegisecurity.ui.webapp.AuthenticationProcessingFilter.attemptAuthentication(AuthenticationProcessingFilter.java: 71) [:] at org.acegisecurity.ui.AbstractProcessingFilter.doFilter(AbstractProcessingFilter.java: 252) [:] at hudson.security.ChainedServletFilter $1.doFilter(ChainedServletFilter.java:87) [:] at org.acegisecurity.ui.basicauth.BasicProcessingFilter.doFilter(BasicProcessingFilter.java: 173) [:] at hudson.security.ChainedServletFilter $1.doFilter(ChainedServletFilter.java:87) [:] at jenkins.security.ApiTokenFilter.doFilter(ApiTokenFilter.java:61) [:] at hudson.security.ChainedServletFilter $1.doFilter(ChainedServletFilter.java:87) [:] at org.acegisecurity.context.HttpSessionContextIntegrationFilter.doFilter(HttpSessionContextIntegrationFilter.java: 249) [:] at hudson.security.HttpSessionContextIntegrationFilter2.doFilter(HttpSessionContextIntegrationFilter2.java: 66) [:] at hudson.security.ChainedServletFilter $1.doFilter(ChainedServletFilter.java:87) [:] at hudson.security.ChainedServletFilter.doFilter(ChainedServletFilter.java: 76) [:] at hudson.security.HudsonFilter.doFilter(HudsonFilter.java: 164) [:] at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java: 274) [:6.0.0.Final] at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java: 242) [:6.0.0.Final] at hudson.util.CharacterEncodingFilter.doFilter(CharacterEncodingFilter.java: 81) [:] at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java: 274) [:6.0.0.Final] at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java: 242) [:6.0.0.Final] at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java: 275) [:6.0.0.Final] at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java: 191) [:6.0.0.Final] at org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssociationValve.java: 181) [:6.0.0.Final] at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java: 501) [:6.0.0.Final] at org.jboss.modcluster.catalina.CatalinaContext $RequestListenerValve.event(CatalinaContext.java:285) [:1.1.0.Final] at org.jboss.modcluster.catalina.CatalinaContext $RequestListenerValve.invoke(CatalinaContext.java:261) [:1.1.0.Final] at org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.java: 88) [:6.0.0.Final] at org.jboss.web.tomcat.security.SecurityContextEstablishmentValve.invoke(SecurityContextEstablishmentValve.java: 100) [:6.0.0.Final] at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java: 127) [:6.0.0.Final] at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java: 102) [:6.0.0.Final] at org.jboss.web.tomcat.service.jca.CachedConnectionValve.invoke(CachedConnectionValve.java: 158) [:6.0.0.Final] at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java: 109) [:6.0.0.Final] at org.jboss.web.tomcat.service.request.ActiveRequestResponseCacheValve.invoke(ActiveRequestResponseCacheValve.java: 53) [:6.0.0.Final] at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java: 362) [:6.0.0.Final] at org.apache.coyote.ajp.AjpProcessor.process(AjpProcessor.java:504) [: 6.0.0.Final] at org.apache.coyote.ajp.AjpProtocol $AjpConnectionHandler.process(AjpProtocol.java:437) [:6.0.0.Final] at org.apache.tomcat.util.net.JIoEndpoint $Worker.run(JIoEndpoint.java:951) [:6.0.0.Final] at java.lang.Thread.run(Thread.java:662) [:1.6.0_26] Caused by: org.acegisecurity.ldap.LdapDataAccessException: Failed to obtain InitialDirContext due to unexpected exception; nested exception is javax.naming.InvalidNameException: [LDAP: error code 34 - invalid DN] at org.acegisecurity.ldap.DefaultInitialDirContextFactory.connect(DefaultInitialDirContextFactory.java: 193) [:] at org.acegisecurity.ldap.DefaultInitialDirContextFactory.newInitialDirContext(DefaultInitialDirContextFactory.java: 261) [:] at org.acegisecurity.ldap.LdapTemplate.execute(LdapTemplate.java:123) [:] at org.acegisecurity.ldap.LdapTemplate.retrieveEntry(LdapTemplate.java: 165) [:] at org.acegisecurity.providers.ldap.authenticator.BindAuthenticator.bindWithDn(BindAuthenticator.java: 87) [:] at org.acegisecurity.providers.ldap.authenticator.BindAuthenticator.authenticate(BindAuthenticator.java: 72) [:] at org.acegisecurity.providers.ldap.authenticator.BindAuthenticator2.authenticate(BindAuthenticator2.java: 49) [:] at org.acegisecurity.providers.ldap.LdapAuthenticationProvider.retrieveUser(LdapAuthenticationProvider.java: 233) [:] ... 38 more Caused by: javax.naming.InvalidNameException: [LDAP: error code 34 - invalid DN] at com.sun.jndi.ldap.LdapCtx.processReturnCode(LdapCtx.java: 2982) [:1.6.0_26] at com.sun.jndi.ldap.LdapCtx.processReturnCode(LdapCtx.java: 2789) [:1.6.0_26] at com.sun.jndi.ldap.LdapCtx.connect(LdapCtx.java:2703) [: 1.6.0_26] at com.sun.jndi.ldap.LdapCtx.<init>(LdapCtx.java:293) [: 1.6.0_26] at com.sun.jndi.ldap.LdapCtxFactory.getUsingURL(LdapCtxFactory.java:175) [:1.6.0_26] at com.sun.jndi.ldap.LdapCtxFactory.getUsingURLs(LdapCtxFactory.java:193) [:1.6.0_26] at com.sun.jndi.ldap.LdapCtxFactory.getLdapCtxInstance(LdapCtxFactory.java: 136) [:1.6.0_26] at com.sun.jndi.ldap.LdapCtxFactory.getInitialContext(LdapCtxFactory.java: 66) [:1.6.0_26] at javax.naming.spi.NamingManager.getInitialContext(NamingManager.java: 667) [:1.6.0_26] at javax.naming.InitialContext.getDefaultInitCtx(InitialContext.java:288) [:1.6.0_26] at javax.naming.InitialContext.init(InitialContext.java:223) [: 1.6.0_26] at javax.naming.InitialContext.<init>(InitialContext.java:197) [:1.6.0_26] at javax.naming.directory.InitialDirContext.<init>(InitialDirContext.java: 82) [:1.6.0_26] at org.acegisecurity.ldap.DefaultInitialDirContextFactory.connect(DefaultInitialDirContextFactory.java: 180) [:] ... 45 more --------------------------------------------- I really do believe that I have a valid DN setting, as the JBoss logs will show the unencrypted response from the LDAP server, which contains all of the information from that user. I'm really stumped on what could be the issue. Any insight would be greatly appreciated, thanks!