You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python使用OAuth认证JIRA获取Request Token报401签名无效问题求助

JIRA OAuth1 RSA签名无效问题修复方案

你遇到的signature_invalid报错是JIRA OAuth1校验的常见错误,按以下步骤修改配置即可解决:

1. JIRA端配置校验

  • 确认JIRA后台应用链接中配置的Consumer Key与代码中CONSUMER_KEY = "OauthKey"完全一致,大小写敏感
  • 确认JIRA应用链接中上传的是配对的公钥文件(jira_publickey.pem),而非本地的私钥文件
  • 确认JIRA应用链接的OAuth配置中已勾选RSA-SHA1作为签名算法,无额外IP/访问权限限制拦截你的请求源

2. 私钥读取逻辑修正

当前私钥读取逻辑未处理编码问题,容易导致私钥格式异常,修改读文件逻辑:

def read(file_path):
    # 二进制读取后解码,避免编码错误破坏私钥格式
    with open(file_path, 'rb') as f:
        return f.read().decode('utf-8')

3. OAuth1Session初始化参数补全

当前初始化缺省了必要的回调地址参数,修改初始化代码:

# 回调地址填oob代表手动授权模式,无需配置回调服务
oauth = OAuth1Session(
    CONSUMER_KEY,
    callback_uri='oob',
    signature_type="auth_header",
    signature_method=SIGNATURE_RSA,
    rsa_key=RSA_KEY
)

如果修改后仍然报错,可指定请求方法为GET适配部分旧版本JIRA:

request_token = oauth.fetch_request_token(REQUEST_TOKEN_URL, method='GET')

4. 环境一致性校验

  • 确认运行代码的服务器与JIRA服务器时间差不超过5分钟,OAuth1的timestamp校验会拒绝时间差过大的请求
  • 确认本地私钥是标准PKCS8格式,没有设置密码保护,如有密码需要额外添加私钥解密参数
  • 确认代码运行环境可以正常访问JIRA服务器地址,无代理/防火墙拦截请求

内容的提问来源于stack exchange,提问作者vvazza

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.06 01:39:02