"

In some cases, navigating to an application will result in a continuous ""Loading"" loop, instead of properly loading the selected application and associated artifacts. This scenario typically occurs when HTTPS/SSL is enabled and, after logging in, a user attempt to change context from the Welcome page to an xDM Data Application. Users may observe that by manually changing the URL from a HTTPS (secure) prefix header to HTTP, the application will load as expected.

Image 1. Continuous ""Loading"" Error on Application Using HTTPS

Root Cause Analysis

This issue results from a mismatch between the headers expected by the Tomcat web server, and the headers actually received. The expected headers are

  • X-Forwarded-Host
  • X-Forwarded-Proto
  • X-Forwarded-Port

The scenario most commonly occurs when using a load balancer, and HTTPS traffic is being forwarded as HTTP.

Image 2. Secure Traffic headers forwarded as HTTP.

Troubleshooting

  1. Add logging to Tomcat in order to capture header information being received. Logging is added by modifying the pattern of AccessLogValve section in the Server.xml file located in Tomcat conf/ directory.
  2. Navigate to Welcome page, then select an application, in order to trigger the error.
  3. Review Tomcat log file named ""localhost-access-log.xxx where ""xxx"" represents the current date.
<Valve className=""org.apache.catalina.valves.AccessLogValve""
 directory=""logs""
 prefix=""localhost_access_log""
 suffix="".txt""
 pattern=""%h %l %u %t ""%r"" %s %b %{X-Forwarded-Host}i %{X-Forwarded-Port}i %{X-Forwarded-Proto}i""/>

Resolution

Using the troubleshooting steps above, verify that all components are properly processing X-forwarded headers. In the scenario provided, the resolution was to reconfigure the proxy server, so that it was able to properly process the X-forwarded headers being sent from the load balancer. As an alternative, Semarchy xDM can also be re-configured to use a rewrite rule to pass all traffic as HTTPS.

References

Configure rewrite rules

Configuring Apache proxy

"