**Urgent**: Need help integrating with LDAP
Asked by Tushar Shah:

I created a unique LDAP binding user but I get Problem getting the initial LDAP context  
when I click on 'ReSynch' in Admin console. The settings are:  
URLldap://xxxxxx:389  
Base DN: xxxxx  
User Filter: (sAMAccountName=${USERNAME})  
UID attributes: AMAccountName  
Exception is:  
com.cenqua.fisheye.user.AuthenticationException: Problem getting the initial LDAP context  
at com.cenqua.fisheye.user.ldap.LDAPAuth.makeContext(LDAPAuth.java:357)  
at com.cenqua.fisheye.user.ldap.LDAPAuth.listUserNames(LDAPAuth.java:423)  
at com.cenqua.fisheye.user.DefaultUserManager.getExternalUserNamesSanitized(DefaultUserManager.java:781)  
at com.cenqua.fisheye.user.DefaultUserManager.synchroniseUsers(DefaultUserManager.java:721)  
at com.cenqua.fisheye.user.DefaultUserManager.synchroniseUsers(DefaultUserManager.java:696)  
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)  
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)  
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)  
at java.lang.reflect.Method.invoke(Unknown Source)  
at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:309)  
at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:183)  
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:150)  
at com.googlecode.ehcache.annotations.interceptor.EhCacheInterceptor.invokeTriggersRemove(EhCacheInterceptor.java:191)  
at com.googlecode.ehcache.annotations.interceptor.EhCacheInterceptor.invoke(EhCacheInterceptor.java:90)  
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)  
at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:202)  
at com.sun.proxy.$Proxy34.synchroniseUsers(Unknown Source)  
at com.cenqua.fisheye.web.admin.actions.sec.ReSyncAuthAction.execute(ReSyncAuthAction.java:14)  
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)  
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)  
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)  
at java.lang.reflect.Method.invoke(Unknown Source)  
at com.opensymphony.xwork.DefaultActionInvocation.invokeAction(DefaultActionInvocation.java:358)  
at com.opensymphony.xwork.DefaultActionInvocation.invokeActionOnly(DefaultActionInvocation.java:218)  
at com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:192)  
at com.opensymphony.xwork.interceptor.AroundInterceptor.intercept(AroundInterceptor.java:31)  
at com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:190)  
at com.atlassian.fisheye.xwork.SimpleConversionErrorInterceptor.intercept(SimpleConversionErrorInterceptor.java:64)  
at com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:190)  
at com.opensymphony.xwork.interceptor.AroundInterceptor.intercept(AroundInterceptor.java:31)  
at com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:190)  
at com.opensymphony.xwork.interceptor.AroundInterceptor.intercept(AroundInterceptor.java:31)  
at com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:190)  
at com.opensymphony.xwork.interceptor.AroundInterceptor.intercept(AroundInterceptor.java:31)  
at com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:190)  
at com.opensymphony.xwork.interceptor.AroundInterceptor.intercept(AroundInterceptor.java:31)  
at com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:190)  
at com.opensymphony.xwork.interceptor.ExceptionMappingInterceptor.intercept(ExceptionMappingInterceptor.java:186)  
at com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:190)  
at com.opensymphony.xwork.interceptor.AroundInterceptor.intercept(AroundInterceptor.java:31)  
at com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:190)  
at com.opensymphony.xwork.interceptor.AroundInterceptor.intercept(AroundInterceptor.java:31)  
at com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:190)  
at com.atlassian.xwork.interceptors.XsrfTokenInterceptor.intercept(XsrfTokenInterceptor.java:100)  
at com.cenqua.fisheye.web.util.XsrfCheckInterceptor.intercept(XsrfCheckInterceptor.java:20)  
at com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:190)  
at com.opensymphony.xwork.interceptor.AroundInterceptor.intercept(AroundInterceptor.java:31)  
at com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:190)  
at com.cenqua.fisheye.web.admin.interceptors.LoginInterceptor.intercept(LoginInterceptor.java:33)  
at com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:190)  
at com.opensymphony.xwork.DefaultActionProxy.execute(DefaultActionProxy.java:116)  
at com.opensymphony.webwork.dispatcher.DispatcherUtils.serviceAction(DispatcherUtils.java:274)  
at com.opensymphony.webwork.dispatcher.ServletDispatcher.service(ServletDispatcher.java:111)  
at javax.servlet.http.HttpServlet.service(HttpServlet.java:848)  
at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:669)  
at org.eclipse.jetty.servlet.ServletHandler$Chain.doFilter(ServletHandler.java:1526)  
at com.atlassian.plugin.servlet.filter.IteratingFilterChain.doFilter(IteratingFilterChain.java:46)  
at com.atlassian.plugin.servlet.filter.DelegatingPluginFilter$1.doFilter(DelegatingPluginFilter.java:66)  
at com.atlassian.applinks.core.rest.context.ContextFilter.doFilter(ContextFilter.java:25)  
at com.atlassian.plugin.servlet.filter.DelegatingPluginFilter.doFilter(DelegatingPluginFilter.java:74)  
at com.atlassian.plugin.servlet.filter.IteratingFilterChain.doFilter(IteratingFilterChain.java:42)  
at com.atlassian.plugin.servlet.filter.DelegatingPluginFilter$1.doFilter(DelegatingPluginFilter.java:66)  
at com.atlassian.prettyurls.filter.PrettyUrlsSiteMeshFixupFilter.doFilter(PrettyUrlsSiteMeshFixupFilter.java:36)  
at com.atlassian.plugin.servlet.filter.DelegatingPluginFilter.doFilter(DelegatingPluginFilter.java:74)  
at com.atlassian.plugin.servlet.filter.IteratingFilterChain.doFilter(IteratingFilterChain.java:42)  
at com.atlassian.plugin.servlet.filter.DelegatingPluginFilter$1.doFilter(DelegatingPluginFilter.java:66)  
at com.atlassian.prettyurls.filter.PrettyUrlsDispatcherFilter.doFilter(PrettyUrlsDispatcherFilter.java:60)  
at com.atlassian.plugin.servlet.filter.DelegatingPluginFilter.doFilter(DelegatingPluginFilter.java:74)  
at com.atlassian.plugin.servlet.filter.IteratingFilterChain.doFilter(IteratingFilterChain.java:42)  
at com.atlassian.plugin.servlet.filter.DelegatingPluginFilter$1.doFilter(DelegatingPluginFilter.java:66)  
at com.atlassian.prettyurls.filter.PrettyUrlsSiteMeshFilter.doFilter(PrettyUrlsSiteMeshFilter.java:92)  
at com.atlassian.plugin.servlet.filter.DelegatingPluginFilter.doFilter(DelegatingPluginFilter.java:74)  
at com.atlassian.plugin.servlet.filter.IteratingFilterChain.doFilter(IteratingFilterChain.java:42)  
at com.atlassian.plugin.servlet.filter.DelegatingPluginFilter$1.doFilter(DelegatingPluginFilter.java:66)  
at com.atlassian.prettyurls.filter.PrettyUrlsMatcherFilter.doFilter(PrettyUrlsMatcherFilter.java:56)  
at com.atlassian.plugin.servlet.filter.DelegatingPluginFilter.doFilter(DelegatingPluginFilter.java:74)  
at com.atlassian.plugin.servlet.filter.IteratingFilterChain.doFilter(IteratingFilterChain.java:42)  
at com.atlassian.plugin.servlet.filter.ServletFilterModuleContainerFilter.doFilter(ServletFilterModuleContainerFilter.java:77)  
at com.atlassian.plugin.servlet.filter.ServletFilterModuleContainerFilter.doFilter(ServletFilterModuleContainerFilter.java:63)  
at org.eclipse.jetty.servlet.ServletHandler$Chain.doFilter(ServletHandler.java:1502)  
at com.opensymphony.module.sitemesh.filter.PageFilter.parsePage(PageFilter.java:118)  
at com.opensymphony.module.sitemesh.filter.PageFilter.doFilter(PageFilter.java:54)  
at org.eclipse.jetty.servlet.ServletHandler$Chain.doFilter(ServletHandler.java:1502)  
at com.atlassian.plugin.servlet.filter.IteratingFilterChain.doFilter(IteratingFilterChain.java:46)  
at com.atlassian.plugin.servlet.filter.DelegatingPluginFilter$1.doFilter(DelegatingPluginFilter.java:66)  
at com.atlassian.prettyurls.filter.PrettyUrlsCombinedMatchDispatcherFilter.doFilter(PrettyUrlsCombinedMatchDispatcherFilter.java:61)  
at com.atlassian.plugin.servlet.filter.DelegatingPluginFilter.doFilter(DelegatingPluginFilter.java:74)  
at com.atlassian.plugin.servlet.filter.IteratingFilterChain.doFilter(IteratingFilterChain.java:42)  
at com.atlassian.plugin.servlet.filter.ServletFilterModuleContainerFilter.doFilter(ServletFilterModuleContainerFilter.java:77)  
at com.atlassian.plugin.servlet.filter.ServletFilterModuleContainerFilter.doFilter(ServletFilterModuleContainerFilter.java:63)  
at org.eclipse.jetty.servlet.ServletHandler$Chain.doFilter(ServletHandler.java:1502)  
at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:83)  
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76)  
at org.eclipse.jetty.servlet.ServletHandler$Chain.doFilter(ServletHandler.java:1502)  
at com.atlassian.crucible.filters.CrucibleFilter.doFilter(CrucibleFilter.java:146)  
at org.eclipse.jetty.servlet.ServletHandler$Chain.doFilter(ServletHandler.java:1502)  
at com.cenqua.fisheye.web.filters.TotalityFilter.doFilter(TotalityFilter.java:296)  
at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:237)  
at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:167)  
at org.eclipse.jetty.servlet.ServletHandler$Chain.doFilter(ServletHandler.java:1502)  
at com.atlassian.security.auth.trustedapps.filter.TrustedApplicationsFilter.doFilter(TrustedApplicationsFilter.java:100)  
at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:237)  
at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:167)  
at org.eclipse.jetty.servlet.ServletHandler$Chain.doFilter(ServletHandler.java:1502)  
at com.atlassian.plugin.servlet.filter.IteratingFilterChain.doFilter(IteratingFilterChain.java:46)  
at com.atlassian.plugin.servlet.filter.DelegatingPluginFilter$1.doFilter(DelegatingPluginFilter.java:66)  
at com.atlassian.oauth.serviceprovider.internal.servlet.OAuthFilter.doFilter(OAuthFilter.java:61)  
at com.atlassian.plugin.servlet.filter.DelegatingPluginFilter.doFilter(DelegatingPluginFilter.java:74)  
at com.atlassian.plugin.servlet.filter.IteratingFilterChain.doFilter(IteratingFilterChain.java:42)  
at com.atlassian.plugin.servlet.filter.DelegatingPluginFilter$1.doFilter(DelegatingPluginFilter.java:66)  
at com.atlassian.prettyurls.filter.PrettyUrlsCombinedMatchDispatcherFilter.doFilter(PrettyUrlsCombinedMatchDispatcherFilter.java:61)  
at com.atlassian.plugin.servlet.filter.DelegatingPluginFilter.doFilter(DelegatingPluginFilter.java:74)  
at com.atlassian.plugin.servlet.filter.IteratingFilterChain.doFilter(IteratingFilterChain.java:42)  
at com.atlassian.plugin.servlet.filter.ServletFilterModuleContainerFilter.doFilter(ServletFilterModuleContainerFilter.java:77)  
at com.atlassian.plugin.servlet.filter.ServletFilterModuleContainerFilter.doFilter(ServletFilterModuleContainerFilter.java:63)  
at org.eclipse.jetty.servlet.ServletHandler$Chain.doFilter(ServletHandler.java:1502)  
at org.eclipse.jetty.servlets.UserAgentFilter.doFilter(UserAgentFilter.java:82)  
at org.eclipse.jetty.servlets.GzipFilter.doFilter(GzipFilter.java:256)  
at com.cenqua.fisheye.web.filters.CustomIncludableGzipFilter.doFilter(CustomIncludableGzipFilter.java:27)  
at org.eclipse.jetty.servlet.ServletHandler$Chain.doFilter(ServletHandler.java:1502)  
at com.cenqua.fisheye.web.filters.ProductInfoFilter.doFilter(ProductInfoFilter.java:44)  
at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:237)  
at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:167)  
at org.eclipse.jetty.servlet.ServletHandler$Chain.doFilter(ServletHandler.java:1502)  
at com.atlassian.plugin.servlet.filter.IteratingFilterChain.doFilter(IteratingFilterChain.java:46)  
at com.atlassian.plugin.servlet.filter.DelegatingPluginFilter$1.doFilter(DelegatingPluginFilter.java:66)  
at com.atlassian.prettyurls.filter.PrettyUrlsCombinedMatchDispatcherFilter.doFilter(PrettyUrlsCombinedMatchDispatcherFilter.java:61)  
at com.atlassian.plugin.servlet.filter.DelegatingPluginFilter.doFilter(DelegatingPluginFilter.java:74)  
at com.atlassian.plugin.servlet.filter.IteratingFilterChain.doFilter(IteratingFilterChain.java:42)  
at com.atlassian.plugin.servlet.filter.ServletFilterModuleContainerFilter.doFilter(ServletFilterModuleContainerFilter.java:77)  
at com.atlassian.plugin.servlet.filter.ServletFilterModuleContainerFilter.doFilter(ServletFilterModuleContainerFilter.java:63)  
at org.eclipse.jetty.servlet.ServletHandler$Chain.doFilter(ServletHandler.java:1502)  
at com.cenqua.fisheye.web.filters.UpfrontFilter.doFilter(UpfrontFilter.java:59)  
at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:237)  
at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:167)  
at org.eclipse.jetty.servlet.ServletHandler$Chain.doFilter(ServletHandler.java:1502)  
at com.atlassian.fecru.profiling.ProfilingServletFilter.doFilter(ProfilingServletFilter.java:76)  
at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:237)  
at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:167)  
at org.eclipse.jetty.servlet.ServletHandler$Chain.doFilter(ServletHandler.java:1502)  
at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:455)  
at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:137)  
at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:557)  
at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:231)  
at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1075)  
at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:384)  
at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:193)  
at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1009)  
at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:135)  
at org.eclipse.jetty.server.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:255)  
at org.eclipse.jetty.server.handler.HandlerCollection.handle(HandlerCollection.java:154)  
at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:116)  
at org.eclipse.jetty.server.Server.handle(Server.java:368)  
at org.eclipse.jetty.server.AbstractHttpConnection.handleRequest(AbstractHttpConnection.java:489)  
at org.eclipse.jetty.server.AbstractHttpConnection.content(AbstractHttpConnection.java:953)  
at org.eclipse.jetty.server.AbstractHttpConnection$RequestHandler.content(AbstractHttpConnection.java:1014)  
at org.eclipse.jetty.http.HttpParser.parseNext(HttpParser.java:861)  
at org.eclipse.jetty.http.HttpParser.parseAvailable(HttpParser.java:240)  
at org.eclipse.jetty.server.AsyncHttpConnection.handle(AsyncHttpConnection.java:82)  
at org.eclipse.jetty.io.nio.SelectChannelEndPoint.handle(SelectChannelEndPoint.java:628)  
at org.eclipse.jetty.io.nio.SelectChannelEndPoint$1.run(SelectChannelEndPoint.java:52)  
at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:608)  
at org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:543)  
at java.lang.Thread.run(Unknown Source)  
Caused by: javax.naming.AuthenticationException: \[LDAP: error code 49 - 80090308: LdapErr: DSID-0C090334, comment: AcceptSecurityContext error, data 525, vece\]  
at com.sun.jndi.ldap.LdapCtx.mapErrorCode(Unknown Source)  
at com.sun.jndi.ldap.LdapCtx.processReturnCode(Unknown Source)  
at com.sun.jndi.ldap.LdapCtx.processReturnCode(Unknown Source)  
at com.sun.jndi.ldap.LdapCtx.connect(Unknown Source)  
at com.sun.jndi.ldap.LdapCtx.\<init\>(Unknown Source)  
at com.sun.jndi.ldap.LdapCtxFactory.getUsingURL(Unknown Source)  
at com.sun.jndi.ldap.LdapCtxFactory.getUsingURLs(Unknown Source)  
at com.sun.jndi.ldap.LdapCtxFactory.getLdapCtxInstance(Unknown Source)  
at com.sun.jndi.ldap.LdapCtxFactory.getInitialContext(Unknown Source)  
at javax.naming.spi.NamingManager.getInitialContext(Unknown Source)  
at javax.naming.InitialContext.getDefaultInitCtx(Unknown Source)  
at javax.naming.InitialContext.init(Unknown Source)  
at javax.naming.InitialContext.\<init\>(Unknown Source)  
at javax.naming.directory.InitialDirContext.\<init\>(Unknown Source)  
at com.cenqua.fisheye.user.ldap.LDAPAuth.makeContext(LDAPAuth.java:355)  
... 163 more


