Bash脚本无法与Report Portal通信,抛出401 Unauthorized错误求助
针对你遇到的com.epam.reportportal.service.launch - [17] report portal execution error retrofit2.adapter.rxjava2.HttpException: 401 unauthorized错误,可按以下步骤排查解决:
校验凭证有效性
确认使用的是Report Portal账号的API密钥(而非登录密码),密钥可在个人设置页面获取。检查密钥是否存在空格、大小写错误,复制时不要携带多余字符。检查凭证传递格式
- 终端Maven命令传递时,确保参数格式正确:
mvn test -Dreportportal.api.key=你的API密钥 -Dreportportal.endpoint=https://你的ReportPortal地址/api/v1 - Jenkins中传递时,将凭证配置为Secret Text类型,绑定到环境变量后正确引用:
environment { RP_API_KEY = credentials('reportportal-api-key') } steps { sh 'mvn test -Dreportportal.api.key=$RP_API_KEY' }
可在Jenkins构建日志中打印环境变量名称(不要打印密钥值),验证变量是否被正确注入。
- 终端Maven命令传递时,确保参数格式正确:
验证服务端权限与限制
确认该API密钥对应的账号拥有启动测试、上报结果的权限;检查账号是否被锁定,或Report Portal服务端是否设置了IP白名单,导致Jenkins/终端机器无法正常访问。测试API连通性
在终端执行curl命令验证密钥有效性:curl -H "Authorization: Bearer 你的API密钥" https://你的ReportPortal地址/api/v1/user返回401则说明密钥无效;返回用户信息则需排查脚本参数传递的问题。
排查配置冲突
检查项目pom.xml或Mavensettings.xml中是否有硬编码的Report Portal配置,覆盖了命令行传入的参数;同时确认reportportal-client依赖版本与服务端版本兼容,版本不匹配也可能引发授权失败。
内容的提问来源于stack exchange,提问作者Saba Malik
相关产品推荐
相关产品推荐

