我正在尝试连接到运行在apache代理后面的Jira REST。我试着使用python模块来完成这个任务,在我直接连接到Jira时,它运行良好,绕过了apache代理授权。但是,随着apache代理的启动,我正在稳步地得到“错误: 401未经授权”错误。
问题是,我需要提供两次授权凭证,一个用于代理,另一个用于Jira。
所有的测试都是在我的本地VM上完成的。
下面是工作curl命令,其中:
它实际上正在运行并产生结果。
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=“列表中,但不知怎么的,它不起作用。
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正在工作,所以我认为这在环境设置中不是一个问题)
发布于 2018-10-17 12:25:15
这对我有用。
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)https://stackoverflow.com/questions/48384775
复制相似问题