jenkins rest api 构建工程时出现403的解决办法

因为公司需要,所以使用 jenkins-client做远程构建,但是在输入了正确的账号密码以及jenkins的url之后,调用构建出现403

代码如下

 try {
            JenkinsServer jenkins = new JenkinsServer(new URI("JENKINS_URL"), JENKINS_USERNAME, JENKINS_PASSWORD);
            if (jenkins.isRunning()) {
                jenkins.getJob(JENKINS_JOB).build();
                System.out.println(jenkins.getJob(JENKINS_JOB).getLastBuild().details().getResult());
            }
        } catch (Exception e) {
            e.printStackTrace();
        }

  执行之后报

status code: 403, reason phrase: Forbidden

  研究了一下发现了是jenkins的CSRF机制导致的,但是由于公司所用的jenkins版本较高,默认不支持关闭CSRF,所以需要在jenkins 控制台中手动关闭CSRF。

解决方案为在jenkins控制台中执行以下代码。

// 允许禁用
hudson.security.csrf.GlobalCrumbIssuerConfiguration.DISABLE_CSRF_PROTECTION = true

// 强制启用
hudson.security.csrf.GlobalCrumbIssuerConfiguration.DISABLE_CSRF_PROTECTION = false

 

posted on 2020-08-31 17:09  詹姆斯世界第一  阅读(4302)  评论(0编辑  收藏  举报

导航