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

执行curl创建Jenkins视图时遇HTTP 403错误:无有效crumb

解决Jenkins创建视图时403无有效crumb及curl语法错误问题

一、先修正curl命令的语法错误

你当前的curl命令存在参数顺序和格式错误,直接导致了Could not resolve host: Content-Type这类解析失败问题:

  • -v是 verbose 模式参数,需单独放置,不能紧跟在-H之后
  • -H参数后要直接跟完整请求头,格式为-H "Key: Value",不能与-d参数混放

修正后的基础命令框架:

curl -v -H "Content-Type: application/x-www-form-urlencoded" \
  -d "Submit=OK" \
  -d "mode=hudson.plugins.nested_view.NestedView" \
  -d "name=prda" \
  -d 'json={"name": "prda", "mode": "hudson.plugins.nested_view.NestedView", "Submit": "OK"}' \
  http://wcportal-workplace.subnet1phx1.devcecphx.oraclevcn.com:8080/view/TxnPreview/createView

二、解决Jenkins 403 crumb验证问题

Jenkins的crumb机制用于防范CSRF攻击,必须先获取有效crumb再携带到请求中,步骤如下:

1. 获取Jenkins crumb

执行以下命令获取crumb(替换<jenkins_username>和<jenkins_password>为你的实际账号密码,若用API token则替换密码为token):

CRUMB=$(curl -u <jenkins_username>:<jenkins_password> \
  http://wcportal-workplace.subnet1phx1.devcecphx.oraclevcn.com:8080/crumbIssuer/api/xml?xpath=concat(//crumbRequestField,":",//crumb))

2. 携带crumb执行创建视图请求

将获取到的crumb作为请求头加入curl命令:

curl -v -u <jenkins_username>:<jenkins_password> \
  -H "$CRUMB" \
  -H "Content-Type: application/x-www-form-urlencoded" \
  -d "Submit=OK" \
  -d "mode=hudson.plugins.nested_view.NestedView" \
  -d "name=prda" \
  -d 'json={"name": "prda", "mode": "hudson.plugins.nested_view.NestedView", "Submit": "OK"}' \
  http://wcportal-workplace.subnet1phx1.devcecphx.oraclevcn.com:8080/view/TxnPreview/createView

三、额外注意事项

  • 若Jenkins开启了“防止跨站点请求伪造”全局设置,必须携带crumb,无例外
  • 确保你的账号拥有View/Create权限,否则即使crumb正确也会报错
  • 若Jenkins部署在HTTPS环境下,需添加-k参数跳过证书验证(测试环境用),或指定合法证书路径

内容的提问来源于stack exchange,提问作者Prasobir Mandal

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.17 16:10:29