Jenkins HTTP Request插件Secret Text凭证授权错误如何解决
问题产生原因
抛出Authentication 'segron' doesn't exist anymore报错,核心是HTTP Request插件没有成功匹配到你配置的Secret Text类型凭证,常见触发场景有三个:
- 插件版本兼容问题:1.16版本之前的HTTP Request插件,
authentication参数仅原生支持用户名/密码类型凭证,没有适配Secret Text类型的加载逻辑,这也是你用用户名密码凭证调用正常、用Secret Text就报错的核心原因。 - 凭证作用域不匹配:如果配置的Secret Text凭证作用域设置为单文件夹/单项目范围,而当前运行的流水线不在该作用域覆盖范围内,插件会因为没有权限读取凭证,判定对应认证项不存在。
- 凭证配置错误:配置凭证时ID存在前后空格、拼写偏差,或者凭证被误删除/修改ID,也会触发匹配失败报错。
修复方案
按优先级依次操作即可:
- 优先升级HTTP Request插件至1.16及以上稳定版本,升级完成后重启Jenkins服务,新版本插件原生支持Secret Text类型凭证作为
authentication参数传入,重启后重新运行流水线即可正常加载凭证发起请求。 - 如果暂时无法升级插件,不要通过
authentication参数传递Secret Text凭证,改用Jenkins内置的withCredentials步骤读取凭证值,手动将Token加入请求头完成鉴权,参考代码如下:
withCredentials([string(credentialsId: 'segron', variable: 'API_TOKEN')]) { httpRequest( url: "http://10.10.10.10:8080/api/run/", httpMode: 'POST', contentType: 'APPLICATION_JSON', // 注意根据目标API要求调整鉴权头格式,部分接口不需要Bearer前缀 customHeaders: [[name: 'Authorization', value: "Bearer ${API_TOKEN}", maskValue: true]] ) }
代码中maskValue: true参数会自动对日志中的Token值打码,避免凭证泄露。
- 校验凭证配置:进入Jenkins全局凭证管理页,搜索ID为
segron的凭证,确认ID拼写无多余空格或错误,同时将凭证作用域修改为全局范围(覆盖Jenkins所有节点、任务及子项),保证流水线任务有凭证读取权限。
内容的提问来源于stack exchange,提问作者Ciro
相关产品推荐
相关产品推荐

