|
This post was updated on .
Hi,
I got some problems configuring the LDAP-Plugin in Version 1.2 with Active Directory. Using the following configuration it works fine: sonar.security.realm:LDAP sonar.authenticator.createUsers:true ldap.url:ldap://*********:389 ldap.user.baseDn:OU=User,DC=int,DC=***,DC=com ldap.bindDn:hku01 ldap.bindPassword:topsecret ldap.authentication:DIGEST-MD5 ldap.realm:int.example.com ldap.user.request=(&(objectClass=user)(sAMAccountName={login})) But using the configuration above the System-User "ldap.bindDn" must be within the group ldap.user.baseDn. Is it possible to configure a system-user as bindDn "outside" of baseDn like: ldap.user.baseDn:OU=User,DC=int,DC=example,DC=com ldap.bindDn:CN=Sonar,OU=ServiceAccount,DC=int,DC=example,DC=com When I use such configuration I got the following error: org.sonar.api.utils.SonarException: Unable to open LDAP connection ... Thx Hein |
|
Hi,
I do confirm that should be possible to configure a system-user as ldap.bindDn "outside" of ldap.user.baseBn. If this doesn't work for you, then most probably issue is on your side (misconfiguration), but I don't know how to help you more. Could you please provide full stack-trace?
On Tue, Aug 28, 2012 at 8:55 PM, Hein <[hidden email]> wrote: Hi, Best regards, Evgeny Mandrikov aka Godin <http://godin.net.ru> http://twitter.com/_godin_ |
|
This post was updated on .
Hi,
sorry for my late response and thx for yours :). When I take a working configuration (with a sonar-user "inside" baseDn) and just set the users bindDn to it's distinguished name (what would be necessary to define a Service-Account "outside" of baseDn as far as I understood), I got the following stacktrace: jvm 1 | org.sonar.api.utils.SonarException: Unable to open LDAP connection jvm 1 | at org.sonar.plugins.ldap.LdapContextFactory.testConnection(LdapContextFactory.java:153) jvm 1 | at org.sonar.plugins.ldap.LdapRealm.init(LdapRealm.java:73) jvm 1 | at org.sonar.server.ui.SecurityRealmFactory.start(SecurityRealmFactory.java:82) jvm 1 | at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) jvm 1 | at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) jvm 1 | at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) jvm 1 | at java.lang.reflect.Method.invoke(Method.java:597) jvm 1 | at org.picocontainer.lifecycle.ReflectionLifecycleStrategy.invokeMethod(ReflectionLifecycleStrategy.java :110) jvm 1 | at org.picocontainer.lifecycle.ReflectionLifecycleStrategy.start(ReflectionLifecycleStrategy.java:89) jvm 1 | at org.picocontainer.injectors.AbstractInjectionFactory$LifecycleAdapter.start(AbstractInjectionFactory. java:84) jvm 1 | at org.picocontainer.behaviors.AbstractBehavior.start(AbstractBehavior.java:169) jvm 1 | at org.picocontainer.behaviors.Stored$RealComponentLifecycle.start(Stored.java:132) jvm 1 | at org.picocontainer.behaviors.Stored.start(Stored.java:110) jvm 1 | at org.picocontainer.DefaultPicoContainer.potentiallyStartAdapter(DefaultPicoContainer.java:1009) jvm 1 | at org.picocontainer.DefaultPicoContainer.startAdapters(DefaultPicoContainer.java:1002) jvm 1 | at org.picocontainer.DefaultPicoContainer.start(DefaultPicoContainer.java:760) jvm 1 | at org.sonar.api.platform.ComponentContainer.startComponents(ComponentContainer.java:70) jvm 1 | at org.sonar.server.platform.Platform.startServiceComponents(Platform.java:242) jvm 1 | at org.sonar.server.platform.Platform.start(Platform.java:131) jvm 1 | at org.sonar.server.platform.PlatformLifecycleListener.contextInitialized(PlatformLifecycleListener.java :34) jvm 1 | at org.mortbay.jetty.handler.ContextHandler.startContext(ContextHandler.java:548) jvm 1 | at org.mortbay.jetty.servlet.Context.startContext(Context.java:136) jvm 1 | at org.mortbay.jetty.webapp.WebAppContext.startContext(WebAppContext.java:1272) jvm 1 | at org.mortbay.jetty.handler.ContextHandler.doStart(ContextHandler.java:517) jvm 1 | at org.mortbay.jetty.webapp.WebAppContext.doStart(WebAppContext.java:489) jvm 1 | at org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:50) jvm 1 | at org.mortbay.jetty.handler.HandlerWrapper.doStart(HandlerWrapper.java:130) jvm 1 | at org.mortbay.jetty.Server.doStart(Server.java:224) jvm 1 | at org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:50) jvm 1 | at org.sonar.application.JettyEmbedder.start(JettyEmbedder.java:72) jvm 1 | at org.sonar.application.StartServer.main(StartServer.java:48) jvm 1 | at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) jvm 1 | at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) jvm 1 | at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) jvm 1 | at java.lang.reflect.Method.invoke(Method.java:597) jvm 1 | at org.tanukisoftware.wrapper.WrapperSimpleApp.run(WrapperSimpleApp.java:240) jvm 1 | at java.lang.Thread.run(Thread.java:662) jvm 1 | 2012-09-06 15:10:21.575:INFO::Started SelectChannelConnector@0.0.0.0:9000 thx hein |
|
Hi,
Even this stacktrace seems incomplete for me, because I expected to see root cause of this exception, which should be javax.naming.NamingException
On Thu, Sep 6, 2012 at 7:17 PM, Hein <[hidden email]> wrote: Hi, Best regards, Evgeny Mandrikov aka Godin <http://godin.net.ru> http://twitter.com/_godin_ |
|
Hi,
sorry, hopefully this one is more complete, still no Naming- but an AuthenticationException. I just don´t know why... 2012.09.06 15:10:20 INFO org.sonar.INFO Start components... 2012.09.06 15:10:20 INFO o.s.j.s.AbstractDatabaseConnector Initializing Hibernate 2012.09.06 15:10:21 INFO org.sonar.INFO Security realm: LDAP 2012.09.06 15:10:21 INFO o.s.p.ldap.LdapRealm LdapContextFactory{url=ldap://p-ads-dc-3.int.example.com:389, authentication=DIGEST-MD5, factory=com.sun.jndi.ldap.LdapCtxFactory, bindDn=CN=sonar,OU=IT-DEP_Service_Accounts,OU=Development,OU=IT,OU=DE,OU=Locations,OU=Employees,OU=User,DC=int,DC=example,DC=com, realm=int.example.com} 2012.09.06 15:10:21 INFO o.s.p.ldap.LdapRealm LdapContextFactory{url=ldap://p-ads-dc-3.int.example.com:389, authentication=DIGEST-MD5, factory=com.sun.jndi.ldap.LdapCtxFactory, bindDn=CN=sonar,OU=IT-DEP_Service_Accounts,OU=Development,OU=IT,OU=DE,OU=Locations,OU=Employees,OU=User,DC=int,DC=example,DC=com, realm=int.example.com} 2012.09.06 15:10:21 INFO o.s.p.ldap.LdapRealm LdapUserMapping{baseDn=OU=IT,OU=DE,OU=Locations,OU=Employees,OU=User,DC=int,DC=example,DC=com, request=(&(objectClass=user)(sAMAccountName={0})), realNameAttribute=cn, emailAttribute=mail} 2012.09.06 15:10:21 INFO o.s.p.ldap.LdapRealm LdapUserMapping{baseDn=OU=IT,OU=DE,OU=Locations,OU=Employees,OU=User,DC=int,DC=example,DC=com, request=(&(objectClass=user)(sAMAccountName={0})), realNameAttribute=cn, emailAttribute=mail} 2012.09.06 15:10:21 INFO o.s.p.ldap.LdapRealm Groups will not be synchronized, because property 'ldap.group.baseDn' is empty. 2012.09.06 15:10:21 INFO o.s.p.ldap.LdapRealm Groups will not be synchronized, because property 'ldap.group.baseDn' is empty. 2012.09.06 15:10:21 DEBUG o.s.p.l.LdapContextFactory Initializing LDAP context {java.naming.provider.url=ldap://p-ads-dc-3.int.example.com:389, java.naming.factory.initial=com.sun.jndi.ldap.LdapCtxFactory, java.naming.security.principal=CN=sonar,OU=IT-DEP_Service_Accounts,OU=Development,OU=IT,OU=DE,OU=Locations,OU=Employees,OU=User,DC=int,DC=example,DC=com, com.sun.jndi.ldap.connect.pool=true, java.naming.security.authentication=DIGEST-MD5, java.naming.security.sasl.realm=int.example.com, java.naming.referral=follow} 2012.09.06 15:10:21 DEBUG o.s.p.l.LdapContextFactory Initializing LDAP context {java.naming.provider.url=ldap://p-ads-dc-3.int.example.com:389, java.naming.factory.initial=com.sun.jndi.ldap.LdapCtxFactory, java.naming.security.principal=CN=sonar,OU=IT-DEP_Service_Accounts,OU=Development,OU=IT,OU=DE,OU=Locations,OU=Employees,OU=User,DC=int,DC=example,DC=com, com.sun.jndi.ldap.connect.pool=true, java.naming.security.authentication=DIGEST-MD5, java.naming.security.sasl.realm=int.example.com, java.naming.referral=follow} 2012.09.06 15:10:21 INFO o.s.p.l.LdapContextFactory Test LDAP connection: FAIL 2012.09.06 15:10:21 INFO o.s.p.l.LdapContextFactory Test LDAP connection: FAIL 2012.09.06 15:10:21 ERROR o.s.s.p.Platform Unable to open LDAP connection org.sonar.api.utils.SonarException: Unable to open LDAP connection at org.sonar.plugins.ldap.LdapContextFactory.testConnection(LdapContextFactory.java:153) ~[na:na] at org.sonar.plugins.ldap.LdapRealm.init(LdapRealm.java:73) ~[na:na] at org.sonar.server.ui.SecurityRealmFactory.start(SecurityRealmFactory.java:82) ~[classes/:na] at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:1.6.0_31] at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) ~[na:1.6.0_31] at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) ~[na:1.6.0_31] at java.lang.reflect.Method.invoke(Method.java:597) ~[na:1.6.0_31] at org.picocontainer.lifecycle.ReflectionLifecycleStrategy.invokeMethod(ReflectionLifecycleStrategy.java:110) ~[picocontainer-2.14.1.jar:na] at org.picocontainer.lifecycle.ReflectionLifecycleStrategy.start(ReflectionLifecycleStrategy.java:89) ~[picocontainer-2.14.1.jar:na] at org.picocontainer.injectors.AbstractInjectionFactory$LifecycleAdapter.start(AbstractInjectionFactory.java:84) ~[picocontainer-2.14.1.jar:na] at org.picocontainer.behaviors.AbstractBehavior.start(AbstractBehavior.java:169) ~[picocontainer-2.14.1.jar:na] at org.picocontainer.behaviors.Stored$RealComponentLifecycle.start(Stored.java:132) ~[picocontainer-2.14.1.jar:na] at org.picocontainer.behaviors.Stored.start(Stored.java:110) ~[picocontainer-2.14.1.jar:na] at org.picocontainer.DefaultPicoContainer.potentiallyStartAdapter(DefaultPicoContainer.java:1009) ~[picocontainer-2.14.1.jar:na] at org.picocontainer.DefaultPicoContainer.startAdapters(DefaultPicoContainer.java:1002) ~[picocontainer-2.14.1.jar:na] at org.picocontainer.DefaultPicoContainer.start(DefaultPicoContainer.java:760) ~[picocontainer-2.14.1.jar:na] at org.sonar.api.platform.ComponentContainer.startComponents(ComponentContainer.java:70) ~[sonar-plugin-api-3.2.jar:na] at org.sonar.server.platform.Platform.startServiceComponents(Platform.java:242) ~[classes/:na] at org.sonar.server.platform.Platform.start(Platform.java:131) ~[classes/:na] at org.sonar.server.platform.PlatformLifecycleListener.contextInitialized(PlatformLifecycleListener.java:34) [classes/:na] at org.mortbay.jetty.handler.ContextHandler.startContext(ContextHandler.java:548) [jetty-6.1.25.jar:6.1.25] at org.mortbay.jetty.servlet.Context.startContext(Context.java:136) [jetty-6.1.25.jar:6.1.25] at org.mortbay.jetty.webapp.WebAppContext.startContext(WebAppContext.java:1272) [jetty-6.1.25.jar:6.1.25] at org.mortbay.jetty.handler.ContextHandler.doStart(ContextHandler.java:517) [jetty-6.1.25.jar:6.1.25] at org.mortbay.jetty.webapp.WebAppContext.doStart(WebAppContext.java:489) [jetty-6.1.25.jar:6.1.25] at org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:50) [jetty-util-6.1.25.jar:6.1.25] at org.mortbay.jetty.handler.HandlerWrapper.doStart(HandlerWrapper.java:130) [jetty-6.1.25.jar:6.1.25] at org.mortbay.jetty.Server.doStart(Server.java:224) [jetty-6.1.25.jar:6.1.25] at org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:50) [jetty-util-6.1.25.jar:6.1.25] at org.sonar.application.JettyEmbedder.start(JettyEmbedder.java:72) [sonar-application-3.2.jar:na] at org.sonar.application.StartServer.main(StartServer.java:48) [sonar-application-3.2.jar:na] at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:1.6.0_31] at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) ~[na:1.6.0_31] at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) ~[na:1.6.0_31] at java.lang.reflect.Method.invoke(Method.java:597) ~[na:1.6.0_31] at org.tanukisoftware.wrapper.WrapperSimpleApp.run(WrapperSimpleApp.java:240) [wrapper-3.2.3.jar:3.2.3] at java.lang.Thread.run(Thread.java:662) [na:1.6.0_31] Caused by: javax.naming.AuthenticationException: [LDAP: error code 49 - 8009030C: LdapErr: DSID-0C0904DC, comment: AcceptSecurityContext error, data 52e, v1db1 ] at com.sun.jndi.ldap.LdapCtx.mapErrorCode(LdapCtx.java:3067) ~[na:1.6.0_31] at com.sun.jndi.ldap.LdapCtx.processReturnCode(LdapCtx.java:3013) ~[na:1.6.0_31] at com.sun.jndi.ldap.LdapCtx.processReturnCode(LdapCtx.java:2815) ~[na:1.6.0_31] at com.sun.jndi.ldap.LdapCtx.connect(LdapCtx.java:2729) ~[na:1.6.0_31] at com.sun.jndi.ldap.LdapCtx.<init>(LdapCtx.java:296) ~[na:1.6.0_31] at com.sun.jndi.ldap.LdapCtxFactory.getUsingURL(LdapCtxFactory.java:175) ~[na:1.6.0_31] at com.sun.jndi.ldap.LdapCtxFactory.getUsingURLs(LdapCtxFactory.java:193) ~[na:1.6.0_31] at com.sun.jndi.ldap.LdapCtxFactory.getLdapCtxInstance(LdapCtxFactory.java:136) ~[na:1.6.0_31] at com.sun.jndi.ldap.LdapCtxFactory.getInitialContext(LdapCtxFactory.java:66) ~[na:1.6.0_31] at javax.naming.spi.NamingManager.getInitialContext(NamingManager.java:667) ~[na:1.6.0_31] at javax.naming.InitialContext.getDefaultInitCtx(InitialContext.java:288) ~[na:1.6.0_31] at javax.naming.InitialContext.init(InitialContext.java:223) ~[na:1.6.0_31] at javax.naming.ldap.InitialLdapContext.<init>(InitialLdapContext.java:134) ~[na:1.6.0_31] at org.sonar.plugins.ldap.LdapContextFactory.createInitialDirContext(LdapContextFactory.java:102) ~[na:na] at org.sonar.plugins.ldap.LdapContextFactory.createBindContext(LdapContextFactory.java:90) ~[na:na] at org.sonar.plugins.ldap.LdapContextFactory.testConnection(LdapContextFactory.java:149) ~[na:na] ... 36 common frames omitted INFO | jvm 1 | 2012/09/06 15:10:21 | 2012-09-06 15:10:21.566:WARN::Failed startup of context org.mortbay.jetty.webapp.WebAppContext@466481eb{/,file:/D:/sonar-3.2/sonar-3.2/war/sonar-server} INFO | jvm 1 | 2012/09/06 15:10:21 | org.sonar.api.utils.SonarException: Unable to open LDAP connection INFO | jvm 1 | 2012/09/06 15:10:21 | at org.sonar.plugins.ldap.LdapContextFactory.testConnection(LdapContextFactory.java:153) INFO | jvm 1 | 2012/09/06 15:10:21 | at org.sonar.plugins.ldap.LdapRealm.init(LdapRealm.java:73) INFO | jvm 1 | 2012/09/06 15:10:21 | at org.sonar.server.ui.SecurityRealmFactory.start(SecurityRealmFactory.java:82) INFO | jvm 1 | 2012/09/06 15:10:21 | at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) INFO | jvm 1 | 2012/09/06 15:10:21 | at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) INFO | jvm 1 | 2012/09/06 15:10:21 | at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) INFO | jvm 1 | 2012/09/06 15:10:21 | at java.lang.reflect.Method.invoke(Method.java:597) INFO | jvm 1 | 2012/09/06 15:10:21 | at org.picocontainer.lifecycle.ReflectionLifecycleStrategy.invokeMethod(ReflectionLifecycleStrategy.java:110) INFO | jvm 1 | 2012/09/06 15:10:21 | at org.picocontainer.lifecycle.ReflectionLifecycleStrategy.start(ReflectionLifecycleStrategy.java:89) INFO | jvm 1 | 2012/09/06 15:10:21 | at org.picocontainer.injectors.AbstractInjectionFactory$LifecycleAdapter.start(AbstractInjectionFactory.java:84) INFO | jvm 1 | 2012/09/06 15:10:21 | at org.picocontainer.behaviors.AbstractBehavior.start(AbstractBehavior.java:169) INFO | jvm 1 | 2012/09/06 15:10:21 | at org.picocontainer.behaviors.Stored$RealComponentLifecycle.start(Stored.java:132) INFO | jvm 1 | 2012/09/06 15:10:21 | at org.picocontainer.behaviors.Stored.start(Stored.java:110) INFO | jvm 1 | 2012/09/06 15:10:21 | at org.picocontainer.DefaultPicoContainer.potentiallyStartAdapter(DefaultPicoContainer.java:1009) INFO | jvm 1 | 2012/09/06 15:10:21 | at org.picocontainer.DefaultPicoContainer.startAdapters(DefaultPicoContainer.java:1002) INFO | jvm 1 | 2012/09/06 15:10:21 | at org.picocontainer.DefaultPicoContainer.start(DefaultPicoContainer.java:760) INFO | jvm 1 | 2012/09/06 15:10:21 | at org.sonar.api.platform.ComponentContainer.startComponents(ComponentContainer.java:70) INFO | jvm 1 | 2012/09/06 15:10:21 | at org.sonar.server.platform.Platform.startServiceComponents(Platform.java:242) INFO | jvm 1 | 2012/09/06 15:10:21 | at org.sonar.server.platform.Platform.start(Platform.java:131) INFO | jvm 1 | 2012/09/06 15:10:21 | at org.sonar.server.platform.PlatformLifecycleListener.contextInitialized(PlatformLifecycleListener.java:34) INFO | jvm 1 | 2012/09/06 15:10:21 | at org.mortbay.jetty.handler.ContextHandler.startContext(ContextHandler.java:548) INFO | jvm 1 | 2012/09/06 15:10:21 | at org.mortbay.jetty.servlet.Context.startContext(Context.java:136) INFO | jvm 1 | 2012/09/06 15:10:21 | at org.mortbay.jetty.webapp.WebAppContext.startContext(WebAppContext.java:1272) INFO | jvm 1 | 2012/09/06 15:10:21 | at org.mortbay.jetty.handler.ContextHandler.doStart(ContextHandler.java:517) INFO | jvm 1 | 2012/09/06 15:10:21 | at org.mortbay.jetty.webapp.WebAppContext.doStart(WebAppContext.java:489) INFO | jvm 1 | 2012/09/06 15:10:21 | at org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:50) INFO | jvm 1 | 2012/09/06 15:10:21 | at org.mortbay.jetty.handler.HandlerWrapper.doStart(HandlerWrapper.java:130) INFO | jvm 1 | 2012/09/06 15:10:21 | at org.mortbay.jetty.Server.doStart(Server.java:224) INFO | jvm 1 | 2012/09/06 15:10:21 | at org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:50) INFO | jvm 1 | 2012/09/06 15:10:21 | at org.sonar.application.JettyEmbedder.start(JettyEmbedder.java:72) INFO | jvm 1 | 2012/09/06 15:10:21 | at org.sonar.application.StartServer.main(StartServer.java:48) INFO | jvm 1 | 2012/09/06 15:10:21 | at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) INFO | jvm 1 | 2012/09/06 15:10:21 | at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) INFO | jvm 1 | 2012/09/06 15:10:21 | at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) INFO | jvm 1 | 2012/09/06 15:10:21 | at java.lang.reflect.Method.invoke(Method.java:597) INFO | jvm 1 | 2012/09/06 15:10:21 | at org.tanukisoftware.wrapper.WrapperSimpleApp.run(WrapperSimpleApp.java:240) INFO | jvm 1 | 2012/09/06 15:10:21 | at java.lang.Thread.run(Thread.java:662) INFO | jvm 1 | 2012/09/06 15:10:21 | 2012-09-06 15:10:21.575:INFO::Started SelectChannelConnector@0.0.0.0:9000 thx hein |
|
Hi,
Sorry, but I don't have ideas, but still believe that issue is on your side (misconfiguration).
On Thu, Sep 6, 2012 at 8:06 PM, Hein <[hidden email]> wrote: Hi, Best regards, Evgeny Mandrikov aka Godin <http://godin.net.ru> http://twitter.com/_godin_ |
|
In reply to this post by Hein
I made this work after more then one day of trial&error , searching for help online, asking colleagues, etc.
Here is my configuration ( I don't know if this may help someone else one day) : sonar.security.realm: LDAP #sonar.authenticator.createUsers: true ldap.url: ldap://******.****.int:3268 ldap.user.baseDn: DC=mycompany,DC=int ldap.bindDn: myuser@mycompany.com ldap.bindPassword: secretpass ldap.user.request=(&(objectClass=user)(sAMAccountName={login})) |
| Powered by Nabble | Edit this page |
