tomcat最近報ajp協議漏洞,如果應用是以war包部署在單獨的tomacat中,需要修改相關配置,並要求升級tomcat到對應的版本,具體要求可以參考下面這篇文章
https://bbs.huaweicloud.com/blogs/151237
但是spring boot內置tomcat這種,如果沒有單獨設置ajp協議的,實際上不用升級內置tomcat版本,但是如果一定要升級的話,可以參考如下步驟
1.首先在pom文件的properties節中增加<tomcat.version>****</tomcat.version>(tomcat.version的名字不能寫錯,因為在其它jar包的pom文件中可能引用了tomcat.version),這樣在本項目中引用tomcat.version的地方就都會更改了,這里我們項目的tomcat升級到的對應版本是8.5.51和9.0.31,就改成<tomcat.version>8.5.51</tomcat.version>和<tomcat.version>9.0.31</tomcat.version>
<maven.test.skip>true</maven.test.skip> <log4j-nosql.version>2.9.1</log4j-nosql.version> <mybatis-plus.version>2.1.9</mybatis-plus.version> <druid.version>1.1.6-JXD-1</druid.version> <fastjson.version>1.2.44</fastjson.version> <spring-boot-starter.version>1.5.10.RELEASE</spring-boot-starter.version> <mysql-connector-java.version>5.1.38</mysql-connector-java.version> <spring-boot-starter-quartz.version>2.0.0.RELEASE</spring-boot-starter-quartz.version> <mybatisplus-spring-boot-starter.version>1.0.5</mybatisplus-spring-boot-starter.version> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding> <tomcat.version>8.5.51</tomcat.version>
之后刷新maven
引用的tomcat就會升級到對應的版本
但是有的版本運行時會報錯,原因可能是,有的類庫會引用你所升級的tomcat版本(我的是8.5.51)中沒有的相關的tomcat的jar包,這時需要手動引用一下,
例如:
<dependency> <groupId>org.apache.tomcat</groupId> <artifactId>tomcat-annotations-api</artifactId> <version>8.5.51</version> </dependency> <dependency> <groupId>org.apache.tomcat</groupId> <artifactId>tomcat-jdbc</artifactId> <version>8.5.51</version> </dependency>