jenkins - 卷曲命令传递脚本行以获取 crumb 值并执行我的 groovy 脚本
问题描述
我已尝试使用以下命令在 jenkins 脚本控制台中执行我的 groovy,以在 v2.222.2 中禁用 CSRF。
CRUMB=$(curl -u "$userName" ' https://jenkins-testcrumb.origin-elr-core-nonprod.com/crumbIssuer/api/xml?xpath=concat(//crumbRequestField ,":",//屑)')
CRUMB_DISABLE=$(curl "$userName" "script=hudson.security.csrf.GlobalCrumbIssuerConfiguration.DISABLE_CSRF_PROTECTION = true" -H "$CRUMB" https://jenkins-testcrumb.origin-elr-core-nonprod.com/scriptText )
错误:
% Total % Received % Xferd 平均速度 时间 时间 当前 Dload 上传总花费 左速度 100 462 100 462 0 0 1002 0 --:--:-- --:--:-- --:--:-- 1004 % Total % Received % Xferd Average Speed Time Time Time Current Dload Upload Total Spent Left Speed 0 0 0 0 0 0 0 0 --:--:-- --:--:-- --:--:- - 0curl:(6)无法解析主机:kvinod5;未知错误 curl:(6)无法解析主机:script=hudson.security.csrf.GlobalCrumbIssuerConfiguration.DISABLE_CSRF_PROTECTION = true; 未知错误 100 90 0 90 0 0 498 0 --:--:-- --:--:-- --:--:-- 498
有人可以帮我如何获得灵魂吗?
解决方案
这不起作用,请改用Api 令牌。Jenkins 升级文档指出:
在启动时将系统属性设置
hudson.security.csrf.GlobalCrumbIssuerConfiguration.DISABLE_CSRF_PROTECTION
为 true 以禁用 CSRF 保护以及它的配置 UI。这是一个不受支持的选项,将来可能会被删除。
这表明它必须在启动时设置,并且以后不能修改。
此外,您要实现的目标还有几个问题:
该错误表明它找不到主机:script=hudson.security.csrf.GlobalCrumbIssuerConfiguration.DISABLE_CSRF_PROTECTION = true;
,这指向您的第二次curl
调用不正确,应该是:
$(curl -u "$userName" --data-urlencode "script=hudson.security.csrf.GlobalCrumbIssuerConfiguration.DISABLE_CSRF_PROTECTION = true" -H "$CRUMB" https://jenkins-testcrumb.origin-elr-core-nonprod.com/scriptText)
此调用仍将失败并返回无效的 crumb,因为脚本不再接受 Crumbs。您应该改用api 令牌。
此外,要设置属性,您需要调用System.setProperty
,因此您的脚本应该是:
"script=System.setProperty('hudson.security.csrf.GlobalCrumbIssuerConfiguration.DISABLE_CSRF_PROTECTION', 'true'"
但如前所述,该属性是在启动时检查的,因此稍后更改它不会禁用 Crumb 系统。
推荐阅读
- outlook-addin - 如何仅将 Outlook 插件部署到我们自己的员工
- firebase - 我应该将firebase id令牌存储在某处吗?
- c++ - Supermario 项目 C++ 和 Qt 的 HUD
- javascript - 如何使用复选框来装饰文本?
- reactjs - 一个 React 组件可以按 2 个类渲染吗?
- sql-server - 字符串或二进制数据将被截断:TRY_CAST 未捕获错误
- python - 如何使用 lxml 清理 HTML 字符串以在 python 中解析它?
- algorithm - 如何使这个最长递增子序列程序返回这个子序列
- iis - IIS web.config url 重写
- spring-batch - SpringBatch:即使使用 NeverRetryPolicy,ChunkStep 也会在编写器中重试异常