【发布时间】:2019-09-10 20:51:22
【问题描述】:
我在以自动方式禁用 CSRF 保护时遇到问题。我想在 Jenkins Master 启动之前使用 groovy 初始化脚本或仅在属性文件中禁用。我不确定为什么会遇到碎屑问题,我认为这与 K8S / AWS 中暴露的 LB 有关。我正在使用AWS ELB暴露POD及其在Crumb中引起CSRF例外,当我管理Jenkins时,我有时会收到反向代理。
我研究了它说我可以启用扩展代理兼容性或禁用 CSRF 检查的问题。我还没有找到它们所在的 groovy 或配置文件。
我目前的 groovy 初始化脚本如下:
import hudson.security.csrf.DefaultCrumbIssuer
import jenkins.model.Jenkins
def j = Jenkins.instance;
j.setCrumbIssuer(null); // I've also tried setting a new crumb issuer here as well.
j.save();
System.setProperty("hudson.security.csrf.CrumbFilter", "false");
System.setProperty("hudson.security.csrf", "false");
System.setProperty("hudson.security.csrf.GlobalCrumbIssuerConfiguration", "false");
我似乎找不到关于如何禁用此属性或启用启用代理兼容性属性的参考。
Crumb Algorithm
Default Crumb Issuer
Enable proxy compatibility
我在点击应用时拦截了配置请求,传递的json有效负载似乎是设置
"hudson-security-csrf-GlobalCrumbIssuerConfiguration": {
"csrf": {
"issuer": {
"value": "0",
"stapler-class": "hudson.security.csrf.DefaultCrumbIssuer",
"$class": "hudson.security.csrf.DefaultCrumbIssuer",
"excludeClientIPFromCrumb": true
}
}
},
我不确定我应该设置什么或如何设置这些。
【问题讨论】: