升级Spring Boot内嵌Tomcat版本

2023-11-12

一、为什么要升级内嵌的Tomcat版本

在产品运行迭代过程中,产品所使用的插件、中间件等经常会被爆出各种各样的漏洞,有些威胁比较大的漏洞是需要及时修复的,最近我们就收到通知需要及时升级tomcat的版本以应对tomcat的新漏洞,当前我们的spring boot版本是2.2.10.RELEASE,其内嵌的tomcat版本是9.0.38,参考下图中本次漏洞(请求走私漏洞 (CVE-2021-33037))的详细信息得知我们需要及时的升级我们的tomcat版本到9.0.46版本以上。漏洞详情参考:https://www.secrss.com/articles/32655

 二、如何升级?

升级spring boot内嵌tomcat还是很容易的,但是项目的目录结构不一样升级的方式可能有一点点差别。

在升级之前建议打开IDE查看一下当前的内嵌tomcat版本是多少,查看方式如下图(随便找了个demo)

若发现版本在漏洞的范围内,则进行升级。

通常,对于内嵌版本的升级我们只需要项目父类的pom.xml文件中,写入我们需要升级的依赖版本号就可以了,如下图:

<properties>
		<tomcat.version>9.0.52</tomcat.version>
</properties>

刷新重新导入配置我们可以看到此时已经升级成功了,版本号变成了最新的9.0.52版本

但是,对于一些项目目录结构可能这样升级并不生效,这时我们需要在父类pom.xml手动导入上图框中的三个依赖即可,导入依赖如下:

<properties>	
		<tomcat.version>9.0.52</tomcat.version>
</properties>

<dependencies>
	        <dependency>
                <groupId>org.apache.tomcat.embed</groupId>
                <artifactId>tomcat-embed-core</artifactId>
                <version>${tomcat.version}</version>
            </dependency>
            <dependency>
                <groupId>org.apache.tomcat.embed</groupId>
                <artifactId>tomcat-embed-el</artifactId>
                <version>${tomcat.version}</version>
            </dependency>
            <dependency>
                <groupId>org.apache.tomcat.embed</groupId>
                <artifactId>tomcat-embed-websocket</artifactId>
                <version>${tomcat.version}</version>
            </dependency>
</dependencies>

再次,刷新依赖导入,查看是否已经升级成功:

 

启动项目,日志输出中可以看到如下,说明已经升级成功:

 

 

 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

