Unable to load atlassian-user configuration - LDAP

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

Symptoms

Bamboo fails to use the configured BAMBOO_HOME/xml-data/configuration/atlassian-user.xml file to connect to LDAP and shows this error:

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 2013-05-23 10:07:59,542 ERROR [main] [ContextLoader] Context initialization failed ... at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:59) at com.atlassian.bamboo.server.Server.main(Server.java:74) Caused by: com.atlassian.user.configuration.ConfigurationException: Unable to load atlassian-user configuration: org.dom4j.DocumentException: Error on line 15 of document : The entity name must immediately follow the '&' in the entity reference. Nested exception: The entity name must immediately follow the '&' in the entity reference. at com.atlassian.user.configuration.xml.XMLConfigurationParser.parse(XMLConfigurationParser.java:93) at com.atlassian.user.configuration.xml.XMLConfiguration.init(XMLConfiguration.java:91) at com.atlassian.crowd.integration.atlassianuser.AbstractDynamicUserConfiguration.loadConfiguration(AbstractDynamicUserConfiguration.java:56) at com.atlassian.crowd.integration.atlassianuser.AbstractDynamicUserConfiguration.<init>(AbstractDynamicUserConfiguration.java:24) at com.atlassian.crowd.integration.atlassianuser.AbstractDynamicUserConfiguration$$EnhancerByCGLIB$$903464da.<init>(<generated>) 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:513) ...

Cause

There is a wrong usage of the ampersand sign (&) in the filter configuration of the atlassian-user.xml file.

Resolution

The ampersand signs in the atlassian-user.xml file should be escaped. If you have anything like this:

1 <userSearchFilter>(&(objectCategory=Person)(sAMAccountName=*))</userSearchFilter>

Please replace that line with this:

1 <userSearchFilter>(&amp;(objectCategory=Person)(sAMAccountName=*))</userSearchFilter>

Note how the ampersand is escaped. For more information about LDAP filters, you can refer to this page.

Updated on April 8, 2025

Still need help?

The Atlassian Community is here for you.