我有一個與JIRA Cloud實例交互的Google App Engine Python應用程序。使用使用urlfetch的JSESSIONID Cookie身份驗證時,JIRA REST API調用失敗
迄今爲止,應用程序使用基本認證調用了JIRA的urlfetch
,但是因爲它現在正在創建許多單獨的REST調用POST和GET我希望使用cookie認證可以稍微減少延遲。
例如基本的身份驗證代碼的工作原理:
result = urlfetch.fetch(jira_url,
deadline=60,
headers={"Authorization": "Basic %s" %
base64.b64encode("%s:%s" % (username, password))
})
和餅乾替代:
result = urlfetch.fetch(jira_url,
deadline=60,
headers={"X-Atlassian-Token": "no-check",
"Cookie": "JSESSIONID=529…snip…C4C"
})
我檢索到的JSESSIONID成功使用說明,但該cookie查詢只會返回"401 - Unauthorized" error while loading this page.
錯誤,如果cookie已過期。
{
"errorMessages" : [
"You do not have the permission to see the specified issue.",
"Login Required"
],
"errors" : {}
}
我回顧從內存緩存中的cookie,因爲大多數的相互作用是從任務隊列製成,不一定是單獨的線程,但召回之前剛剛生成的cookie。