spring boot tomcat版本升級的實現(xiàn)示例
1. 需求
我們使用的springboot版本為2.3.8.RELEASE,對應的tomcat版本為9.0.41,公司tomcat對應版本發(fā)現(xiàn)攻擊者可發(fā)送不完整的POST請求觸發(fā)錯誤響應,從而可能導致獲取其他用戶先前請求的數(shù)據,造成信息泄露的bug,行方要求對tomcat版本進行升級,受影響版本如下:
Apache Tomcat 9.0.0-M11 至 9.0.43
Apache Tomcat 8.5.7 至 8.5.63
由上所示,我們公司決定將tomcat升級一個小版本升級到9.0.44版本,解決對應問題。
2.具體操作
具體操作分為如下幾步
- 確定自己使用tomcat版本號,查看是否需要升級
- 移除tomcat錯誤版本編號,引入新的版本tomcat相關pom坐標
- 進行服務啟動測試,查看版本編號是否修改成功
2.1 確定當前tomcat使用版本號
首先我們需要確定自己對應的tomcat版本編號,可以使用右鍵點擊進入spring-boot-starter-parent

然后再右鍵點擊進入spring-boot-dependencies

然后我們在里面發(fā)現(xiàn)tomcat引入的jar包,再次進行右鍵點擊spring-boot-starter-tomcat

最終發(fā)現(xiàn)tomcat版本為9.0.41,版本在漏洞版本中,所以需要升級

具體升級版本
我們具體可以升級到設么版本,需要確定一下,可以使用maven的公共倉庫mvnrepository確定一下到底支持哪些版本,通過在倉庫中搜索spring-boot-starter-tomcat,找到對應的2.3.8.RELEASE版本,我們可以看到他的支持版本范圍,具體訪問地址

注意:確定當前版本信息也可以使用maven的dependences樹狀依賴,查看依賴關系,此處我已經修改完了所以展示的頁面也是修改完之后正確的tomcat版本

還可以使用maven沖突解決工具進行樹結構查看,這里不多贅述了

2.2 移除starter-web模塊對tomcat的依賴并引入新依賴
主要操作為pom文件中的starter-web,以及引入新的依賴,具體的pom文件如下所示,在maven對應的根pom中引入新版tomcat版本號 <tomcat.version>9.0.44</tomcat.version>

我們項目有一個common模塊,他統(tǒng)一引入starter-web模塊,我們修改此處即可,其他引用模塊則自動更新tomcat版本,具體pom信息如下
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<parent>
<artifactId>credit-business</artifactId>
<groupId>cn.git</groupId>
<version>1.0-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<artifactId>business-common</artifactId>
<description>公共模塊,業(yè)務依賴基礎模塊,提供基礎的技術和業(yè)務支撐</description>
<dependencies>
<!-- feign 調用通用interceptor,保證調用header token 值不丟失 -->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-openfeign</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
<exclusions>
<exclusion>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-tomcat</artifactId>
</exclusion>
<exclusion>
<groupId>org.apache.tomcat.embed</groupId>
<artifactId>tomcat-embed-core</artifactId>
</exclusion>
<exclusion>
<groupId>org.apache.tomcat.embed</groupId>
<artifactId>tomcat-embed-el</artifactId>
</exclusion>
<exclusion>
<groupId>org.apache.tomcat.embed</groupId>
<artifactId>tomcat-embed-websocket</artifactId>
</exclusion>
<exclusion>
<groupId>org.apache.tomcat</groupId>
<artifactId>tomcat-annotations-api</artifactId>
</exclusion>
</exclusions>
</dependency>
<!-- tomcat 修復漏洞 -->
<dependency>
<groupId>org.apache.tomcat.embed</groupId>
<artifactId>tomcat-embed-core</artifactId>
<version>${tomcat.version}</version>
<exclusions>
<exclusion>
<groupId>org.apache.tomcat</groupId>
<artifactId>tomcat-annotations-api</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.apache.tomcat</groupId>
<artifactId>tomcat-annotations-api</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>
<exclusions>
<exclusion>
<groupId>org.apache.tomcat.embed</groupId>
<artifactId>tomcat-embed-core</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>cn.git</groupId>
<artifactId>credit-swagger-starter</artifactId>
<version>1.0-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>org.mapstruct</groupId>
<artifactId>mapstruct</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-validation</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-aop</artifactId>
</dependency>
<dependency>
<groupId>cn.git</groupId>
<artifactId>credit-oracle-starter</artifactId>
<version>1.0-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>cn.git</groupId>
<artifactId>credit-redis-starter</artifactId>
<version>1.0-SNAPSHOT</version>
</dependency>
<!-- ftp上傳下載-->
<dependency>
<groupId>commons-net</groupId>
<artifactId>commons-net</artifactId>
<version>3.7</version>
</dependency>
<dependency>
<groupId>cn.git</groupId>
<artifactId>credit-discovery-starter</artifactId>
<version>1.0-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-sentinel</artifactId>
</dependency>
</dependencies>
</project>
2.3 測試
其實前面的maven樹以及依賴樹已經證實 tomcat版本已經修改了,但是還是啟動一下服務確定一下為好,那么再次啟動服務,發(fā)現(xiàn)版本編號已經修改

到此這篇關于spring boot tomcat版本升級的實現(xiàn)示例的文章就介紹到這了,更多相關spring boot tomcat版本升級內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
Java實現(xiàn)入參數(shù)據批量數(shù)據校驗詳解
在業(yè)務處理中一般入參是單條數(shù)據,這樣數(shù)據校驗比較容易,但是這種方法對于集合數(shù)據的校驗不適用,下面我們就來看看如何對入參數(shù)據進行批量數(shù)據校驗吧2024-02-02
IDEA整合SSM框架實現(xiàn)網頁上顯示數(shù)據
最近做了個小項目,該項目包在intellij idea中實現(xiàn)了ssm框架的整合以及實現(xiàn)訪問,具有一定的參考價值,感興趣的小伙伴們可以參考一下2021-05-05
2020新版idea創(chuàng)建項目沒有javaEE 沒有Web選項的完美解決方法
這篇文章主要介紹了2020新版idea創(chuàng)建項目沒有javaEE 沒有Web選項的完美解決方法,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下2020-09-09
JavaWeb實現(xiàn)同一帳號同一時間只能一個地點登陸(類似QQ登錄的功能)
最近做了企業(yè)項目,其中有這樣的需求要求同一帳號同一時間只能一個地點登陸類似QQ登錄的功能。下面小編通過本文給大家分享實現(xiàn)思路,感興趣的朋友參考下吧2016-11-11
解析web.xml中在Servlet中獲取context-param和init-param內的參數(shù)
本篇文章是對web.xml中在Servlet中獲取context-param和init-param內的參數(shù)進行了詳細的分析介紹,需要的朋友參考下2013-07-07

