Сбой загрузки нескольких файлов с использованием весенней загрузки с версией Tomcat 9.0.31 - PullRequest
6 голосов
/ 09 марта 2020

Загрузка файла с несколькими частями в весенней загрузке не работает с версией 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

Пожалуйста, помогите решить эту проблему.

Ответы [ 2 ]

7 голосов
/ 18 марта 2020

Я думаю, что ошибка была исправлена ​​в последней версии tomcat 9.0.33.

Функция многократной загрузки файлов, которая не работала в версии 9.0.31, также была исправлена ​​с обновлением. Кроме того, я попытался проверить, существует ли какая-либо уязвимость с помощью средства проверки зависимостей ow asp, и обнаружил, что в этой версии нет уязвимостей.

Просто обновите свою зависимость с помощью следующей версии :

<!-- 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>
3 голосов
/ 14 марта 2020

Это ошибка в Tomcat 9.0.31. В Bugzilla Apache уже есть запись: https://bz.apache.org/bugzilla/show_bug.cgi?id=64195.

Согласно отчету об ошибке, чтобы предотвратить эту проблему, вы можете либо - использовать Http11Nio2Protocol вместо Http11NioProtocol - использовать Tomcat 9.0.30, где этого не происходит (но имеет критическую уязвимость Ghostcat в протоколе Tomcat AJP)

Эта проблема будет исправлена ​​в 9.0.32 (которая еще не выпущена).

Примечание: при использовании http вместо https проблема также не появляется.

...