python - 使用 OAuth 通过代理服务器使用 Python 对 Jira REST API 进行身份验证
问题描述
由于我公司的代理设置,无法使用 OAuth 凭据通过虚拟机连接到 JIRA Server API。
我能够使用 OAuth 进行身份验证并在本地运行我的脚本而不会出现问题。
我还在 cURL(如下)中测试了这个脚本的一个版本,它可以按预期工作,尽管它不符合我公司的安全标准,因为它使用的是简单的身份验证。
JIRA 文档没有提供任何有用的信息,我在 Atlassian 论坛或 StackOverflow 上没有找到任何解决此特定问题的解决方案。
实例化 JIRA 对象:
jira_options={'server': 'https://jira.domain.com'}
oauth_dict = {
'access_token': access_token,
'access_token_secret': access_token_secret,
'consumer_key': consumer_key,
'key_cert': key_cert_data
}
jira = JIRA(options=jira_options, oauth=oauth_dict)
这是带有简单身份验证的功能 CURL:
curl --noproxy “*” -o /usr/local/airflow/data/jira_input.json -D- -u ‘+jira_client_email+‘:’+jira_client_key+' -X GET -H “Content-Type: application/json” “https://jira.domain.com/rest/api/2/search?jql=project=CC&updatedDate=-3d&startAt=0&maxResults=3000”
我希望输出返回一个 JIRA 对象并允许我的程序访问 JIRA 的 API。
我得到的实际输出是下面的错误消息:
[2019-03-27 15:03:23,907] {bash_operator.py:94} INFO - WARNING:root:HTTPSConnectionPool(host='jira.domain.com', port=443): Max retries exceeded with url: /rest/api/2/serverInfo (Caused by NewConnectionError('<urllib3.connection.VerifiedHTTPSConnection object at 0x7f6e45ca5898>: Failed to establish a new connection: [Errno 110] Connection timed out',)) while doing GET https://jira.domain.com/rest/api/2/serverInfo [{'params': None, 'headers': {'User-Agent': 'python-requests/2.18.4', 'Accept-Encoding': 'gzip, deflate', 'Accept': 'application/json,*.*;q=0.9', 'Connection': 'keep-alive', 'Cache-Control': 'no-cache', 'Content-Type': 'application/json', 'X-Atlassian-Token': 'no-check'}}]
解决方案
推荐阅读
- java - 使用 JAMOD 读取正确的 Schneider Momentum PLC 寄存器或线圈地址
- python - 将输出标签值保存到 csv
- python - 在两个 RaspberryPi 之间使用 Python xmlrpc 会导致连接被拒绝错误
- javascript - HTML & CSS: 带有基于 Scroll 的覆盖导航栏的嵌入式视频
- angular - 从 Angular 到 Spring 的多部分发布请求
- python - Python Twisted/Reactor 无法将消息发送到服务器/客户端
- python - 如何计算熊猫系列中列表的元素
- django - Letsencrypt 登台和生产服务器上的 SSL 证书
- regex - 正则表达式禁止撇号和连字符之前或之后的任何空格
- homebrew - 当存在相同版本的两个副本时,我应该如何覆盖/替换 nmap?