From e808d7a7de85bd41079427b76f217f8bf4f19189 Mon Sep 17 00:00:00 2001 From: Andy Wilkinson Date: Tue, 24 Feb 2026 15:32:50 +0000 Subject: [PATCH] Align server.tomcat.max-part-count default with Tomcat's default Fixes gh-49311 --- .../tomcat/autoconfigure/TomcatServerProperties.java | 2 +- .../autoconfigure/TomcatServerPropertiesTests.java | 11 +++++++++++ .../TomcatWebServerFactoryCustomizerTests.java | 2 +- 3 files changed, 13 insertions(+), 2 deletions(-) diff --git a/module/spring-boot-tomcat/src/main/java/org/springframework/boot/tomcat/autoconfigure/TomcatServerProperties.java b/module/spring-boot-tomcat/src/main/java/org/springframework/boot/tomcat/autoconfigure/TomcatServerProperties.java index 9bfb7e8ae32..90c6e551820 100644 --- a/module/spring-boot-tomcat/src/main/java/org/springframework/boot/tomcat/autoconfigure/TomcatServerProperties.java +++ b/module/spring-boot-tomcat/src/main/java/org/springframework/boot/tomcat/autoconfigure/TomcatServerProperties.java @@ -88,7 +88,7 @@ public class TomcatServerProperties { * Maximum total number of parts permitted in a multipart/form-data request. Requests * that exceed this limit will be rejected. A value of less than 0 means no limit. */ - private int maxPartCount = 10; + private int maxPartCount = 50; /** * Maximum amount of request body to swallow. diff --git a/module/spring-boot-tomcat/src/test/java/org/springframework/boot/tomcat/autoconfigure/TomcatServerPropertiesTests.java b/module/spring-boot-tomcat/src/test/java/org/springframework/boot/tomcat/autoconfigure/TomcatServerPropertiesTests.java index 4f730df6cef..e9280187a80 100644 --- a/module/spring-boot-tomcat/src/test/java/org/springframework/boot/tomcat/autoconfigure/TomcatServerPropertiesTests.java +++ b/module/spring-boot-tomcat/src/test/java/org/springframework/boot/tomcat/autoconfigure/TomcatServerPropertiesTests.java @@ -194,6 +194,17 @@ class TomcatServerPropertiesTests { .isEqualTo(getDefaultConnector().getMaxPostSize()); } + @Test + void tomcatMaxPartCountMatchesConnectorDefault() { + assertThat(this.properties.getMaxPartCount()).isEqualTo(getDefaultConnector().getMaxPartCount()); + } + + @Test + void tomcatMaxPartHeaderSizeMatchesConnectorDefault() { + assertThat(this.properties.getMaxPartHeaderSize().toBytes()) + .isEqualTo(getDefaultConnector().getMaxPartHeaderSize()); + } + @Test void tomcatUriEncodingMatchesConnectorDefault() { assertThat(this.properties.getUriEncoding().name()).isEqualTo(getDefaultConnector().getURIEncoding()); diff --git a/module/spring-boot-tomcat/src/test/java/org/springframework/boot/tomcat/autoconfigure/TomcatWebServerFactoryCustomizerTests.java b/module/spring-boot-tomcat/src/test/java/org/springframework/boot/tomcat/autoconfigure/TomcatWebServerFactoryCustomizerTests.java index 81ff6af9b51..22490800481 100644 --- a/module/spring-boot-tomcat/src/test/java/org/springframework/boot/tomcat/autoconfigure/TomcatWebServerFactoryCustomizerTests.java +++ b/module/spring-boot-tomcat/src/test/java/org/springframework/boot/tomcat/autoconfigure/TomcatWebServerFactoryCustomizerTests.java @@ -190,7 +190,7 @@ class TomcatWebServerFactoryCustomizerTests { @Test void defaultMaxPartCount() { customizeAndRunServer( - (server) -> assertThat(server.getTomcat().getConnector().getMaxPartCount()).isEqualTo(10)); + (server) -> assertThat(server.getTomcat().getConnector().getMaxPartCount()).isEqualTo(50)); } @Test