JBoss EAP is returning "WFLYCTL0085: Failed to parse configuration"

Solution Verified - Updated -

Environment

  • JBoss Enterprise Application Platform (EAP)
    • 7.0
    • 7.1
    • 7.2
    • 7.3
    • 7.4

Issue

  • How to include special characters such as '&' and '<' in ldap outbound connections in configuration file host.xml?
  • Trying to use single and double quotes, it doesn't work. So what should I do in order to fix it?

Resolution

If you want to use these two characters in search-credential, you must replace them with the following ones:

  • & --> & amp;
  • < --> & lt;

For example: (using '&')

    <outbound-connections>
       <ldap name="ldap_connection" url="ldaps://X.X.X.X:389" search-dn="test@redhat.com" search-credential="P@$$w0r&amp;d"/>
    </outbound-connections>

For example: (using '<')

    <outbound-connections>
       <ldap name="ldap_connection" url="ldaps://X.X.X.X:389" search-dn="test@redhat.com" search-credential="P@$$w0r&lt;d"/>
    </outbound-connections>

Root Cause

Adding a search-credential with special characters like '&' and/or '<' in ldap outbound connections in configuration file host.xml as followed:

    <outbound-connections>
       <ldap name="ldap_connection" url="ldaps://X.X.X.X:389" search-dn="test@redhat.com" search-credential="<P@$$w0r&d"/>
    </outbound-connections>

it doesn't work and JBoss EAP doesn't start properly.

Diagnostic Steps

  1. Add a search-credential with the special characters '&' and/or '<' in ldap outbound connections in configuration file host.xml.

  2. Start the domain controller using ${JBOSS_HOME}/bin/domain.sh.

  3. Check the log file ${JBOSS_HOME}/domain/log/host-controller.log and see this kind of error:

[Host Controller] 10:06:46,296 INFO  [org.jboss.modules] (main) JBoss Modules version 1.5.1.Final-redhat-1
[Host Controller] 10:06:46,368 INFO  [org.jboss.msc] (main) JBoss MSC version 1.2.6.Final-redhat-1
[Host Controller] 10:06:46,386 INFO  [org.jboss.as] (MSC service thread 1-7) WFLYSRV0049: JBoss EAP 7.0.0.GA (WildFly Core 2.1.2.Final-redhat-1) starting
[Host Controller] 10:06:46,504 ERROR [org.jboss.as.host.controller] (Controller Boot Thread) WFLYHC0033: Caught exception during boot: org.jboss.as.controller.persistence.ConfigurationPersistenceException: WFLYCTL0085: Failed to parse configuration
[Host Controller]   at org.jboss.as.controller.persistence.XmlConfigurationPersister.load(XmlConfigurationPersister.java:131)
[Host Controller]   at org.jboss.as.host.controller.HostControllerConfigurationPersister.load(HostControllerConfigurationPersister.java:188)
[Host Controller]   at org.jboss.as.host.controller.DomainModelControllerService.boot(DomainModelControllerService.java:585)
[Host Controller]   at org.jboss.as.controller.AbstractControllerService$1.run(AbstractControllerService.java:299)
[Host Controller]   at java.lang.Thread.run(Thread.java:748)
[Host Controller] Caused by: com.ctc.wstx.exc.WstxUnexpectedCharException: Unexpected character ''' (code 39) (expected a name start character)
[Host Controller]  at [row,col {unknown-source}]: [53,132]
[Host Controller]   at com.ctc.wstx.sr.StreamScanner.throwUnexpectedChar(StreamScanner.java:647)
[Host Controller]   at com.ctc.wstx.sr.StreamScanner.parseFullName(StreamScanner.java:1933)
[Host Controller]   at com.ctc.wstx.sr.StreamScanner.parseEntityName(StreamScanner.java:2057)
[Host Controller]   at com.ctc.wstx.sr.StreamScanner.fullyResolveEntity(StreamScanner.java:1525)
[Host Controller]   at com.ctc.wstx.sr.BasicStreamReader.parseAttrValue(BasicStreamReader.java:1938)
[Host Controller]   at com.ctc.wstx.sr.BasicStreamReader.handleNsAttrs(BasicStreamReader.java:3065)
[Host Controller]   at com.ctc.wstx.sr.BasicStreamReader.handleStartElem(BasicStreamReader.java:2963)
[Host Controller]   at com.ctc.wstx.sr.BasicStreamReader.nextFromTree(BasicStreamReader.java:2839)
[Host Controller]   at com.ctc.wstx.sr.BasicStreamReader.next(BasicStreamReader.java:1073)
[Host Controller]   at com.ctc.wstx.sr.BasicStreamReader.nextTag(BasicStreamReader.java:1154)
[Host Controller]   at org.jboss.staxmapper.XMLExtendedStreamReaderImpl.nextTag(XMLExtendedStreamReaderImpl.java:152)
[Host Controller]   at org.jboss.as.domain.management.parsing.ManagementXml_4.parseOutboundConnections(ManagementXml_4.java:260)
[Host Controller]   at org.jboss.as.domain.management.parsing.ManagementXml_4.parseManagement(ManagementXml_4.java:186)
[Host Controller]   at org.jboss.as.host.controller.parsing.HostXml_4.readHostElement(HostXml_4.java:369)
[Host Controller]   at org.jboss.as.host.controller.parsing.HostXml_4.readElement(HostXml_4.java:170)
[Host Controller]   at org.jboss.as.host.controller.parsing.HostXml.readElement(HostXml.java:79)
[Host Controller]   at org.jboss.as.host.controller.parsing.HostXml.readElement(HostXml.java:50)
[Host Controller]   at org.jboss.staxmapper.XMLMapperImpl.processNested(XMLMapperImpl.java:110)
[Host Controller]   at org.jboss.staxmapper.XMLMapperImpl.parseDocument(XMLMapperImpl.java:69)
[Host Controller]   at org.jboss.as.controller.persistence.XmlConfigurationPersister.load(XmlConfigurationPersister.java:123)
[Host Controller]   ... 4 more
[Host Controller] 
[Host Controller] 10:06:46,504 FATAL [org.jboss.as.host.controller] (Controller Boot Thread) WFLYHC0034: Host Controller boot has failed in an unrecoverable manner; exiting. See previous messages for details.
[Host Controller] 10:06:46,509 INFO  [org.jboss.as] (MSC service thread 1-7) WFLYSRV0050: JBoss EAP 7.0.0.GA (WildFly Core 2.1.2.Final-redhat-1) stopped in 2ms
[Host Controller] 

This solution is part of Red Hat’s fast-track publication program, providing a huge library of solutions that Red Hat engineers have created while supporting our customers. To give you the knowledge you need the instant it becomes available, these articles may be presented in a raw and unedited form.

Comments