升级Spring Boot内嵌Tomcat版本 的相关文章

  • ZeroDateTimeBehavior=convertToNull 在使用 hibernate 的 jdbc url 中不起作用

    通过 extern 属性文件 url 指定如下 jdbc mariadb xxxxx 3306 xxxxx zeroDateTimeBehavior convertToNull 连接工作正常并且能够查询数据库 通过休眠 我创建了一个映射到带
  • 无法在 Intellij 中运行主类[重复]

    这个问题在这里已经有答案了 我有以下项目结构 ProjectRoot src Main examples libs My src文件夹被标记为sources在 Intellij 中 现在 当我想运行 Main 类时 出现以下错误 Excep
  • 如何杀死 Java Future?

    我正在开发的服务使用 Future 来并行运行多个任务 每个任务最多可能需要一分钟才能完成 然而 外部库似乎有问题 因为在某些情况下 2 的时间 它不会返回 在这些情况下 我想给出 2 分钟的等待时间 如果还没有返回 我想杀死 future
  • 使用正则表达式验证电子邮件的最大长度

    我找到了用于电子邮件验证的正则表达式 a z0 9 a z0 9 a z0 9 a z0 9 a z 2 4 我希望电子邮件的最大长度为 20 个字符 因此我将其更改为 a z0 9 a z0 9 a z0 9 a z0 9 a z 2 4
  • 如何使用 aether 从 Java 找到最新版本的 Maven 工件?

    他们的文档非常薄弱 我无法弄清楚 我找到了部分答案here https stackoverflow com questions 27428068 how to retrieve the latest also snapshot versio
  • 递归取消 allOf CompletableFuture

    如果我有 CompletableFuture
  • android gradle插件-离线安装

    我必须在离线电脑上安装 android gradle 插件 通过谷歌搜索 我了解到我可以通过本地 Maven 存储库来做到这一点 但从不成功的尝试和所有关于这个问题的质量保证中我知道这并不简单 我从来没有和maven一起工作过 有经验的人可
  • java彩色滚动条搜索结果

    我将如何在 Java 中自定义滚动条 以便我可以进行像 chrome 一样的搜索 也就是说在结果所在的位置放置彩色条纹 我不想要一个库 因为我更喜欢自己编写代码 另外 我不想失去我拥有的 L F 欢迎举例 实际上 它将查看一个大的文本文件或
  • 如何获取 JDBC 中 UPDATE 查询影响的所有行?

    我有一项任务需要使用更新记录PreparedStatement 一旦记录被更新 我们知道更新查询返回计数 即受影响的行数 但是 我想要的不是计数 而是受更新查询影响的行作为响应 或者至少是受影响的行的 id 值列表 这是我的更新查询 UPD
  • 如何在 JmsMessagingTemplate.sendAndReceive 上设置等待超时

    我在 MVC 控制器中使用 JmsMessagingTemplate 的 sendAndReceive 但如果没有发送回复消息 它似乎会永远等待回复 该文档指出 返回 回复 如果无法接收消息 例如由于超时 则可能为 null 然而 我只是不
  • React Native v0.71.8 React-native-vector-icons 你看不到的图标

    我在用react native版本v0 71 8 我安装了react native vector icons库 但图标未显示 似乎链接在最新版本的 React Native 中不再起作用 所以我按照说明进行操作 但它不再编译 出现以下错误
  • 在约束验证器中使用 Guice 进行依赖注入

    我有一个在 ConstraintValidator 的实现中注入类的用例 我正在使用 Google guice 进行依赖项注入 目前无法在验证器内注入 我的场景的简化形式 内部模块 Provides Singleton public Ser
  • Spring Security 角色层次结构不适用于 Thymeleaf sec:authorize

    我正在使用 Spring Security 3 2 5 RELEASE 和 ThymeLeaf 2 1 4 RELEASE 我已经在安全上下文中定义了角色层次结构 在我的视图层中我正在使用sec authorize属性来定义菜单项 我希望看
  • 获取接收者的设备令牌以在 Firebase 中发送通知

    所以我正在学习如何使用 firebase 发送设备到设备的通知 我看到了这个answer https stackoverflow com a 42548586 5237289发送通知 看起来很简单 现在 我知道要获取发件人的令牌 它应该如下
  • 添加 char 和 int

    据我了解 字符是一个字符 即一个字母 一个digit 标点符号 制表符 空格或类似的东西 因此 当我这样做时 char c 1 System out println c 输出 1 正是我所期望的 那么为什么当我这样做时 int a 1 ch
  • 如何使用 AffineTransform.quadrantRotate 旋转位图?

    我想旋转一个bitmap关于它的中心点 然后将其绘制成更大的图形上下文 位图是40x40 pixels 图形上下文是500x500 pixels 这就是我正在做的 BufferedImage bi new BufferedImage 500
  • 在 Spring MVC 中将请求写入文件

    我希望能够将整个请求写入 Spring MVC 控制器中的文件 我已尝试以下操作 但即使我使用大量参数发出 POST 请求 文件也始终为空 RequestMapping method RequestMethod POST value pay
  • 如果 Modelmapper 中的整个属性为空,如何排除它们

    ModelMapper 是否 http modelmapper org http modelmapper org 支持什么排除属性 如果该值为空 我刚刚找到了 PropertyMap 但这对我来说是一种限制 因为我必须描述我想要的特定属性
  • 如何更改 JAX-WS Web 服务的地址位置

    我们目前已经公开了具有以下 URL 的 JAX RPC Web 服务 http xx xx xx xx myservice MYGatewaySoapHttpPort wsdl http xx xx xx xx myservice MYGa
  • ebean 映射到 BYTEA 的数据类型是什么?

    我有一个游戏 2 0 2 需要在数据库中存储一些文件的应用程序 我们使用 Ebean 作为 ORM 我相信我的数据库中需要一个 BYTEA 列来存储该文件 但我不确定在我的模型中使用什么数据类型 我应该使用某种Blob 或者只是一个byte

