"
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.
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.
Troubleshooting
- 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 Tomcatconf/
directory. - Navigate to Welcome page, then select an application, in order to trigger the error.
- 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
"