Portfolio for Jira Plan macro displays an empty panel with a 'refused to connect' message
Platform notice: Server and Data Center only. This article only applies to Atlassian products on the Server and Data Center platforms.
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
Summary
After inserting a Portfolio for Jira Plan macro in a Confluence page, and configuring it to work with a Portfolio in Jira, it renders a blank page. There's a message saying 'Refused to connect'.
Application links between Confluence and Jira are working fine.
Confluence is in Jira whitelist.
Environment
- Confluence Server 6.15.9
- Jira Software 7.13 with Portfolio for Jira app
- Nginx reverse-proxy set
Diagnosis
When viewing the page with the Portfolio for Jira Plan macro, the following warning messages appear in the application logs: Could not parse Jira server's information: No content to map to Object due to end of input.
2020-03-10 10:13:02,719 WARN [http-nio-8090-exec-2704] [internal.integration.jira.DefaultJiraService] handle Could not parse Jira server's information: No content to map to Object due to end of input
-- referer: https://confluence.domain.com/display/DRA/PageTitle | url: /rest/highlighting/1.0/panel-items | traceId: 9ac52bbc6225dc05 | userName: jira-admin
Cause
The Confluence macro renders the Jira Portfolio within an <iframe> tag.
<div class="iframe-container conf-macro output-block" data-hasbody="false" data-macro-name="portfolio-for-jira-plan">
<iframe src="https://jira.domain.com/secure/PortfolioRoadmapConfluence.jspa?r=xyIic" width="100%" height="700" frameborder="none">
...
</iframe>
</div>
Nginx reverse-proxy is configured with the following option:
add_header X-Frame-Options SAMEORIGIN;
This configuration is used to prevent rendering pages using <frame>, <iframe>, <embed>, or <object>, unless the request comes from the same origin.
Solution
- Remove the configuration that prevents rendering iframe tags from Nginx.
- Restart Nginx