问题复现

复现问题版本: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>

更多推荐