gpt4 book ai didi

jenkins - 如何使用脚本禁用 Jenkins CSRF?

转载 作者:行者123 更新时间:2023-12-04 11:26:37 24 4
gpt4 key购买 nike

我在以自动方式禁用 CSRF 保护时遇到问题。我想在 Jenkins Master 启动之前使用 groovy init 脚本或仅在属性文件中禁用。我不确定为什么我会遇到面包屑问题,我认为这与 K8S/AWS 中暴露的 LB 有关。我正在使用 AWS ELB 来公开 pod 并在面包屑中导致 csrf 异常,并且有时当我去管理 Jenkins 时我也会收到反向代理警告。

我研究了它说我可以启用扩展代理兼容性或禁用 CSRF 检查的问题。我还没有找到它们所在的 groovy 或配置文件。

我当前的 groovy init 脚本如下:

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
}
}
},

我不知道我应该如何设置这些。

最佳答案

如果您确实需要(暂时)禁用 CSRF,则可以使用 groovy 来完成:

import jenkins.model.Jenkins

def instance = Jenkins.instance
instance.setCrumbIssuer(null)

之后应该通过再次设置为默认 CrumbIssuer 再次启用它
Jenkins Wiki 中所述:
import hudson.security.csrf.DefaultCrumbIssuer
import jenkins.model.Jenkins

def instance = Jenkins.instance
instance.setCrumbIssuer(new DefaultCrumbIssuer(true))
instance.save()

注意:之后通过 GUI 设置标志以启用 CSRF 保护是不够的,您还需要检查 crumb 算法。

关于jenkins - 如何使用脚本禁用 Jenkins CSRF?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49888756/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com