目录

  • 一、使用jenkins-client调用jenkins REST API
    • 1、引入pom依赖
    • 2、测试连接的java代码
  • 二、解决方法

在使用java调用jenkins REST API时,使用登陆的用户名和密码连接调用api报错:hudson.security.AccessDeniedException2: anonymous is missing the Overall/Read permission
这里将密码改为生成的用户token就可以正常连接

一、使用jenkins-client调用jenkins REST API

1、引入pom依赖

<!-- https://mvnrepository.com/artifact/com.offbytwo.jenkins/jenkins-client -->
<dependency><groupId>com.offbytwo.jenkins</groupId><artifactId>jenkins-client</artifactId><version>0.3.8</version>
</dependency>

2、测试连接的java代码

@Slf4j
public class Test {public static  void main(String[] args) throws Exception {String url = "http://192.168.225.1:8080";String username = "admin";String password = "1234abcd";String jobName = "demo-pipeline";# 连接Jenkins ServerJenkinsServer jenkins = new JenkinsServer(new URI(url), username, password);# 获取版本号JenkinsVersion version = jenkins.getVersion();log.info(version.getLiteralVersion());# 根据job名称获取XML的配置String jobXml = jenkins.getJobXml(jobName);log.info(jobXml);JobWithDetails job = jenkins.getJob(jobName);Optional.ofNullable(job).ifPresent(val -> {log.info(val.getUrl());});}
}

运行上面的代码,控制台显示如下错误:

2020-09-15 07:00:29.148+0000 [id=14]   WARNING h.i.i.InstallUncaughtExceptionHandler#handleException: Caught unhandled exception with ID 5951bc12-986b-4f66-9d59-0ba9c1073def
hudson.security.AccessDeniedException2: anonymous is missing the Overall/Read permissionat hudson.security.ACL.checkPermission(ACL.java:79)at hudson.security.AccessControlled.checkPermission(AccessControlled.java:47)at jenkins.model.Jenkins.getTarget(Jenkins.java:4792)at org.kohsuke.stapler.Stapler.tryInvoke(Stapler.java:721)at org.kohsuke.stapler.Stapler.invoke(Stapler.java:898)at org.kohsuke.stapler.Stapler.invoke(Stapler.java:694)at org.kohsuke.stapler.Stapler.service(Stapler.java:240)at javax.servlet.http.HttpServlet.service(HttpServlet.java:790)at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:763)at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:551)at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:143)at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:620)at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:127)at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:235)at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:1610)at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:233)at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1369)at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:188)at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:489)at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:1580)at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:186)at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1284)at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141)at org.eclipse.jetty.server.Dispatcher.include(Dispatcher.java:121)at hudson.security.BasicAuthenticationFilter.doFilter(BasicAuthenticationFilter.java:171)at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87)at hudson.security.ChainedServletFilter.doFilter(ChainedServletFilter.java:90)at hudson.security.HudsonFilter.doFilter(HudsonFilter.java:171)at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1618)at org.kohsuke.stapler.compression.CompressionFilter.doFilter(CompressionFilter.java:51)at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1618)at hudson.util.CharacterEncodingFilter.doFilter(CharacterEncodingFilter.java:82)at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1618)at org.kohsuke.stapler.DiagnosticThreadNameFilter.doFilter(DiagnosticThreadNameFilter.java:30)at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1618)at jenkins.security.SuspiciousRequestFilter.doFilter(SuspiciousRequestFilter.java:36)

二、解决方法

我们打开JenkinsServer的源码,如下图所示,推荐我们用token进行连接,所以我们需要将密码改为token

如何获取用户的token,在Jenkins中通过如下方式生成token



最后将我们的密码改为token就可以正常连接Jenkins Server了。

