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

Misleading catch-all "Invalid login" message when Crowd is misconfigured

    XMLWordPrintable

Details

    • Bug
    • Resolution: Fixed
    • Medium
    • 2.6.3
    • 1.2.2
    • User Console
    • None

    Description

      I have an apparently-misconfigured Crowd, where a login attempt generates this in the logs:

       19:25:07,247  INFO atlassian.crowd.manager.application.ApplicationManagerGeneric: Invalid application password authentication: crowd
       19:25:07,250  INFO atlassian.crowd.console.action.BaseAction: Invalid application client. The application.name or application.password in your <CROWD DIRECTORY>/crowd-webapp/WEB-INF/classes/crowd.properties file does not match the Crowd database.  For more information please visit http://confluence.atlassian.com/x/FwDHBQ.
       com.atlassian.crowd.integration.exception.InvalidAuthorizationTokenException: Invalid application client. The application.name or application.password in your <CROWD DIRECTORY>/crowd-webapp/WEB-INF/classes/crowd.properties file does not match the Crowd database.  For more information please visit http://confluence.atlassian.com/x/FwDHBQ.
         at com.atlassian.crowd.integration.service.soap.client.GenericClient.authenticate(GenericClient.java:248)
         at com.atlassian.crowd.integration.service.soap.client.SecurityServerClient.isValidToken(SecurityServerClient.java:63)
         at com.atlassian.crowd.integration.http.HttpAuthenticator.isAuthenticated(HttpAuthenticator.java:230)
         at com.atlassian.crowd.console.action.BaseAction.isAuthenticated(BaseAction.java:104)
         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 ognl.OgnlRuntime.invokeMethod(OgnlRuntime.java:517)
         at ognl.OgnlRuntime.getMethodValue(OgnlRuntime.java:931)
         at ognl.ObjectPropertyAccessor.getPossibleProperty(ObjectPropertyAccessor.java:53)
         at ognl.ObjectPropertyAccessor.getProperty(ObjectPropertyAccessor.java:121)
         at com.opensymphony.xwork.util.OgnlValueStack$ObjectAccessor.getProperty(OgnlValueStack.java:57)
         at ognl.OgnlRuntime.getProperty(OgnlRuntime.java:1643)
         at com.opensymphony.xwork.util.CompoundRootAccessor.getProperty(CompoundRootAccessor.java:102)
         at ognl.OgnlRuntime.getProperty(OgnlRuntime.java:1643)
         at ognl.ASTProperty.getValueBody(ASTProperty.java:92)
         at ognl.SimpleNode.evaluateGetValueBody(SimpleNode.java:170)
         at ognl.SimpleNode.getValue(SimpleNode.java:210) 
         at ognl.ASTEq.getValueBody(ASTEq.java:49)
         at ognl.SimpleNode.evaluateGetValueBody(SimpleNode.java:170)
         at ognl.SimpleNode.getValue(SimpleNode.java:210)
         at ognl.Ognl.getValue(Ognl.java:333)
         at com.opensymphony.xwork.util.OgnlUtil.getValue(OgnlUtil.java:196)
         at com.opensymphony.xwork.util.OgnlValueStack.findValue(OgnlValueStack.java:258)
         at com.opensymphony.webwork.components.Component.findValue(Component.java:305)
         at com.opensymphony.webwork.components.If.start(If.java:67)
         at com.opensymphony.webwork.views.jsp.ComponentTagSupport.doStartTag(ComponentTagSupport.java:34)
         at org.apache.jsp.console.decorator.default_jsp._jspx_meth_ww_005fif_005f1(default_jsp.java:728)
         at org.apache.jsp.console.decorator.default_jsp._jspService(default_jsp.java:210)
         at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:98)
         at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
         at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:328)
         at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:315)
         at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:265)
         at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
         at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:269)
         at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
         at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:691)
         at org.apache.catalina.core.ApplicationDispatcher.doInclude(ApplicationDispatcher.java:594)
         at org.apache.catalina.core.ApplicationDispatcher.include(ApplicationDispatcher.java:505)
         at com.opensymphony.module.sitemesh.filter.PageFilter.applyDecorator(PageFilter.java:156)
         at com.opensymphony.module.sitemesh.filter.PageFilter.doFilter(PageFilter.java:59)
         at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:215)
         at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
         at com.opensymphony.webwork.dispatcher.ActionContextCleanUp.doFilter(ActionContextCleanUp.java:88)
         at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:215)
         at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
         at org.springframework.orm.hibernate3.support.OpenSessionInViewFilter.doFilterInternal(OpenSessionInViewFilter.java:198)
         at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:75)
         at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:215)
         at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
         at com.atlassian.core.filters.gzip.GzipFilter.doFilter(GzipFilter.java:55)
         at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:215)
         at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
         at com.atlassian.core.filters.AbstractEncodingFilter.doFilter(AbstractEncodingFilter.java:33)
         at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:215)
         at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
         at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:210)
         at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:174)
         at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
         at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:117)
         at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:108)
         at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:151)
         at org.apache.jk.server.JkCoyoteHandler.invoke(JkCoyoteHandler.java:200)
         at org.apache.jk.common.HandlerRequest.invoke(HandlerRequest.java:283)
         at org.apache.jk.common.ChannelSocket.invoke(ChannelSocket.java:773)
         at org.apache.jk.common.ChannelSocket.processConnection(ChannelSocket.java:703)
         at org.apache.jk.common.ChannelSocket$SocketConnection.runIt(ChannelSocket.java:895)
         at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:685)
         at java.lang.Thread.run(Thread.java:595)
       Caused by: com.atlassian.crowd.integration.exception.InvalidAuthenticationException: Invalid application client. The application.name or application.password in your <CROWD DIRECTORY>/crowd-webapp/WEB-INF/classes/crowd.properties file does not match the Crowd database.  For more information please visit http://confluence.atlassian.com/x/FwDHBQ.
         at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
         at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
         at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
         at java.lang.reflect.Constructor.newInstance(Constructor.java:494)
         at org.codehaus.xfire.aegis.type.basic.BeanType.createFromFault(BeanType.java:235)
         at org.codehaus.xfire.aegis.type.basic.BeanType.readObject(BeanType.java:105)
         at org.codehaus.xfire.aegis.AegisBindingProvider.readParameter(AegisBindingProvider.java:169)
         at org.codehaus.xfire.client.ClientFaultConverter.processFaultDetail(ClientFaultConverter.java:51)
         at org.codehaus.xfire.client.ClientFaultConverter.invoke(ClientFaultConverter.java:32)
         at org.codehaus.xfire.handler.HandlerPipeline.invoke(HandlerPipeline.java:131)
         at org.codehaus.xfire.client.Client.onReceive(Client.java:424)
         at org.codehaus.xfire.transport.http.HttpChannel.sendViaClient(HttpChannel.java:139)
         at org.codehaus.xfire.transport.http.HttpChannel.send(HttpChannel.java:48)
         at org.codehaus.xfire.handler.OutMessageSender.invoke(OutMessageSender.java:26)
         at org.codehaus.xfire.handler.HandlerPipeline.invoke(HandlerPipeline.java:131)
         at org.codehaus.xfire.client.Invocation.invoke(Invocation.java:79)
         at org.codehaus.xfire.client.Invocation.invoke(Invocation.java:114)
         at org.codehaus.xfire.client.Client.invoke(Client.java:336)
         at org.codehaus.xfire.client.XFireProxy.handleRequest(XFireProxy.java:77)
         at org.codehaus.xfire.client.XFireProxy.invoke(XFireProxy.java:57)
         at $Proxy9.authenticateApplication(Unknown Source)
         at com.atlassian.crowd.integration.service.soap.client.GenericClient.authenticate(GenericClient.java:238)
         ... 70 more
       Caused by: org.codehaus.xfire.fault.XFireFault: Invalid application client. The application.name or application.password in your <CROWD DIRECTORY>/crowd-webapp/WEB-INF/classes/crowd.properties file does not match the Crowd database.  For more information please visit http://confluence.atlassian.com/x/FwDHBQ.
         at org.codehaus.xfire.fault.Soap11FaultSerializer.readMessage(Soap11FaultSerializer.java:31)
         at org.codehaus.xfire.fault.SoapFaultSerializer.readMessage(SoapFaultSerializer.java:28)
         at org.codehaus.xfire.soap.handler.ReadHeadersHandler.checkForFault(ReadHeadersHandler.java:111)
         at org.codehaus.xfire.soap.handler.ReadHeadersHandler.invoke(ReadHeadersHandler.java:67)
         at org.codehaus.xfire.handler.HandlerPipeline.invoke(HandlerPipeline.java:131)
         at org.codehaus.xfire.client.Client.onReceive(Client.java:406)
         ... 81 more
      

      Bug #1: This apparently critical error message should be logged at ERROR or FATAL, not INFO.
      Bug #2: When I try to log in, Crowd returns a generic "Invalid login" message:

      If the problem is due to a misconfiguration, say so! Don't leave the end user thinking they mistyped their password when the server is broken.

      Attachments

        1. invalidlogin.png
          11 kB
          Jeff Turner

        Issue Links

          Activity

            People

              dberrueta Diego Berrueta
              7ee5c68a815f Jeff Turner
              Votes:
              3 Vote for this issue
              Watchers:
              3 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: