我正在尝试连接到在apache代理后面运行的Jira REST API。我尝试使用python-jira模块执行此任务,并且只要我直接连接到Jira,绕过apache代理授权就可以正常工作。但是,随着apache代理,我正在稳步获得“Err:401 Unauthorized”错误。
问题是我需要提供两次授权凭证,一个用于代理,一个用于Jira。
所有测试都在我的本地虚拟机上完成。
这是工作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-jira模块我认为我需要调整'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()
我还尝试使用librarty请求直接调用
r = requests.get('http://127.0.0.1/jira/rest/api/2/search?jql=key=DEV4',auth =('jirauser','jirapass'),headers = {'Content-Type':'application / json','Authorization':“Basic %s“%”dGVzdDp3d3c =“}}
但结果又是:401错误
我真的很困惑为什么curl命令工作但python代码失败了什么错了? (因为curl正在工作,我认为这不是环境设置中的问题)
答案 0 :(得分:0)
这对我有用。
$("form").change(function(){
validatePassword();
});