Uploaded image for project: 'Crowd Data Center'
  1. Crowd Data Center
  2. CWD-568

Keep alive connections to OpenLDAP

    XMLWordPrintable

Details

    • Suggestion
    • Resolution: Obsolete
    • None
    • Directory - LDAP
    • None
    • Standalone, JDK 1.5.0_11, Linux
    • Our product teams collect and evaluate feedback from a number of different sources. To learn more about how we use customer feedback in the planning process, check out our new feature policy.

    Description

      If a firewall closes the connection between Crowd and OpenLDAP, Crowd should reconnect to OpenLDAP. (I guess this applies to other LDAP directories as well.)

      Crowd should also have a keep alive option to prevent the connection from being terminated. This functionality is important when it's not possible to configure the firewall session TTL high enough.

      16:06:22,660  INFO crowd.integration.directory.connector.SpringLDAPConnector: Performing group search: baseDN = ou=Groups,ou=Internal,dc=domain,dc=com - filter = (objectclass=groupOfUniqueNames)
      08:28:43,280  INFO atlassian.crowd.integration.http.VerifyTokenFilter: Authentication is not valid, redirecting to: http://crowd.domain.com/crowd/console/
      08:31:09,219  INFO crowd.integration.directory.connector.SpringLDAPConnector: Performing group search: baseDN = ou=Groups,ou=Internal,dc=domain,dc=com - filter = (objectclass=groupOfUniqueNames)
      09:28:04,510  INFO crowd.integration.directory.connector.SpringLDAPConnector: Performing group search: baseDN = ou=Groups,ou=Internal,dc=domain,dc=com - filter = (objectclass=groupOfUniqueNames)
      09:28:19,556 ERROR crowd.console.action.group.BrowseGroups: Operation failed; nested exception is javax.naming.ServiceUnavailableException: npldap1.domain.com:389; socket closed; remaining name 'ou=Groups,ou=Internal,dc=domain,dc=com'
      org.springframework.ldap.UncategorizedLdapException: Operation failed; nested exception is javax.naming.ServiceUnavailableException: npldap1.domain.com:389; socket closed; remaining name 'ou=Groups,ou=Internal,dc=domain,dc=com'
      javax.naming.ServiceUnavailableException: npldap1.domain.com:389; socket closed; remaining name 'ou=Groups,ou=Internal,dc=domain,dc=com'
              at com.sun.jndi.ldap.Connection.readReply(Connection.java:410)
              at com.sun.jndi.ldap.LdapClient.getSearchReply(LdapClient.java:611)
              at com.sun.jndi.ldap.LdapClient.search(LdapClient.java:534)
              at com.sun.jndi.ldap.LdapCtx.doSearch(LdapCtx.java:1944)
              at com.sun.jndi.ldap.LdapCtx.searchAux(LdapCtx.java:1806)
              at com.sun.jndi.ldap.LdapCtx.c_search(LdapCtx.java:1731)
              at com.sun.jndi.toolkit.ctx.ComponentDirContext.p_search(ComponentDirContext.java:368)
              at com.sun.jndi.toolkit.ctx.PartialCompositeDirContext.search(PartialCompositeDirContext.java:338)
              at com.sun.jndi.toolkit.ctx.PartialCompositeDirContext.search(PartialCompositeDirContext.java:321)
              at javax.naming.directory.InitialDirContext.search(InitialDirContext.java:248)
              at org.springframework.ldap.LdapTemplate$4.executeSearch(LdapTemplate.java:227)
              at org.springframework.ldap.LdapTemplate.search(LdapTemplate.java:268)
              at org.springframework.ldap.LdapTemplate.search(LdapTemplate.java:231)
              at org.springframework.ldap.LdapTemplate.search(LdapTemplate.java:526)
              at org.springframework.ldap.LdapTemplate.search(LdapTemplate.java:510)
              at org.springframework.ldap.LdapTemplate.search(LdapTemplate.java:359)
              at org.springframework.ldap.LdapTemplate.search(LdapTemplate.java:380)
              at org.springframework.ldap.LdapTemplate.search(LdapTemplate.java:400)
              at com.atlassian.crowd.integration.directory.connector.SpringLDAPConnector.searchGroups(SpringLDAPConnector.java:433)
              at com.atlassian.crowd.manager.directory.DirectoryManagerGeneric.searchGroups(DirectoryManagerGeneric.java:471)
              at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
              at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
              at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
              at java.lang.reflect.Method.invoke(Method.java:585)
              at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:287)
              at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:181)
              at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:148)
              at org.springframework.orm.hibernate3.HibernateInterceptor.invoke(HibernateInterceptor.java:88)
              at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:170)
              at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:176)
              at $Proxy3.searchGroups(Unknown Source)
              at com.atlassian.crowd.console.action.group.BrowseGroups.execute(BrowseGroups.java:57)
              at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
              at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
              at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
              at java.lang.reflect.Method.invoke(Method.java:585)
              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.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.atlassian.xwork.interceptors.XWorkTransactionInterceptor.intercept(XWorkTransactionInterceptor.java:98)
              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:225)
              at com.opensymphony.webwork.dispatcher.FilterDispatcher.doFilter(FilterDispatcher.java:202)
              at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
              at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
              at com.opensymphony.module.sitemesh.filter.PageFilter.parsePage(PageFilter.java:118)
              at com.opensymphony.module.sitemesh.filter.PageFilter.doFilter(PageFilter.java:52)
              at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
              at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
              at com.opensymphony.webwork.dispatcher.ActionContextCleanUp.doFilter(ActionContextCleanUp.java:88)
              at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
              at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
              at com.atlassian.crowd.integration.http.VerifyTokenFilter.doFilter(VerifyTokenFilter.java:131)
              at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
              at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
              at org.springframework.orm.hibernate3.support.OpenSessionInViewFilter.doFilterInternal(OpenSessionInViewFilter.java:174)
              at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:77)
              at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
              at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
              at com.atlassian.core.filters.gzip.GzipFilter.doFilter(GzipFilter.java:53)
              at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
              at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
              at com.atlassian.core.filters.AbstractEncodingFilter.doFilter(AbstractEncodingFilter.java:37)
              at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
              at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
              at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
              at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:178)
              at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126)
              at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)
              at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:107)
              at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148)
              at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:869)
              at org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:664)
              at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:527)
              at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:80)
              at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684)
              at java.lang.Thread.run(Thread.java:595)
      

      Attachments

        Issue Links

          Activity

            People

              justen.stepka@atlassian.com Justen Stepka [Atlassian]
              865f90db8294 Lars Preben Sørsdahl
              Votes:
              1 Vote for this issue
              Watchers:
              2 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: