Aktivieren Sie CORS in JIRA REST API

8

Ich rufe die JIRA REST API von JavaScript in einem Confluence User Macro an und stehe vor CORS Problemen, weil JIRA und Confluence auf zwei verschiedenen Domains und Preflight-Anforderung vom Browser schlägt fehl. Ich habe mehrere CORS-Lösungen wie unten beschrieben ausprobiert, ohne Erfolg. Also bitte ich um etwas Input von anderen, die wahrscheinlich dieses Problem gelöst haben.

JavaScript-Snippet, das fehlschlägt :

%Vor%

Fehlermeldung (von Firefox):

%Vor%

JIRA-Konfiguration

  • JIRA Version: 6.4.12
  • URL: Ссылка
  • Apache im Vordergrund ausführen (Proxy): Ja
    • Konfiguration der Antwortheader:
      • Access-Control-Allow-Headers:origin, content-type, accept
      • Access-Control-Allow-Methods:POST, GET, OPTIONS
      • Access-Control-Allow-Origin:*
  • Confluence wurde zur Whitelist hinzugefügt: Ja
    • Ausdruck: Confluence ( Ссылка )
    • Geben Sie den Anwendungslink
    • ein
    • Eingehende zulassen: Wahr

Confluence-Konfiguration

  • Confluence Version: 5.8.8
  • URL: Ссылка
  • Apache im Vordergrund ausführen (Proxy): Ja
    • Konfiguration der Antwortheader:
      • Access-Control-Allow-Origin:*
  • JIRA wurde zur Whitelist hinzugefügt: Ja
    • Ausdruck: Confluence ( Ссылка )
    • Geben Sie den Anwendungslink
    • ein
    • Eingehende zulassen: Wahr

Getestet mit Browsern:

  • Chrome (aktuell)
  • Safari (spätestens)
  • Firefox (neueste)

Testen der Preflight-Anfrage (OPTIONS) mit CURL:

%Vor%

Dies scheint eine positive Antwort zu sein.

Testen der Preflight-Anfrage (OPTIONEN) mit Crome extention Postbote :

%Vor%

Antwortfehler: Could not get any response. This seems to be like an error connecting to http://jira.mydomain.com/rest/api/latest/search/?issue%20in%20linkedIssues(SR-45)

    
Ismar Slomic 16.11.2015, 19:20
quelle

1 Antwort

2

Etwas spät, um das zu beantworten, aber ich werde es hier als Referenz lassen.

In meinem Makro habe ich dieses Problem anders herum gelöst. Anstatt eine direkte Anfrage an den JIRA-Server zu senden, verwendete ich eine API, die vom Confluence-Server bereitgestellt wurde, um meine JIRA-Anforderung an die verknüpfte JIRA-Instanz zu übertragen.

Ich habe diesen Endpunkt in einer anderen Antwort beschrieben. Mit dieser Methode brechen Sie die Cross-Origin-Richtlinie nicht. In der Tat sind das JIRA-Probleme und JIRA-Diagramm Makros verwenden, um ihre Widgets zu rendern.

Bei diesem Ansatz müssen JIRA- und Confluence-Instanzen über einen Anwendungslink verbunden sein. Aber ich nehme an, dass Sie Administratorzugriff auf JIRA und Confluence haben, während Sie untersuchen, wie Sie die Ursprungsrichtlinien ändern, damit es für Sie kein Blocker sein sollte.

    
jannis 11.01.2016 14:11
quelle

Tags und Links