Uploaded image for project: 'Jira Data Center'
  1. Jira Data Center
  2. JRASERVER-66671

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

XMLWordPrintable

      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

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

                Created:
                Updated:
                Resolved: