Displaying linked Jira issue to an restricted epic will cause permissions error in Confluence JIM if in display options Epic Name is used.

XMLWordPrintable

    • 7.05
    • 1
    • Severity 3 - Minor

      Summary

      Displaying Jira issue that is linked to restricted epic will cause permitions issue in Confluence Jira issue macro if in display option "Epic Name" is used.

      Environment

      • Confluence 6.4.1
      • Jira 7.5.0

      Steps to Reproduce

      • Create application link and user directory link with Confluence and Jira.
      • create two tickets on Jira (TICKET-01, TICKET-02)
      • create an epic on Jira (EPIC-01)
      • assign one of the tickets (TICKET-01) to the epic
      • make sure the user does not have access permissions to the epic
      • go to Confluence, use and configure Jira Issue Macro to filter both tickets
      • make sure that JiraIssuesMacro uses / displays "epic name" field
      • make the user open the Confluence page containing the Jira Issue Macro

      Expected Results

      • Jira Issue Macro is able to handle lack of permissions for EPIC-01
      • no error is presented by the UI
      • no stacktrace is logged in the Confluence application logs
      • TICKET-02 is still listed by the macro alongside with TICKET-01 and with the epic name

      Actual Results

      The below exception is thrown in the atlassian-confluence.log file:

      2018-01-23 11:26:18,658 ERROR [JIM Marshaller:thread-2286] [confluence.extra.jira.JiraIssuesMacro] executeRest ResponseExceptionException
      -- url: /display/space/title | page: 81725357 | traceId: 55bde6fe5ebdbf3a | userName: username | referer: https://confluence/pages/resumedraft.action?draftId=81725360&draftShareId=a49a8c31-40f4-4ddb-acf9-2efe2a0\\ com.atlassian.sal.api.net.ResponseStatusException: Unexpected response received. Status code: 403
      at com.atlassian.applinks.core.auth.ApplicationLinksStringReturningResponseHandler.handle(ApplicationLinksStringReturningResponseHandler.java:16)
      at com.atlassian.applinks.core.auth.ApplicationLinksStringReturningResponseHandler.handle(ApplicationLinksStringReturningResponseHandler.java:13)
      at com.atlassian.applinks.oauth.auth.OAuthApplinksReturningResponseHandler.handle(OAuthApplinksReturningResponseHandler.java:48)
      at com.atlassian.plugins.rest.module.jersey.JerseyRequest$2.handle(JerseyRequest.java:134)
      at com.atlassian.sal.core.net.HttpClientRequest.executeAndReturn(HttpClientRequest.java:104)
      at com.atlassian.plugins.rest.module.jersey.JerseyRequest.executeAndReturn(JerseyRequest.java:131)
      at com.atlassian.applinks.core.auth.ApplicationLinkRequestAdaptor.executeAndReturn(ApplicationLinkRequestAdaptor.java:53)
      at com.atlassian.applinks.oauth.auth.OAuthRequest.executeAndReturn(OAuthRequest.java:84)
      at com.atlassian.applinks.core.auth.AbstractApplicationLinkRequest.execute(AbstractApplicationLinkRequest.java:114)
      at com.atlassian.confluence.extra.jira.JiraIssuesMacro.executeRest(JiraIssuesMacro.java:639)
      at com.atlassian.confluence.extra.jira.JiraIssuesMacro.getEpicInformation(JiraIssuesMacro.java:775)
      at com.atlassian.confluence.extra.jira.JiraIssuesMacro.populateTableEpicData(JiraIssuesMacro.java:695)
      at com.atlassian.confluence.extra.jira.JiraIssuesMacro.populateContextMapForStaticTable(JiraIssuesMacro.java:889)
      at com.atlassian.confluence.extra.jira.JiraIssuesMacro.createContextMapFromParams(JiraIssuesMacro.java:423)
      at com.atlassian.confluence.extra.jira.JiraIssuesMacro.execute(JiraIssuesMacro.java:1141)
      at com.atlassian.confluence.extra.jira.executor.StreamableMacroFutureTask.renderValue(StreamableMacroFutureTask.java:86)
      at com.atlassian.confluence.extra.jira.services.DefaultAsyncJiraIssueBatchService$2.call(DefaultAsyncJiraIssueBatchService.java:212)
      at com.atlassian.confluence.extra.jira.services.DefaultAsyncJiraIssueBatchService$2.call(DefaultAsyncJiraIssueBatchService.java:201)
      at com.atlassian.sal.core.executor.ThreadLocalDelegateCallable.call(ThreadLocalDelegateCallable.java:38)
      at com.atlassian.confluence.impl.vcache.VCacheRequestContextManager.doInRequestContextInternal(VCacheRequestContextManager.java:87)
      at com.atlassian.confluence.impl.vcache.VCacheRequestContextManager.doInRequestContext(VCacheRequestContextManager.java:71)
      at com.atlassian.confluence.vcache.VCacheRequestContextOperations.lambda$withRequestContext$1(VCacheRequestContextOperations.java:59)
      at java.util.concurrent.FutureTask.run(FutureTask.java:266)
      at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
      at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
      at java.lang.Thread.run(Thread.java:748)
      2018-01-23 11:26:18,659 ERROR [JIM Marshaller:thread-2286] [extra.jira.helper.JiraExceptionHelper] throwMacroExecutionException Macro execution exception:
      -- url: /display/space/title | page: 81725357 | traceId: 55bde6fe5ebdbf3a | userName: username | referer: https://confluence/pages/resumedraft.action?draftId=81725360&draftShareId=a49a8c31-40f4-4ddb-acf9-2efe2a0\\ java.lang.IllegalStateException: Not a JSON Object: null
      at com.google.gson.JsonElement.getAsJsonObject(JsonElement.java:90)
      at com.atlassian.confluence.extra.jira.JiraIssuesMacro.parseCustomField(JiraIssuesMacro.java:820)
      at com.atlassian.confluence.extra.jira.JiraIssuesMacro.getEpicInformation(JiraIssuesMacro.java:776)
      at com.atlassian.confluence.extra.jira.JiraIssuesMacro.populateTableEpicData(JiraIssuesMacro.java:695)
      at com.atlassian.confluence.extra.jira.JiraIssuesMacro.populateContextMapForStaticTable(JiraIssuesMacro.java:889)
      at com.atlassian.confluence.extra.jira.JiraIssuesMacro.createContextMapFromParams(JiraIssuesMacro.java:423)
      at com.atlassian.confluence.extra.jira.JiraIssuesMacro.execute(JiraIssuesMacro.java:1141)
      at com.atlassian.confluence.extra.jira.executor.StreamableMacroFutureTask.renderValue(StreamableMacroFutureTask.java:86)
      at com.atlassian.confluence.extra.jira.services.DefaultAsyncJiraIssueBatchService$2.call(DefaultAsyncJiraIssueBatchService.java:212)
      at com.atlassian.confluence.extra.jira.services.DefaultAsyncJiraIssueBatchService$2.call(DefaultAsyncJiraIssueBatchService.java:201)
      at com.atlassian.sal.core.executor.ThreadLocalDelegateCallable.call(ThreadLocalDelegateCallable.java:38)
      at com.atlassian.confluence.impl.vcache.VCacheRequestContextManager.doInRequestContextInternal(VCacheRequestContextManager.java:87)
      at com.atlassian.confluence.impl.vcache.VCacheRequestContextManager.doInRequestContext(VCacheRequestContextManager.java:71)
      at com.atlassian.confluence.vcache.VCacheRequestContextOperations.lambda$withRequestContext$1(VCacheRequestContextOperations.java:59)
      at java.util.concurrent.FutureTask.run(FutureTask.java:266)
      at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
      at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
      at java.lang.Thread.run(Thread.java:748)
      

      Notes

      Issue is not present in Jira 7.5.3

      Workaround

      Upgrade to latest version of Jira or 7.5.3

            Assignee:
            Unassigned
            Reporter:
            g (Inactive)
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

              Created:
              Updated:
              Resolved: