Jenkins 接口调用返回 403原因记录

Jenkins 接口调用返回 403原因记录

根本原因

接口调用后,jenkins里做了重定向,请求的 token 在重定向的请求里失效导致返回了 403。详见下方 Jenkin 删除视图代码
···

public synchronized void doDoDelete(StaplerRequest req, StaplerResponse rsp) throws IOException, ServletException {
    checkPermission(DELETE);

    owner.deleteView(this);

    rsp.sendRedirect2(req.getContextPath()+"/" + owner.getUrl());
}

···

处理方法

在请求上加禁止重定向,此时接口返回的将是 30X

最后说一下自己的想法

我在处理这个问题时,搜了好多网站,看了好多资料,大部分都是重复重复重复的答案。唉,在中文网站找资料真的是难,只要有一个人写了问题的答案,其他地方搜到的都是这个答案,甚至有的网站把stackoverflow的答案翻一下就拿过来了,真是佩服的五体投地!最后还是通过看源码才明白问题出在哪,希望大家都能积极的去处理问题,而不是去复制问题

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要在 Spring Boot 中集成 Jenkins Client 并调用 Jenkins 接口,可以按照以下步骤进行操作: 1. 添加 Maven 依赖:在 `pom.xml` 文件中添加 Jenkins Client 的 Maven 依赖项。 ```xml <dependencies> <dependency> <groupId>com.offbytwo.jenkins</groupId> <artifactId>jenkins-client</artifactId> <version>0.5.2</version> </dependency> <!-- 其他依赖项 --> </dependencies> ``` 2. 创建 Jenkins Client 实例:在 Spring Boot 中创建一个 Jenkins Client 的实例,并配置 Jenkins 的 URL、用户名和密码等信息。 ```java import com.offbytwo.jenkins.JenkinsServer; import com.offbytwo.jenkins.client.JenkinsHttpClient; import java.net.URI; import java.net.URISyntaxException; @Service public class JenkinsService { private JenkinsServer jenkinsServer; public JenkinsService() throws URISyntaxException { String jenkinsUrl = "http://jenkins.example.com"; String username = "your-username"; String password = "your-password"; JenkinsHttpClient jenkinsHttpClient = new JenkinsHttpClient(new URI(jenkinsUrl), username, password); jenkinsServer = new JenkinsServer(jenkinsHttpClient); } // 编写其他需要的方法 } ``` 在上面的示例中,我们通过提供 Jenkins 的 URL、用户名和密码来创建一个 JenkinsHttpClient 对象,并将其传递给 JenkinsServer 构造函数来创建 JenkinsServer 实例。 3. 调用 Jenkins 接口:通过 JenkinsServer 实例,可以调用各种 Jenkins 接口。以下是一个示例,使用 Jenkins 的 REST API 获取所有 Job 的信息。 ```java import com.offbytwo.jenkins.model.Job; public List<Job> getAllJobs() throws IOException { Map<String, Job> jobs = jenkinsServer.getJobs(); return new ArrayList<>(jobs.values()); } ``` 在上面的示例中,我们使用 JenkinsServer 的 `getJobs()` 方法来获取所有 Job 的信息,并将其返回为一个 List。 请根据你的需求和具体的 Jenkins 接口,使用 Jenkins Client 提供的方法进行相应的调用。注意在实际应用中,要处理异常和错误情况,并进行适当的错误处理。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值