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

如何解决Jenkins中“HTTP ERROR 403 请求无有效crumb”问题?

解决Jenkins中止构建时403无有效Crumb的问题

你的代码存在两个关键问题:

  • 变量名错误:你把获取到的crumb值存在crumb_value变量里,但POST请求里误用了未定义的crumb_json,直接导致传递的crumb无效。
  • Crumb传递方式错误:Jenkins的crumb需要放在请求头中,而非JSON请求体里。/stop接口通常不解析JSON格式参数,而是期望通过请求头携带crumb完成验证。

修正后的代码示例:

import requests

# 1. 获取crumb及对应的请求头字段名(避免硬编码字段名)
crumb_data = requests.get(
    f"https://{usr}:{psw}@<jenkins url>/crumbIssuer/api/json",
    verify=False
).json()
crumb_header_field = crumb_data["crumbRequestField"]
crumb_value = crumb_data["crumb"]

# 2. 构建包含crumb的请求头
request_headers = {
    crumb_header_field: crumb_value
}

# 3. 发送POST请求中止构建
jenkins_abort = requests.post(
    f"https://{usr}:{psw}@<job url>/stop",
    headers=request_headers,
    verify=False
)

# 可打印响应信息排查问题
print(jenkins_abort.status_code)
print(jenkins_abort.text)

额外注意事项:

  • 不要硬编码Jenkins-Crumb字段名,部分Jenkins配置下该字段名可能为X-Jenkins-Crumb,通过crumbRequestField动态获取更可靠。
  • 确保你的账号拥有中止构建的权限(如Job/Build权限组中的Stop Build权限)。
  • verify=False仅适合测试环境,生产环境建议配置正确的SSL证书验证。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.23 09:57:29