Documentation for Crowd 2.5. Documentation for other versions of Crowd is available too.
The Crowd console itself must authenticate to the Crowd framework to perform authentication and authorisation calls.
Like an integrated application, if you have an improper password in the crowd.properties
configuration file, the following exception will be thrown when the application attempts to connect to Crowd SOAP services:
Caused by: com.atlassian.crowd.integration.exception.InvalidAuthenticationException: Invalid application client. 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 $Proxy8.authenticateApplication(Unknown Source) at com.atlassian.crowd.integration.service.soap.client.GenericClient.authenticate(GenericClient.java:263) ... 73 more Caused by: org.codehaus.xfire.fault.XFireFault: Invalid application client. 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) ... 84 more
If the password for the Crowd console is lost, the only method of recovery is to reset the password in the crowd.properties
configuration file to a known application password. To do this you will need to have access to the Crowd database server and run the following commands:
mysql> select id, application_name from cwd_application; +--------+---------------------+ | id | application_name | +--------+---------------------+ | 98305 | crowd | | 98306 | demo | | 98307 | crowd-openid-server | | 655361 | jira | | 753665 | jiveforums | +--------+---------------------+
application_name
to query the database and retrieve X's credentials:mysql> select credential from cwd_application where name = 'jira'; +------------------------------------------------------------------------------------------+ | credential | +------------------------------------------------------------------------------------------+ | sQnzu7wkTrgkQZF+0G1hi5AI3Qmzvv0bXgc5THBqi7mAsdd4Xll27ASbRt9fEyavWi6m0QP9B8lThf+rDKy8hg== | +------------------------------------------------------------------------------------------+
credential
of your application X:mysql> update cwd_application set credential = 'sQnzu7wkTrgkQZF+0G1hi5AI3Qmzvv0bXgc5THBqi7mAsdd4Xll27ASbRt9fEyavWi6m0QP9B8lThf+rDKy8hg==' where application_name = 'crowd'; Query OK, 0 rows affected (0.00 sec) Rows matched: 1 Changed: 0 Warnings: 0
crowd.properties
application.password
value to the value of X's password. If you are using Crowd 1.5 or earlier, the file is located at atlassian-crowd-X.X.X/crowd-webapp/WEB-INF/classes/
. If using 1.5.1 or later, the file will be located inside your Crowd-Home Directory.