随机推荐

  • wx.getUserProfile调用后没有反应?获取不到真正的用户头像和昵称

    考虑到近期开发者对小程序登录 用户信息相关接口调整的相关反馈 为优化开发者调整接口的体验 小程序登录 用户信息相关接口调整说明 公告中关于小程序回收 wx getUserInfo 接口可获取用户授权的个人信息能力的截止时间调整至2021年4
  • 基于Java的停车场管理系统的设计与实现

    技术 Java JSP等 摘要 随着科技的迅速发展 各种管理系统已应用到社会的各个领域 各个大小企业 单位 都充分意识到传统的手工管理模式已经逐渐不能适应时代的发展 为了更好的发展 纷纷开发适合自己的管理系统 通过停车场管理系统这个平台 可
  • ppp协议帧格式

    ppp协议帧格式解析 现在全世界使用得最多的数据链路层协议是 点对点协议 PPP Point to Point Protocol 用户使用拨号电话线接入因特网时 一般都是使用 PPP 协议 PPP 的帧格式和 HDLC 的相似 标志字段F
  • Idea中JRebel热部署安装及激活

    一 JRebel安装 到idea的插件下载中下载JRebel插件 二 JRebel激活 下载反向代理软件地址 Release v1 4 ilanyu ReverseProxy GitHub UUID生成地址 Online UUID Gene
  • 通过服务器接口上传文件,云服务器上传文件的接口

    云服务器上传文件的接口 内容精选 换一换 华为云帮助中心 为用户提供产品简介 价格说明 购买指南 用户指南 API参考 最佳实践 常见问题 视频帮助等技术文档 帮助您快速上手使用华为云服务 安装传输工具在本地主机和Windows云服务器上分
  • MQTT.fx客户端MQTT接入阿里云物联网平台,登录、订阅、发布消息

    目录 1 准备 2 MQTT fx 设置登录名 密码 3 MQTT fx 接入阿里云 订阅Topic 4 阿里云下发数据给 MQTT fx 5 MQTT fx 发布消息给服务器 相关链接 MQTT协议 1 准备 阿里云物联网 创建产品 设备
  • 01:STM32点灯大师和蜂鸣器

    目录 一 点亮1个LED 1 连接图 2 函数介绍 3 点灯代码 二 LED闪烁 1 函数介绍 2 闪烁代码 三 LED流水灯 1 连接图 2 函数介绍 3 流水灯代码 四 按键控制LED 1 电路图 2 连接图 3 函数介绍 4 按键控制
  • spring3在jboss4中部署异常java.lang.RuntimeException: XPathFactory#newInstance() failed

    java lang RuntimeException XPathFactory newInstance failed to create an XPathFactory for the default object model http j
  • vscode 配置C++编译环境(完美版)

    文章目录 vscode c 环境配置 完整教程请查看该教程 vscode c 环境配置 完整教程请查看该教程 https blog csdn net qq 43041976 article details 100542557 使用MinGW
  • 通过less或者scss 定义变量 实现 vue主题切换

    更新 不需要全局引入less或者scss的可以直接在body上面挂载css变量 body baseColor 4F94FA activeColor 4F94FA fontColor 4F94FA 然后在需要使用的地方 title color
  • python 深拷贝和浅拷贝浅析

    简单点说 1 copy copy 浅拷贝 只拷贝父对象 不会拷贝对象的内部的子对象 id会变化2 copy deepcopy 深拷贝 拷贝对象及其子对象 id会变化 gt gt gt import copy gt gt gt a 1 2 3
  • WAV文件格式解析

    来源 http www codeguru com cpp g m multimedia audio article php c8935 PCM Audio and Wave Files htm page 1 源程序下载地址 http www
  • 算法可视化该怎么实现

    算法可视化通常是指将算法的运行过程或结果以图像 动画或交互式图形的形式呈现出来 使得更容易理解和观察 要实现算法可视化 需要使用特定的工具或库 如 图像可视化 可以使用 Python 中的 matplotlib 库或者 JavaScript
  • JavaScript基础——回调(callback)是什么?

    上篇文章 JavaScript基础 你真的了解JavaScript吗 我们明白了JavaScript是一个单线程 非阻塞 异步 解释性语言 清楚了什么是单线程 进程 阻塞 调用堆栈 异步回调 任务循环等概念 没看的或者不清楚的建议点击 Ja
  • mysql 问号作用,在“WHERE column =?”中MySQL中问号的意义是什么?

    在 WHERE column 中MySQL中问号的意义是什么 我正在解剖一些代码 碰到这个 sql SELECT page author name AS author updator name AS updator FROM TABLE P
  • XGBoostError: XGBoost Library (libxgboost.dylib) could not be loaded.

    最初下载xgboost 用的是 pip install xgboost 但是不知道为什么 无法 import xgboost 报错了 然后上网搜了下 给出的是 conda remove xgboost 但是出现了 我反应过来 我是用pip下
  • pwn手记录题2

    fastbin reverse into tcache 2 34 本题所使用的libc版本为2 34 最新版 libc2 34版本已经没有了所谓的hook函数 甚至exit hook 实际为某个函数指针 也已经不能够使用 能够利用的手法已经
  • Linux上查找最大文件的 3 种方法

    作者 CloudDeveloper 来源 公众号 Linux云计算网络 有时候我们在系统上安装了数十个应用程序 随着使用时间的推移 许多文件变得越来越大 从而导致磁盘空间越来越小 那么问题来了 如何找到系统上这些大文件 然后进行一番磁盘空间
  • STM32F4内部Flash读写

    之前的文章中介绍过STM32F0列的内部Flash读写 STM32CubeMX之内部Flash读写 F1系列的也是一样的 而F4系列的单片机与F0和F1略有不同 HAL库对应的函数也不同 今天来简单介绍一下 以TM32F429IGT6单片机
  • 升级Spring Boot内嵌Tomcat版本

    一 为什么要升级内嵌的Tomcat版本 在产品运行迭代过程中 产品所使用的插件 中间件等经常会被爆出各种各样的漏洞 有些威胁比较大的漏洞是需要及时修复的 最近我们就收到通知需要及时升级tomcat的版本以应对tomcat的新漏洞 当前我们的