hudson.security.AccessDeniedException2: anonymous is missing the Overall/Read permission相关推荐

  1. 解决Jenkins用户没有权限“root is missing the Overall/Administer permission”的问题

    原因 选择Legacy mode后管理员用户root没有权限了 解决 cp /home/admin/.jenkins/config.xml /home/admin/.jenkins/config.xm ...

  2. 终止Jenkins某Job的排队任务

    Jenkins => 系统管理 => Script Console 在命令行中输入: import hudson.model.* def q = Jenkins.instance.queu ...

  3. Jenkins集合git、maven,持续集成gitlab项目(二)

    在第一部分上一次写的集成文档中中Jenkins是可以主动拉取GitLab 代码或者定时拉取代码,进行构建:第二部分是为了向 GitLab push 代码,或执行其它一些操作时,GitLab 可以将这些 ...

  4. CentOS 8安装并配置Jenkins

    概述 持续集成必备工具. 安装 启用Jenkins存储库.运行以下命令下载并导入GPG密钥: wget -O /etc/yum.repos.d/jenkins.repo http://pkg.jenk ...

  5. 【游戏开发进阶】教你Unity通过Jenkins实现自动化打包,打包这种事情就交给策划了(保姆级教程 | 命令行打包 | 自动构建)

    文章目录 一.前言 二.Jenkins简介 三.Jenkins的下载与安装 1.JDK下载与安装 2.Jenkins下载 3.Jenkins安装 4.Jenkins初始化 四.Jenkins的基本操作 ...

  6. jenkins gitlab php,jenkins(8): 实战jenkins+gitlab持续集成发布php项目(代码不需要编译)...

    一. jenkins 的配置 1.前提条件安装了GitLab Plugin (源码管理使用),GitLab Hook(gitlab webhook需要) Manage Jenkins--->Ma ...

  7. jenkins+gitlab自动化编译部署方案探索及服务端编译webpack实战

    一. 背景 之前我们的开发流程为在本地进行webpack打包编译,然后svn提交源代码和编译后的代码.同时每次提交前也会从svn更新源代码和编译后的代码.这样做有几个缺点: 1. svn 更新和提交编 ...

  8. jenkins 安装及配置部署操作 (jenkins+svn+tomcat and jenkins+git+maven+tomcat)

    jenkins 安装及配置部署操作 jenkins+svn+tomcat and jenkins+git+maven+tomcat jenkins rpm软件包下载地址: https://pkg.je ...

  9. Hudson升级异常及解决办法

    今天在升级Hudson从1.343到1.389,更新war包并重启tomcat之后,访问任何页面总是出现以下异常 Dec 28, 2010 9:17:01 AM hudson.ExpressionFa ...

最新文章

  1. [HOW TO]-下载android官方源码
  2. 对于前端js框架对于事件处理的应用场景探讨
  3. Windows下给SourceTree配置外部比较工具BeyondCompare
  4. MapReduce程序之序列化原理与Writable案例
  5. android设置title_所见即所得的 Android 自动化神器,用 Automate 一键收藏文章
  6. java 多线程 优先级_java多线程之线程的优先级
  7. 会议管理的十条黄金原则
  8. (36)Verilog HDL关系运算:大于、小于、等于
  9. Android--建立能与访问者进行相互通信的本地服务
  10. My前端bootstrap(一)
  11. 睡眠排序、面条排序、猴子排序...........................
  12. Qt-textEdit 滚顶条设置只读模式
  13. LeetCode 344. Reverse String(反转字符串)
  14. BZOJ 1009 :[HNOI2008]GT考试(KPM算法+dp+矩阵快速幂)
  15. JS Grid插件使用
  16. 深入剖析jsonp跨域原理
  17. 【开源代码】-基于国民N32G45x系列MCU使用JLINK的RTT Viewer/logger/Client组件工具
  18. python的dispatch_win32com.client.Dispatch()函数用法
  19. 计算ndvi值需要的数据_MODIS计算NDVI注意事项
  20. dex2oat程序参数总结

热门文章

  1. RPG游戏《黑暗之光》开发总纲
  2. Unity 多场景/大场景加载解决方法
  3. 【扯】免费前端教程不会告诉你这些—知乎live摘录
  4. 网络工作室暑假后第三次培训资料(几种SQL分页的总结)整理
  5. mv单位是什么意思_p=mv是什么意思?
  6. html学习之input不可编辑
  7. 【MySQL】SQL语句进阶-创建sql练习环境
  8. 深度学习-TextCNN网络(简单了解TextCNN网络构建过程)
  9. 自动控制原理笔记-线性系统的稳定性分析
  10. windows10本地部署PHP