Answers:
author: Tushar Shah
body: Issue is still not resolved as Crucible is unable to connect to LDAP and gives exception I shared in this question. I'll reopen it if it can't be resolved. Thanks.


author: Tushar Shah
body: Like I said, I do have an initial bind account and password. I tried new account with LDAP browser and I get exact same error. However, when I select "GSS-API" then my initial bind account works. Our LDAP server supports GSS-API. How do I enable support for GSS-API?


author: Piotr Swiecicki
body: Hi Tushar,  
I think the actual reason is in this line:

```
Caused by: javax.naming.AuthenticationException: [LDAP: error code 49 - 80090308: LdapErr: DSID-0C090334, comment: AcceptSecurityContext error, data 525, vece]at com.sun.jndi.ldap.LdapCtx.ma
```

According to this document: [](http://www-01.ibm.com/support/docview.wss?uid=swg21290631)<http://www-01.ibm.com/support/docview.wss?uid=swg21290631>  
code: data 525, vece  
means that user was not found.

I am guessing your server does not allow anonymous searches and you need to provide Initial bind DN and password so your LDAP server would authenticate you first.  
Can you try that please? Perhaps it's worth to check with another LDAP client (for example ldapsearch command line utility) that you can connect to your ldap server and perform a query?

Hope that helps,  
Piotr

comments: author: Tushar Shah
body: Like I said, I do have an initial bind account and password. I tried new account with LDAP browser and I get exact same error. However, when I select "GSS-API" then my initial bind account works. Our LDAP server supports GSS-API. How do I enable support for GSS-API?


author: Piotr Swiecicki
body: I'm afraid FishEye/Crucible does not support GSS-API/Kerberos based authentication.   
Such feature was already requested in the past: [](https://jira.atlassian.com/browse/CRUC-3834 "https://jira.atlassian.com/browse/CRUC-3834")<https://jira.atlassian.com/browse/CRUC-3834>[](https://jira.atlassian.com/browse/CRUC-3834) but seeing just 1 vote on this issue I'm guessing this is not highly demanded feature.

Any chance you could switch to different authentication mode?


author: Tushar Shah
body: The link you sent doesn't work. Another team has Confluence and their LDAP integration works just fine. Why is that?


author: Piotr Swiecicki
body: I fixed the link, thanks. As far as I know Confluence doesn't support GSSAPI natively. Does your Confluence integration with LDAP configured the same way you configured FishEye instance? Does your Confluence use any third party authenticator/integration plugins?