Uploaded image for project: 'Confluence Data Center'
  1. Confluence Data Center
  2. CONFSERVER-25961

NPE when defining LDAP directory and having wrong password

    XMLWordPrintable

Details

    Description

      Problem

      I tried to add a user directory (OpenLDAP). Everything works fine with the correct credentials. But with the wrong authentication password (Server Settings --> Password) I get a System Error caused by a NPE.

      Symptoms

      When testing the LDAP connection with invalid credentials, instead of friendly error message in the web browser indicating that the password was incorrect, a "System Error" page is displayed. This happens when the password is incorrect, the user dn is incorrect, or both are incorrect. The log file will contain an error and trace like the below:

      2012-04-17 16:52:57,954 ERROR [ajp-127.0.0.1-16009-8] [atlassian.plugin.servlet.ServletModuleContainerServlet] service Method invocation failed during rendering of Velocity view with name 'configure-ldap-form': Invocation of method 'getText' in  class $Proxy452 threw exception java.lang.NullPointerException at /templates/configure-ldap-form.vm[line 45, column 30]; reference [i18n], method 'getText'; nested exception is java.lang.NullPointerException
       -- url: /confluence/plugins/servlet/embedded-crowd/configure/ldap/ | userName: admin | referer: http://confluence_generic_420.communardo.local/confluence/plugins/servlet/embedded-crowd/configure/ldap/?xsrfTokenName=atl_token&xsrfTokenValue=c025d28eb4346f6cc286a2bd2723cf34d917a8d3
      org.springframework.web.util.NestedServletException: Method invocation failed during rendering of Velocity view with name 'configure-ldap-form': Invocation of method 'getText' in  class $Proxy452 threw exception java.lang.NullPointerException at /templates/configure-ldap-form.vm[line 45, column 30]; reference [i18n], method 'getText'; nested exception is java.lang.NullPointerException
              at org.springframework.web.servlet.view.velocity.VelocityView.mergeTemplate(VelocityView.java:556)
              at org.springframework.web.servlet.view.velocity.VelocityView.doRender(VelocityView.java:498)
              at org.springframework.web.servlet.view.velocity.VelocityView.renderMergedTemplateModel(VelocityView.java:320)
              at org.springframework.web.servlet.view.AbstractTemplateView.renderMergedOutputModel(AbstractTemplateView.java:174)
              at org.springframework.web.servlet.view.AbstractView.render(AbstractView.java:257)
              at org.springframework.web.servlet.DispatcherServlet.render(DispatcherServlet.java:1183)
              at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:902)
              at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:807)
              at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:571)
              at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:511)
              at javax.servlet.http.HttpServlet.service(Unknown Source)
              at javax.servlet.http.HttpServlet.service(Unknown Source)
              at com.atlassian.plugin.servlet.DelegatingPluginServlet.service(DelegatingPluginServlet.java:42)
              at javax.servlet.http.HttpServlet.service(Unknown Source)
              at com.atlassian.plugin.servlet.ServletModuleContainerServlet.service(ServletModuleContainerServlet.java:52)
              at javax.servlet.http.HttpServlet.service(Unknown Source)
              at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Unknown Source)
              at org.apache.catalina.core.ApplicationFilterChain.doFilter(Unknown Source)
              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.ServletFilterModuleContainerFilter.doFilter(ServletFilterModuleContainerFilter.java:77)
              at com.atlassian.plugin.servlet.filter.ServletFilterModuleContainerFilter.doFilter(ServletFilterModuleContainerFilter.java:63)
              at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Unknown Source)
              at org.apache.catalina.core.ApplicationFilterChain.doFilter(Unknown Source)
              at com.atlassian.confluence.security.websudo.MessagesDecoratorFilter.doFilter(MessagesDecoratorFilter.java:59)
              at com.atlassian.core.filters.AbstractHttpFilter.doFilter(AbstractHttpFilter.java:31)
              at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Unknown Source)
              at org.apache.catalina.core.ApplicationFilterChain.doFilter(Unknown Source)
              at com.opensymphony.sitemesh.webapp.SiteMeshFilter.obtainContent(SiteMeshFilter.java:129)
              at com.opensymphony.sitemesh.webapp.SiteMeshFilter.doFilter(SiteMeshFilter.java:77)
              at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Unknown Source)
              at org.apache.catalina.core.ApplicationFilterChain.doFilter(Unknown Source)
              at com.atlassian.plugin.servlet.filter.IteratingFilterChain.doFilter(IteratingFilterChain.java:46)
              at com.atlassian.plugin.servlet.filter.ServletFilterModuleContainerFilter.doFilter(ServletFilterModuleContainerFilter.java:77)
              at com.atlassian.plugin.servlet.filter.ServletFilterModuleContainerFilter.doFilter(ServletFilterModuleContainerFilter.java:63)
              at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Unknown Source)
              at org.apache.catalina.core.ApplicationFilterChain.doFilter(Unknown Source)
              at com.atlassian.confluence.util.LoggingContextFilter.doFilter(LoggingContextFilter.java:40)
              at com.atlassian.core.filters.AbstractHttpFilter.doFilter(AbstractHttpFilter.java:31)
              at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Unknown Source)
              at org.apache.catalina.core.ApplicationFilterChain.doFilter(Unknown Source)
              at com.atlassian.seraph.filter.SecurityFilter.doFilter(SecurityFilter.java:211)
              at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Unknown Source)
              at org.apache.catalina.core.ApplicationFilterChain.doFilter(Unknown Source)
              at com.atlassian.security.auth.trustedapps.filter.TrustedApplicationsFilter.doFilter(TrustedApplicationsFilter.java:98)
              at com.atlassian.confluence.util.AbstractBootstrapHotSwappingFilter.doFilter(AbstractBootstrapHotSwappingFilter.java:30)
              at com.atlassian.core.filters.AbstractHttpFilter.doFilter(AbstractHttpFilter.java:31)
              at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Unknown Source)
              at org.apache.catalina.core.ApplicationFilterChain.doFilter(Unknown Source)
              at com.atlassian.seraph.filter.BaseLoginFilter.doFilter(BaseLoginFilter.java:150)
              at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Unknown Source)
              at org.apache.catalina.core.ApplicationFilterChain.doFilter(Unknown Source)
              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:71)
              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.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Unknown Source)
              at org.apache.catalina.core.ApplicationFilterChain.doFilter(Unknown Source)
              at com.atlassian.confluence.util.ClusterHeaderFilter.doFilter(ClusterHeaderFilter.java:37)
              at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Unknown Source)
              at org.apache.catalina.core.ApplicationFilterChain.doFilter(Unknown Source)
              at com.atlassian.johnson.filters.AbstractJohnsonFilter.doFilter(AbstractJohnsonFilter.java:72)
              at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Unknown Source)
              at org.apache.catalina.core.ApplicationFilterChain.doFilter(Unknown Source)
              at org.springframework.orm.hibernate.support.OpenSessionInViewFilter.doFilterInternal(OpenSessionInViewFilter.java:170)
              at com.atlassian.spring.filter.FlushingSpringSessionInViewFilter.doFilterInternal(FlushingSpringSessionInViewFilter.java:29)
              at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76)
              at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Unknown Source)
              at org.apache.catalina.core.ApplicationFilterChain.doFilter(Unknown Source)
              at com.atlassian.confluence.util.ConfluenceErrorFilter.doFilter(ConfluenceErrorFilter.java:22)
              at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Unknown Source)
              at org.apache.catalina.core.ApplicationFilterChain.doFilter(Unknown Source)
              at com.atlassian.util.profiling.filters.ProfilingFilter.doFilter(ProfilingFilter.java:99)
              at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Unknown Source)
              at org.apache.catalina.core.ApplicationFilterChain.doFilter(Unknown Source)
              at com.atlassian.confluence.core.datetime.RequestTimeThreadLocalFilter.doFilter(RequestTimeThreadLocalFilter.java:35)
              at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Unknown Source)
              at org.apache.catalina.core.ApplicationFilterChain.doFilter(Unknown Source)
              at com.atlassian.gzipfilter.GzipFilter.doFilterInternal(GzipFilter.java:80)
              at com.atlassian.gzipfilter.GzipFilter.doFilter(GzipFilter.java:51)
              at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Unknown Source)
              at org.apache.catalina.core.ApplicationFilterChain.doFilter(Unknown Source)
              at com.atlassian.core.filters.cache.AbstractCachingFilter.doFilter(AbstractCachingFilter.java:33)
              at com.atlassian.core.filters.AbstractHttpFilter.doFilter(AbstractHttpFilter.java:31)
              at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Unknown Source)
              at org.apache.catalina.core.ApplicationFilterChain.doFilter(Unknown Source)
              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.confluence.extra.webdav.servlet.filter.AbstractHttpFilter.doFilter(AbstractHttpFilter.java:43)
              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.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Unknown Source)
              at org.apache.catalina.core.ApplicationFilterChain.doFilter(Unknown Source)
              at com.atlassian.confluence.web.filter.validateparam.RequestParamValidationFilter.doFilter(RequestParamValidationFilter.java:58)
              at com.atlassian.core.filters.AbstractHttpFilter.doFilter(AbstractHttpFilter.java:31)
              at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Unknown Source)
              at org.apache.catalina.core.ApplicationFilterChain.doFilter(Unknown Source)
              at com.atlassian.confluence.web.filter.TranslationModeFilter.doFilter(TranslationModeFilter.java:43)
              at com.atlassian.core.filters.AbstractHttpFilter.doFilter(AbstractHttpFilter.java:31)
              at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Unknown Source)
              at org.apache.catalina.core.ApplicationFilterChain.doFilter(Unknown Source)
              at com.atlassian.confluence.plugin.servlet.filter.ActionContextCleanUp.doFilter(ActionContextCleanUp.java:71)
              at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Unknown Source)
              at org.apache.catalina.core.ApplicationFilterChain.doFilter(Unknown Source)
              at com.atlassian.confluence.web.filter.LanguageExtractionFilter.doFilter(LanguageExtractionFilter.java:54)
              at com.atlassian.core.filters.AbstractHttpFilter.doFilter(AbstractHttpFilter.java:31)
              at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Unknown Source)
              at org.apache.catalina.core.ApplicationFilterChain.doFilter(Unknown Source)
              at com.atlassian.confluence.util.RequestCacheThreadLocalFilter.doFilter(RequestCacheThreadLocalFilter.java:25)
              at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Unknown Source)
              at org.apache.catalina.core.ApplicationFilterChain.doFilter(Unknown Source)
              at com.atlassian.core.filters.encoding.AbstractEncodingFilter.doFilter(AbstractEncodingFilter.java:41)
              at com.atlassian.core.filters.AbstractHttpFilter.doFilter(AbstractHttpFilter.java:31)
              at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Unknown Source)
              at org.apache.catalina.core.ApplicationFilterChain.doFilter(Unknown Source)
              at com.atlassian.core.filters.HeaderSanitisingFilter.doFilter(HeaderSanitisingFilter.java:44)
              at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Unknown Source)
              at org.apache.catalina.core.ApplicationFilterChain.doFilter(Unknown Source)
              at com.atlassian.confluence.servlet.FourOhFourErrorLoggingFilter.doFilter(FourOhFourErrorLoggingFilter.java:65)
              at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Unknown Source)
              at org.apache.catalina.core.ApplicationFilterChain.doFilter(Unknown Source)
              at org.apache.catalina.core.StandardWrapperValve.invoke(Unknown Source)
              at org.apache.catalina.core.StandardContextValve.invoke(Unknown Source)
              at org.apache.catalina.core.StandardHostValve.invoke(Unknown Source)
              at org.apache.catalina.valves.ErrorReportValve.invoke(Unknown Source)
              at org.apache.catalina.core.StandardEngineValve.invoke(Unknown Source)
              at org.apache.catalina.connector.CoyoteAdapter.service(Unknown Source)
              at org.apache.coyote.ajp.AjpAprProcessor.process(Unknown Source)
              at org.apache.coyote.ajp.AjpAprProtocol$AjpConnectionHandler.process(Unknown Source)
              at org.apache.tomcat.util.net.AprEndpoint$Worker.run(Unknown Source)
              at java.lang.Thread.run(Thread.java:662)
      Caused by: java.lang.NullPointerException
              at com.atlassian.sal.core.message.AbstractI18nResolver.getText(AbstractI18nResolver.java:20)
              at sun.reflect.GeneratedMethodAccessor337.invoke(Unknown Source)
              at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
              at java.lang.reflect.Method.invoke(Method.java:597)
              at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:307)
              at org.springframework.osgi.service.importer.support.internal.aop.ServiceInvoker.doInvoke(ServiceInvoker.java:58)
              at org.springframework.osgi.service.importer.support.internal.aop.ServiceInvoker.invoke(ServiceInvoker.java:62)
              at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:171)
              at org.springframework.aop.support.DelegatingIntroductionInterceptor.doProceed(DelegatingIntroductionInterceptor.java:131)
              at org.springframework.aop.support.DelegatingIntroductionInterceptor.invoke(DelegatingIntroductionInterceptor.java:119)
              at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:171)
              at org.springframework.osgi.service.util.internal.aop.ServiceTCCLInterceptor.invokeUnprivileged(ServiceTCCLInterceptor.java:56)
              at org.springframework.osgi.service.util.internal.aop.ServiceTCCLInterceptor.invoke(ServiceTCCLInterceptor.java:39)
              at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:171)
              at org.springframework.osgi.service.importer.support.LocalBundleContextAdvice.invoke(LocalBundleContextAdvice.java:59)
              at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:171)
              at org.springframework.aop.support.DelegatingIntroductionInterceptor.doProceed(DelegatingIntroductionInterceptor.java:131)
              at org.springframework.aop.support.DelegatingIntroductionInterceptor.invoke(DelegatingIntroductionInterceptor.java:119)
              at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:171)
              at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:204)
              at $Proxy452.getText(Unknown Source)
              at sun.reflect.GeneratedMethodAccessor2351.invoke(Unknown Source)
              at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
              at java.lang.reflect.Method.invoke(Method.java:597)
              at org.apache.velocity.util.introspection.UberspectImpl$VelMethodImpl.doInvoke(UberspectImpl.java:389)
              at org.apache.velocity.util.introspection.UberspectImpl$VelMethodImpl.invoke(UberspectImpl.java:378)
              at org.apache.velocity.runtime.parser.node.ASTMethod.execute(ASTMethod.java:270)
              at org.apache.velocity.runtime.parser.node.ASTReference.execute(ASTReference.java:262)
              at org.apache.velocity.runtime.parser.node.ASTReference.render(ASTReference.java:342)
              at org.apache.velocity.runtime.parser.node.ASTBlock.render(ASTBlock.java:72)
              at org.apache.velocity.runtime.parser.node.ASTIfStatement.render(ASTIfStatement.java:87)
              at org.apache.velocity.runtime.parser.node.ASTBlock.render(ASTBlock.java:72)
              at org.apache.velocity.runtime.directive.Foreach.performIteration(Foreach.java:393)
              at org.apache.velocity.runtime.directive.Foreach.render(Foreach.java:316)
              at org.apache.velocity.runtime.parser.node.ASTDirective.render(ASTDirective.java:175)
              at org.apache.velocity.runtime.parser.node.SimpleNode.render(SimpleNode.java:336)
              at org.apache.velocity.Template.merge(Template.java:328)
              at org.apache.velocity.Template.merge(Template.java:235)
              at org.springframework.web.servlet.view.velocity.VelocityView.mergeTemplate(VelocityView.java:553)
              ... 138 more
      

      Steps to Reproduce

      1. Create a new LDAP user directory in Confluence Admin
      2. Fill in the connection details, but put in an invalid password
      3. Click "Quick Test" or "Save and Test"

      Workaround

      Use the correct credentials.

      Attachments

        Issue Links

          Activity

            People

              Unassigned Unassigned
              50d5a3376884 NielsJ
              Votes:
              3 Vote for this issue
              Watchers:
              3 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: