JAVA调用jenkins api出现Forbidden问题
关闭jenkins(高版本)跨站伪造保护
1.centos系统
vi /etc/sysconfig/jenkins
JENKINS_JAVA_OPTIONS="-Djava.awt.headless=true -Dhudson.security.csrf.GlobalCrumbIssuerConfiguration.DISABLE_CSRF_PROTECTION=true"
重启jenkins
2.ubuntu系统
通过命令systemctl status jenkins.service可以看到jenkins的启动命令
Loaded: loaded (/etc/init.d/jenkins; generated),启动文件是/etc/init.d/jenkins
vi /etc/init.d/jenkins
$SU -l $JENKINS_USER --shell=/bin/bash -c “$DAEMON $DAEMON_ARGS – $JAVA $JAVA_ARGS -Dhudson.security.csrf.GlobalCrumbIssuerConfiguration.DISABLE_CSRF_PROTECTION=true -jar $JENKINS_WAR $JENKINS_ARGS” || return 2
重启jenkins
不关闭跨站伪造保护对jenkins api进行调用
在用户设置API TOKEN添加新token
在jenkins api 创建JenkinsServer时使用token创建连接
JenkinsServer JenkinsServer = new JenkinsServer(uri, username, token)

本文介绍了如何解决在JAVA中调用Jenkins API时遇到的Forbidden问题。针对高版本Jenkins,提供了两种关闭跨站伪造保护的方法:对于CentOS系统,编辑`/etc/sysconfig/jenkins`并重启Jenkins;对于Ubuntu系统,修改启动命令并重启。另外,还提到了如果不关闭跨站伪造保护,可以采取在Jenkins用户设置中生成API Token,并在创建JenkinsServer连接时使用该Token的解决方案。
最低0.47元/天 解锁文章
5283





