Ubuntu Jenkins升级2.346.3后远程调用403解决方案(HTTP ERROR 403 No valid crumb was included in the request)

      一般通过api调用Jenkins job出现403(HTTP ERROR 403 No valid crumb was included in the request)报错,是因为新版本Jenkins为了安全,搞的一套crsf认证机制,具体的自行百度,

我想写的重点当然是出了这个任务要怎么解决,也是对我这个问题处理的一个记录

  网上基本有两种方案

    1.装个插件(Strict Crumb Issuer),配合Jenkins crsf的认证,每次请求的时候参数多传一个类似session的东西,我没仔细看,因为我并不想知道,自行百度 这个插件和用法

    2.一种是修改配置属性达到跳过crsf认证的目的,当然我还是喜欢这样的暴力处理,自己内部请求自己的东西,为难自己干嘛 是吧

      我查到hudson.security.csrf.GlobalCrumbIssuerConfiguration.DISABLE_CSRF_PROTECTION = true这个属性可以跳过crsf认证,使用方法http://your_jenkins_host/script  在自己的Script Console里面执行就行,但是这个是临时,Jenkins重启就没了, 这就很蛋疼,然后,,然后 就开始我的无语之路, 我寻思,这个属性配置到Jenkins启动文件这样不就好了吗? 对没错,我配置了,我是apt直接装的,所以我自然我就去我的/etc/default/jenkins 里面去改了,然后怎么都不生效,最后查各种文章,发现在2.346.3版本之后只能通过配置文件覆盖的方法来改了

操作步骤:

①  编辑配置文件

sudo systemctl edit jenkins

 

 ②  加入下面这个配置

[Service]
Environment="JAVA_OPTS=-Djava.awt.headless=true -Dhudson.security.csrf.GlobalCrumbIssuerConfiguration.DISABLE_CSRF_PROTECTION=true"

 

③ 重启 

sudo systemctl restart jenkins

 

④ 查看是否生效   

ps -ef | grep jenkins  

 

 


Jenkins官方链接:https://www.jenkins.io/doc/book/security/csrf-protection/
posted @ 2022-09-06 13:01  DemonTech  阅读(2158)  评论(0编辑  收藏  举报