2016-07-13 9 views
0

Ich versuche, jQuery AJAX zu verwenden, um dynamische Daten in JIRA zu POST. Die Idee ist, über "rest/api/2/issue /" an die JIRA REST API zu senden.Umgehung von XSRF Tokencheck

Ich glaube, ich habe alle meine jQuery richtig angelegt. Das Problem, über das ich Probleme habe, ist die "XSRF-Token-Prüfung" bei der Ausführung. Jedes Mal, wenn ich versuche, meinen Code auszuführen, wird "XSRF-Token-Überprüfung fehlgeschlagen" vom Server zurückgegeben.

Ich habe über den "X-Atlassian-Token" Header gelesen. Ich habe das als erlaubter Header auf meiner jira Server Config. das heißt ...

'Header immer gesetzt Access-Control-Allow-Header "X-Atlassian-Token, Authorization, Content-Type"'

ich auch den Header auf meinem AJAX-Request gesetzt habe. "X-Atlassian-Token": "no-check"

Kann mir jemand dabei helfen, dass das funktioniert? JIRA-Version getestet mit 6.4.12.

Mein aktueller AJAX-Code ist unten für die Überprüfung.

$.ajax({ 
    url: "https://my-jira-host.com/rest/api/2/issue/", 
    type: "POST", 
    async: false, 
    headers: { 
     "X-Atlassian-Token": "nocheck", 
     "Content-Type": "application/json", 
     "Authorization": "Basic " + btoa("<username>:<password>") 
    }, 
    crossDomain: true, 
    dataType: "json", 
    data: JSON.stringify({"fields":{"project":{"key":"CLS"},"priority":{"name":"Minor"},"customfield_17125":{"value":"<Department>"},"customfield_17127":"<HOSTNAME>","customfield_17126":{"value":"<Object>"},"issuetype":{"name":"<issue-type>"},"customfield_17128":"dsfgfdsg","summary":"Department | HOSTNAME | Object","description":"sdfgfdg"}}), 
    success: function(XMLHttpRequest, textStatus, errorThrown) { 
     console.log("POST was a success!"); 
     console.log("HTTP Error Message: " + XMLHttpRequest.responseText); 
     console.log("HTTP Status: " + XMLHttpRequest.status); 
    }, 
    error: function(XMLHttpRequest, textStatus, errorThrown) { 
     console.log("POST was a failure!"); 
     console.log("HTTP Error Message: " + XMLHttpRequest.responseText); 
     console.log("HTTP Status: " + XMLHttpRequest.status); 
    } 
    }); 

Ich sollte auch erwähnen, dass dieser Code von Client-Website gesendet wird ich intern erstellt. Sowohl das Client-Front-End als auch der JIRA-Host befinden sich im selben internen Netzwerk.

Antwort

0

XSRF (Cross Site Request Forgery) ist eine Sicherheitsfunktion, die von Jira verwendet wird, um Benutzer daran zu hindern, schädliche Daten zu übermitteln.

Wenn Sie Firefox oder Chrome verwenden, müssen Sie möglicherweise die User-Agent mit einem Dummy-Wert wie folgt einzustellen:

headers: { 
    "X-Atlassian-Token": "nocheck", 
    "Content-Type": "application/json", 
    "Authorization": "Basic " + btoa("<username>:<password>"), 
    "User-Agent": "xx" 
},