Spring Boot应用程序中的多部分文件上传不适用于tomcat 9.0.31版本。但是此功能可在9.0.30之前的版本中正常工作。但是此版本中存在一个漏洞,因此不得不对其进行升级。
看到下面的错误
"timestamp": "2020-03-09T08:01:56.169+0000",
"status": 500,
"error": "Internal Server Error",
"message": "Failed to parse multipart servlet request; nested exception is java.io.IOException: org.apache.tomcat.util.http.fileupload.impl.IOFileUploadException: Processing of multipart/form-data request failed. Stream ended unexpectedly",
错误日志如下
nested exception is org.springframework.web.multipart.MultipartException: Failed to parse multipart servlet request; nested exception is java.io.IOException: org.apache.tomcat.util.http.fileupload.impl.IOFileUploadException: Processing of multipart/form-data request failed. Stream ended unexpectedly] with root causeorg.apache.tomcat.util.http.fileupload.MultipartStream$MalformedStreamException: Stream ended unexpectedly
请帮助解决此问题。
最佳答案
我认为该错误已在最新的tomcat版本9.0.33中修复。
升级还修复了在9.0.31版中不起作用的多部分文件上传功能。另外,我尝试使用owasp依赖项检查器检查是否存在任何漏洞,并发现此版本中没有漏洞。
只需使用以下version升级您的依赖项:
<!-- https://mvnrepository.com/artifact/org.apache.tomcat.embed/tomcat-embed-core -->
<dependency>
<groupId>org.apache.tomcat.embed</groupId>
<artifactId>tomcat-embed-core</artifactId>
<version>9.0.33</version>
</dependency>