问题复现
复现问题版本:SpringBoot2.1.13.RELEASE版本
https证书配置:
server.ssl.key-store=classpath:xxxx.pfx
server.ssl.key-store-password=xxxx
server.ssl.key-store-type=PKCS12
项目启动无报错,普通json数据均可提交返回,但是上传出现两种错误:
1、有的电脑,无论什么图片都不可以上传,后台直接报错:multipartFile.getInputStream()报NullPointException异常
;
2、有点电脑可以上传10KB一下的文件,但是超过就不可以上传,后台报错内容为:
Processing of multipart/form-data request failed. Stream ended unexpectedly
但是这两个问题再本地测试怎么都复现不出来,实在苦恼,最后查询文档才知道:
Tomcat 9.0.31版本有漏洞,这个漏洞在9.0.33版本之后就被修复了,升级一下就行了
修复方案
一、升级SpringBoot版本
一般大于2.3.0.RELEASE版本即可
二、替换原有Tomcat版本
替换方法如下:
<!-- Tomcat版本 -->
<properties>
<tomcat.version>9.0.41</tomcat.version>
</properties>
<!-- SpringBoot相关 -->
<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>
<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>