Connection to Crowd Fails due to URI-Reference required
Platform Notice: Data Center Only - This article only applies to Atlassian products on the Data Center platform.
Note that this KB was created for the Data Center version of the product. Data Center KBs for non-Data-Center-specific features may also work for Server versions of the product, however they have not been tested. Support for Server* products ended on February 15th 2024. If you are running a Server product, you can visit the Atlassian Server end of support announcement to review your migration options.
*Except Fisheye and Crucible
Summary
Symptoms
Crowd users are unable to authenticate.
Adding users to Crowd directory fails.
Synchronisation fails.
The following appears in the atlassian-jira.log
:
1
2
3
4
Caused by: java.lang.IllegalArgumentException: org.apache.commons.httpclient.URIException: URI-Reference required
at com.atlassian.crowd.integration.rest.service.RestExecutor.<init>(RestExecutor.java:69)
at com.atlassian.crowd.integration.rest.service.RestCrowdClient.<init>(RestCrowdClient.java:46)
at com.atlassian.crowd.integration.rest.service.factory.RestCrowdClientFactory.newInstance(RestCrowdClientFactory.java:26)
Diagnosis
Ensure that the OS user that start-up JIRA has the necessary permission to read JIRA's
crowd.properties
.Ensure that the
atlassian-jira/WEB-INF/classes/crowd.properties
file is complete and contain valid entries, as in The crowd.properties file documentation.Run the following SQL:
1
SELECT d.directory_name, a.* FROM cwd_directory d JOIN cwd_directory_attribute a on d.id=a.directory_id WHERE d.directory_type='CROWD';
It should return the following records. If it does not, please see the resolution section below.
1 2 3 4 5 6 7 8 9
directory_name | directory_id | attribute_name | attribute_value ----------------+--------------+---------------------------------------------------------+-------------------------- Crowd Server2 | 10100 | com.atlassian.crowd.directory.sync.lastdurationms | 65 Crowd Server2 | 10100 | com.atlassian.crowd.directory.sync.laststartsynctime | 1313453356673 Crowd Server2 | 10100 | com.atlassian.crowd.directory.sync.currentstartsynctime | Crowd Server2 | 10100 | useNestedGroups | true Crowd Server2 | 10100 | application.name | jiraci Crowd Server2 | 10100 | application.password | admin Crowd Server2 | 10100 | crowd.server.url | http://derpydoo:6095/crowd
Cause
Some of the possible causes are:
The server hosting Crowd has changed.
An old
crowd.properties
file was used during the upgrade.There were recent network configuration changes.
JIRA's
crowd.properties
is not accessible by JIRA user
Solution
Resolution
Recommended:
Ensure that JIRA user has full permission to its
crowd.properties
Disable the Crowd Authenticator SSO, as in our Configure JIRA to use Crowd's Authenticator to enable SSO.
Log into JIRA using a Local Administrator user in the JIRA Internal Directory.
Recreate the connection as described in our Connecting to Crowd or Another JIRA Server for User Management documentation.
If you do not have internal admin access to JIRA, try the following:
Always back up your data before making any database modifications. If possible, test any alter, insert, update, or delete SQL commands on a staging server first.
Copy the below SQL into a text editor.
1 2 3 4 5 6
INSERT INTO cwd_directory_attribute values (10101,'application.name','jira'); INSERT INTO cwd_directory_attribute values (10101,'application.password','jirapass'); INSERT INTO cwd_directory_attribute values (10101,'crowd.server.url',' http://172.27.1.21:8095/crowd/services'); INSERT INTO cwd_directory_attribute values (10101,'crowd.sync.incremental.enabled','false'); INSERT INTO cwd_directory_attribute values (10101,'directory.cache.synchronise.interval',3600); INSERT INTO cwd_directory_attribute values (10101,'useNestedGroups','false');
Replace the id 10101 with the id returned in the SQL from the diagnosis section.
Replace the server URL, application name and password appropriately. If you're unsure what values they should be, recreate the links using the first resolution or raise a ticket on support.atlassian.com.
Back up the database.
Execute the SQL update.
Was this helpful?