【问题标题】:JIRA request token fetch error using Python使用 Python 的 JIRA 请求令牌获取错误
【发布时间】:2021-10-31 04:11:09
【问题描述】:

我正在尝试配置和使用 OAuth 来使用 Python 进行身份验证和请求令牌。我已经生成了 jira 私钥。

import requests
from oauthlib.oauth1 import SIGNATURE_RSA,SIGNATURE_HMAC
from requests_oauthlib import OAuth1Session
from jira.client import JIRA
import time


def read(file_path):
    with open(file_path) as f:
        return f.read()


CONSUMER_KEY = "OauthKey"
RSA_KEY = read("jira_privatekey.pem")

JIRA_SERVER = "http://rhtstngjira012:8080"

REQUEST_TOKEN_URL = JIRA_SERVER + "/plugins/servlet/oauth/request-token"
AUTHORIZE_URL = JIRA_SERVER + "/plugins/servlet/oauth/authorize"
ACCESS_TOKEN_URL = JIRA_SERVER + "/plugins/servlet/oauth/access-token"

oauth = OAuth1Session(CONSUMER_KEY, signature_type="auth_header", signature_method=SIGNATURE_RSA, rsa_key=RSA_KEY)
request_token = oauth.fetch_request_token(REQUEST_TOKEN_URL)

但在请求令牌时,我收到以下错误 -

Traceback (most recent call last):
  File "Access_Tokens_JIRA.py", line 23, in <module>
    request_token = oauth.fetch_request_token(REQUEST_TOKEN_URL)
  File "/PYTHON_SCRIPTS/Environments/TESTING/lib/python3.6/site-packages/requests_oauthlib/oauth1_session.py", line 287, in fetch_request_token
    token = self._fetch_token(url, **request_kwargs)
  File "/PYTHON_SCRIPTS/Environments/TESTING/lib/python3.6/site-packages/requests_oauthlib/oauth1_session.py", line 369, in _fetch_token
    raise TokenRequestDenied(error % (r.status_code, r.text), r)
requests_oauthlib.oauth1_session.TokenRequestDenied: Token request failed with code 401, response was 'oauth_problem=signature_invalid&oauth_signature=ABC&oauth_signature_base_string=POST%26http%253A%252F%252Frhtstngjira012%253A8080%252Fplugins%252Fservlet%252Foauth%252Frequest-token%26oauth_consumer_key%253DOauthKey%2526oauth_nonce%123%2526oauth_signature_method%253DRSA-SHA1%2526oauth_timestamp%253D1630512420%2526oauth_version%253D1.0&oauth_signature_method=RSA-SHA1'

我已经安装了所有最新的库并生成了密钥。您能否告知我可以更改哪些内容以向 JIRA 请求令牌?

【问题讨论】:

    标签: python oauth jira


    【解决方案1】:

    您应该创建 API 令牌并将整个字符串 email:your-api-token 编码为 base64。

    您必须按照此处所述为您的用户创建 API 令牌:https://confluence.atlassian.com/cloud/api-tokens-938839638.html

    【讨论】:

    猜你喜欢
    • 2018-12-23
    • 2015-09-18
    • 2016-06-22
    • 1970-01-01
    • 2013-08-03
    • 1970-01-01
    • 2017-12-12
    • 2022-01-05
    • 1970-01-01
    相关资源
    最近更新 更多