HTML Macros Fail after Upgrading to 3.4 or Later Due to External URL References to Local Resources

Still need help?

The Atlassian Community is here for you.

Symptoms

After upgrading Confluence from previous versions to 3.4 or above, javascript includes and HTML macros that reference external mechanisms fail.

Example codes:


{html}
{html}


or


{html}
<applet
width=300
height=600
archive="xxxx.jar,
code="com.atlassian.someclass.class"
.....
</applet>
{html}


Cause

This is caused by Tomcat not allowing 'include' script and applet URL references to prevent possible ﻿XSRF and session hijacking. External source references will be cause tomcat to redirect the request to the login page. This will cause a failure to load the URL specified in the src parameter.

Workaround

Create a dedicated Apache HTTP server or new context within Tomcat (separate from Confluence), and use these to host the external javascript files or class jar files.

Resolution

Edit the Tomcat server.xml file. Under the context attribute, remove the words:


useHttpOnly="true"


﻿﻿

Before removing this, please consider there are security implications as per this Tomcat bug report.