页首自改代码

Hey, Nice to meet You.  why ?

☆☆☆所谓豪杰之士,必有过人之节.人情有所不能忍者,匹夫见辱,拔剑而起,挺身而斗,此不足为勇也,天下有大勇者,猝然临之而不惊,无故加之而不怒.此其所挟持者甚大,而其志甚远也.          
返回顶部

高版本Jenkins关闭跨站请求伪造保护(CSRF)

前言

根据官网描述,Jenkins版本自2.204.6以来的重大变更有:删除禁用 CSRF 保护的功能。 从较旧版本的 Jenkins 升级的实例将启用 CSRF 保护和设置默认的发行者,如果之前被禁用。

虽然删除了禁用csrf保护功能,增加了安全性,但是在一些结合Gitlab、Spinnaker等等工具进行持续集成过程中就增加了一些认证环节,若没有进行相关配置,得到的一定是403的报错。因为集成服务都是在内网操作,为删繁就简,笔者便考虑关闭 CSRF 保护功能,于是乎,对此展开了摸索……

方案

老版本Jenkins的CSRF保护功能只需要在 系统管理 > 全局安全配置 中便可进行打开或者关闭。让人头疼的是较高版本的Jenkins竟然在管理页面关闭不了CSRF,网上搜索到的资料有写通过 groovy代码 实现取消保护,但是笔者操作未成功,最后,Get到了一种成功的解决姿势。

在Jenkins启动前加入相关取消保护的参数配置后启动Jenkins,即可关闭CSRF,配置内容如下:

-Dhudson.security.csrf.GlobalCrumbIssuerConfiguration.DISABLE_CSRF_PROTECTION=true

Jenkins若是跑在Tomcat下,只需在tomcat启动脚本中加入配置即可;若是以jar包形式部署的,只需在启动时加上配置参数即可。

笔者Jenkins是部署在k8s环境中,故启动参数配置在yaml文件中,如下:

]# cat dp.yaml |grep csrf -C5

### 配置后重启Jenkins,在全局安全配置中可看到CSRF保护功能已关闭

参考

参考链接: https://issues.jenkins-ci.org/browse/JENKINS-61375

posted on 2020-05-22 14:43  罗穆瑞  阅读(11090)  评论(0编辑  收藏  举报

导航