使用Python JIRA Package连接Jira服务器时认证失败(401错误)
针对你遇到的Basic Authentication Failure(AUTHENTICATED_FAILED)错误,结合网页能正常登录的情况,按以下步骤排查:
确认令牌/密码匹配对应Jira版本
如果是Jira Cloud版,必须使用API令牌(不能用登录密码),令牌需要在Atlassian账户设置中生成;如果是Jira Server/Data Center版,优先用登录密码,若公司启用了API令牌则用对应的令牌。检查服务器URL正确性
确保server参数是Jira的有效基础地址,比如原代码中的https://theinstallatationofjira.com/jira,检查是否有拼写错误(比如theinstallatation应为theinstallation),或者是否不需要/jira后缀(有些实例直接是https://xxx.com)。验证Basic Auth是否被允许
部分公司Jira会禁用Basic认证方式,改用OAuth 2.0或其他方案,联系管理员确认当前实例支持的API认证方式。用requests库直接测试认证
排除JIRA包的问题,用基础请求验证账号和令牌是否有效:import requests from requests.auth import HTTPBasicAuth url = "https://theinstallatationofjira.com/jira/rest/api/2/myself" auth = HTTPBasicAuth('myemail@company.com', 'MyTokenString') response = requests.get(url, auth=auth) print("状态码:", response.status_code) print("响应内容:", response.text)如果这个请求返回200,说明认证信息没问题,问题出在JIRA包的配置;如果还是401,继续排查账号或权限。
检查是否需要代理
内网环境下连接Jira可能需要代理,在初始化JIRA对象时添加代理参数:jira = JIRA( server='https://theinstallatationofjira.com/jira', basic_auth=('myemail@company.com', 'MyTokenString'), proxies={'https': 'http://your-proxy-address:port'} )尝试用用户名代替邮箱
有些Jira Server实例的认证账号是用户名而非邮箱,把basic_auth中的邮箱换成网页登录时用的用户名试试。
内容的提问来源于stack exchange,提问作者Husky-CGN

