首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >访问运行在apache代理之后的Jira REST api

访问运行在apache代理之后的Jira REST api
EN

Stack Overflow用户
提问于 2018-01-22 15:16:26
回答 1查看 878关注 0票数 0

我正在尝试连接到运行在apache代理后面的Jira REST。我试着使用python模块来完成这个任务,在我直接连接到Jira时,它运行良好,绕过了apache代理授权。但是,随着apache代理的启动,我正在稳步地得到“错误: 401未经授权”错误。

问题是,我需要提供两次授权凭证,一个用于代理,另一个用于Jira。

所有的测试都是在我的本地VM上完成的。

  • apache代理在标准端口80上运行,并将127.0.0.1/jira重定向到127.0.0.1:8080/jira
  • jira我们在8080端口上运行

下面是工作curl命令,其中:

  • jirauser - jira用户用于授权jirapass
  • 用于授权的圣战词
  • dGVzdDp3d3c= -是base64编码的proxyuser:proxypass字符串

它实际上正在运行并产生结果。

代码语言:javascript
复制
curl -u 'jirauser:jirapass' -X GET -H "Authorization: Basic dGVzdDp3d3c=" -H "Content-Type: application/json" "http://127.0.0.1/jira/rest/api/2/search?jql=key=DEV4"

对于python模块,我认为我需要调整'options‘参数,以便将'headers’添加到"Authorization: Basic dGVzdDp3d3c=“列表中,但不知怎么的,它不起作用。

代码语言:javascript
复制
from jira import JIRA, JIRAError
import sys

username="Jira_username"
password="Jira_password"

jira_options = {
   'server': 'http://127.0.0.1/jira',
   'verify': True,
    'headers' : {
                        'X-Atlassian-Token': 'no-check',
                        'Cache-Control': 'no-cache',
                        'Content-Type': 'application/json',
                        'Authorization': 'Token token="dGVzdDp3d3c\="'
                }
}
try:
     jira = JIRA(
                 options    = jira_options,
                 basic_auth = (username,password),
                 validate   = True,
            )

except JIRAError as e:
     print("Failed in Jira connection initialisation with error [%s]" % e)
     sys.exit()

我还尝试与请求库直接通话。

R= requests.get('http://127.0.0.1/jira/rest/api/2/search?jql=key=DEV4',auth=('jirauser','jirapass'),headers={‘Content’:'application/json',‘授权’:"Basic %s“% "dGVzdDp3d3c="})

但结果是: 401错误。

我真的很困惑为什么curl命令可以工作,但是python代码失败了,这里有什么问题吗?(由于curl正在工作,所以我认为这在环境设置中不是一个问题)

EN

回答 1

Stack Overflow用户

发布于 2018-10-17 12:25:15

这对我有用。

代码语言:javascript
复制
from jira import JIRA

jira_options = {
   'server': '<your jira url>',
   'verify': True,
   'headers' : {
                    'X-Atlassian-Token': 'no-check',
                    'Cache-Control': 'no-cache',
                    'Content-Type': 'application/json',
               }
}

jira = JIRA(options=jira_options, basic_auth=('<username>', '<password>'), validate=True)
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48384775

复制
相关文章

相似问题

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