当前位置: 首页 > news >正文

当通过API发送请求的方式自动触发Jenkins job报错HTTP Status 403 – Forbidden的解决办法

报错场景:

当通过代码发送API请求去触发jenkins job报错403

分析报错的原因:

这个报错说明 Jenkins API 请求缺少 CSRF 防护的“crumb”令牌(防止跨站请求伪造)。

解决方法如下:

  1. 在 API 请求中带上 crumb

  2. 关闭 CSRF 防护(不推荐,安全风险)

由于不是在生产环境,所以选择最简单的方案解决,就是关闭CSRF防护

具体操作步骤: (Jenkins的部署方式是通过jenkins.war的方式放入Tomcat中运行的并且作为windows 服务启动)

Windows 服务方式
如果 Jenkins 作为 Windows 服务运行,可以在服务属性的“Java Options”里添加:

  1. 找到 Tomcat 的启动脚本
    通常在 bin 目录下,如  catalina.bat

  2. 设置 JAVA_OPTS 环境变量
    在启动脚本中添加如下内容(以 Windows 为例):

    在  catalina.bat 的开头添加:

    set JAVA_OPTS=-Dhudson.security.csrf.GlobalCrumbIssuerConfiguration.DISABLE_CSRF_PROTECTION=true %JAVA_OPTS%

    具体的位置例如:

  3. setlocalset JAVA_OPTS=-Dhudson.security.csrf.GlobalCrumbIssuerConfiguration.DISABLE_CSRF_PROTECTION=true %JAVA_OPTS%rem Suppress Terminate batch job on CTRL+C
    if not ""%1"" == ""run"" goto mainEntry
    if "%TEMP%" == "" goto mainEntry
    if exist "%TEMP%%<del>nx0.run" goto mainEntry
    echo Y>"%TEMP%%</del>nx0.run"
    if not exist "%TEMP%%<del>nx0.run" goto mainEntry
    echo Y>"%TEMP%%</del>nx0.Y"
    call "%<del>f0" %* <"%TEMP%%</del>nx0.Y"
    rem Use provided errorlevel
    set RETVAL=%ERRORLEVEL%
    del /Q "%TEMP%%<del>nx0.Y" >NUL 2>&1
    exit /B %RETVAL%
    :mainEntry
    del /Q "%TEMP%%</del>nx0.run" >NUL 2>&1

    4.重启windows 服务让设置生效

http://www.dtcms.com/a/461224.html

相关文章:

  • 一个网站如何工作流程建立网站需要哪些手续
  • H3C网络设备 实验二:搭建两个局域网,使两个局域网相互通信(路由器,固定ip)
  • 临平房产做网站的公司wordpress屏蔽功能org
  • Skywalking 的本地开发配置
  • iOS 上架 App 全流程实战,应用打包、ipa 上传、App Store 审核与工具组合最佳实践
  • JavaScript核心构成与基础语法详解2
  • 邹平网站建设公司淘宝网站开始怎么做
  • fs 文件系统:Node.js 操作磁盘的 “万能工具”
  • Android + iOS 手机抓包 App 实操教程
  • 智慧新零售时代:施易德系统平衡技术与人力,赋能门店运营
  • 标准编码与算法
  • Python获取变量名本身​​——varname库
  • 专业站全返利网站建设
  • 网站设计提案安阳市建设工程领域网站
  • 鸿蒙(OpenHarmony)声明式 UI 开发入门:从「智慧校园」项目学基础语法
  • js移动开发框架
  • 【腾讯拥抱开源】Youtu-Embedding:基于CoDiEmb的一个协作而独特的框架,用于信息检索与语义文本相似性中的统一表征学习
  • 西蔵自治区建设厅网站wordpress防盗链插件
  • VSCode中使用conda activate 虚拟环境,没报错,但没进入环境
  • vue修改element-ui的默认的class
  • ModuleNotFoundError: No module named ‘UI_xiangmu‘
  • 网站建设方案及报价霍州做网站
  • mybatis-generator插件自动生成mapper及其实体模型配置
  • 计算机毕业设计 基于k-means的校园美食推荐系统 Python 大数据毕业设计 Hadoop毕业设计选题【附源码+文档报告+安装调试】
  • 【代码大模型-后门安全】Backdoors in Neural Models of Source Code
  • javaweb后端优雅处理枚举
  • 帝国cms小程序搞起来简直好用的不行
  • 高效批量调整图像尺寸的方案
  • 单片机供电处3.3V大电容导致程序可进调试但是无法暂停到具体语句
  • Java 实战:为 Word 文档中的文本与段落添加边框