当前位置: 首页 > 知识库问答 >
问题:

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

有权
2023-03-14

我正在尝试连接到运行在apache代理后面的Jira REST API。我尝试使用PythonJira模块来完成这项任务,它工作得很好,因为我绕过apache代理授权直接连接到jira。然而,随着apacheproxy的启动,我不断地遇到“Err:401unauthorized”错误。

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

所有测试都在我的本地虚拟机上完成。

  • apache代理在标准端口80上运行,并重定向127.0。0.1/jira至127.0。0.1:8080/吉拉
  • jira us在8080端口上运行

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

  • jirauser-jira用户用于授权jirapass
  • jirapassword用于授权
  • dGVzdDp3d3c=-是bas64编码的proxyuser: proxypass字符串

它实际上是运行并产生结果

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"

对于pythonjira模块,我认为我需要调整'options'参数,将“Authorization:Basic dgvzddp3c=”添加到'headers'列表中,但不知何故,它不起作用。

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=请求。得到('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正在工作,我认为这在环境设置中不是问题)

共有1个答案

戴博
2023-03-14

这对我有用。

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)
 类似资料:
  • 最近,我从使用端口号转移到使用apache代理,现在我得到了以下浏览器控制台错误: [Mon Mar 02 18:25:03.1998982020][Proxy_HTTP:错误][pid 28494][client 71.223.254.40:50269]AH01114:HTTP:无法连接到后端:本地主机,引用:https://example.com/proxyport20005/ -- 我确实发

  • 我有一个RestHighLevelClient连接到一个远程elasticDB,它位于一个反向代理后面,该代理剥离了ssl。 当我打电话的时候 我得到一个握手失败的例外 正如这里和这里所描述的,我检查了日志,发现了ClientHello 服务员:你好 客户端和服务器都同意密码套件TLS_ECDHE_RSA_和_AES_128_GCM_SHA256 然后以加密和纯文本的形式跟踪请求。然后是另一个Cl

  • 有谁有幸尝试使用vertx bihind作为公司代理?我已经尝试了我脑海中出现的任何可能的方式来向vertx提供代理信息。到目前为止没有任何效果。 设置环境变量http_proxy=http://mycorporate.proxy.com:8080-运气不好 设置环境变量VERTX_OPTS='-Dhttp.proxy主机=mycorporate.proxy.com-Dhttp.proxy端口=8

  • 我有一个运行在EC2机器上的Nifi实例,并且我正在尝试访问一个受限制的s3 bucket。因为不建议手动生成访问密钥,所以我希望为机器提供访问外部桶的正确IAM角色。 我给了EC2机器一个角色,这个角色似乎适用于除NIFI之外的所有应用程序。是否有一些特殊的配置我需要设置Nifi不使用手动访问键?

  • 我如何返回那些在访问Milpitas之后访问Santa Clara或在访问#2之后访问#5的客户的?

  • 问题内容: 我一直在使用selenium在python中自动进行浏览器模拟和Web抓取,对我来说效果很好。但是现在,我必须在代理服务器后运行它。现在,selenium打开了窗口,但是由于未在打开的浏览器中设置代理设置而无法打开请求的页面。当前代码如下(示例): 如何更改上面的代码以立即与代理服务器一起使用? 问题答案: 您需要设置所需的功能或浏览器配置文件,如下所示: