看起来像2.176 LTS版本中的碎屑发行者所做的更改 强制将初始令牌生成调用的Web会话ID连同碎屑一起包含在使用所述碎屑的后续调用中。
CSRF令牌(小块)现在仅对创建它们的Web会话有效,以限制攻击者获取它们的影响。使用/ crumbIssuer / api URL获取垃圾的脚本现在将无法执行受CSRF保护的操作,除非脚本在后续请求中保留了Web会话ID。
除了建议您暂时禁用CSRF之外,同一文档还建议您只能禁用新功能,而不能禁用整个CSRF,这应允许您的打包程序/可写程序按照以前的方式完成。
要禁用此改进,可以将系统属性hudson.security.csrf.DefaultCrumbIssuer.EXCLUDE_SESSION_ID设置为true。
编辑:
/etc/default/jenkins
在我自己的剧本(Ansible 2.8.4,Ubuntu 18.04,OpenJDK 11.0.4)中添加以下行可清除CSRF问题。
JAVA_ARGS="$JAVA_ARGS -Dhudson.security.csrf.DefaultCrumbIssuer.EXCLUDE_SESSION_ID=true"
在工具维护人员赶上API更改之前,可能是一个足够好的拐杖。