首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用JSESSIONID cookie身份验证时使用urlfetch的JIRA REST调用失败

使用JSESSIONID cookie身份验证时使用urlfetch的JIRA REST调用失败
EN

Stack Overflow用户
提问于 2016-02-25 16:15:41
回答 1查看 3.4K关注 0票数 1

我有一个与JIRA实例交互的Google应用程序。

到目前为止,应用程序使用基本身份验证对JIRA进行urlfetch调用,但是由于它现在正在进行数十次单独的REST调用-- POST和GET --我希望使用cookie身份验证可以在一定程度上减少延迟。

示例Basic-工作的身份验证代码:

代码语言:javascript
复制
result = urlfetch.fetch(jira_url,
                        deadline=60,
                        headers={"Authorization": "Basic %s" %
                        base64.b64encode("%s:%s" % (username, password))
                        })

和cookie替代方案:

代码语言:javascript
复制
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已经过期了一样。

代码语言:javascript
复制
{
  "errorMessages" : [
    "You do not have the permission to see the specified issue.",
    "Login Required"
  ],
  "errors" : {}
}

我正在回忆Memcache中的cookie,因为大多数交互都是从一个Task队列中进行的,并且必然是一个单独的线程,但是cookie是在召回之前生成的。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-04-02 19:53:06

饼干还没有过期。造成此问题的原因是,JSESSIONID不是成功验证后续请求所需的唯一cookie。

我遇到了同样的问题,并通过重新发送在创建会话时从服务器获得的所有cookie来解决这个问题。在我的例子中( JIRA服务器托管在亚特兰西安云),这些必需的cookie是: atlassian.xsrf.token和studio.crowd.tokenkey。

我在这里发布了一篇详细的文章:JIRA REST :基于Cookie的身份验证。代码的示例在C#中,但总体思路应该是明确的。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35632642

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档