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>