Skip to content

Commit 44e66ef

Browse files
committed
Remove server.tomcat.reject-illegal-header
Closes gh-42731
1 parent c018c43 commit 44e66ef

File tree

4 files changed

+6
-38
lines changed

4 files changed

+6
-38
lines changed

spring-boot-project/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/web/ServerProperties.java

Lines changed: 0 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -489,13 +489,6 @@ public static class Tomcat {
489489
*/
490490
private Duration connectionTimeout;
491491

492-
/**
493-
* Whether to reject requests with illegal header names or values.
494-
* @deprecated since 2.7.12 for removal in 3.3.0
495-
*/
496-
@Deprecated(since = "2.7.12", forRemoval = true) // Remove in 3.3
497-
private boolean rejectIllegalHeader = true;
498-
499492
/**
500493
* Static resource configuration.
501494
*/
@@ -652,17 +645,6 @@ public void setConnectionTimeout(Duration connectionTimeout) {
652645
this.connectionTimeout = connectionTimeout;
653646
}
654647

655-
@Deprecated(since = "3.2.0", forRemoval = true)
656-
@DeprecatedConfigurationProperty(reason = "The setting has been deprecated in Tomcat", since = "3.2.0")
657-
public boolean isRejectIllegalHeader() {
658-
return this.rejectIllegalHeader;
659-
}
660-
661-
@Deprecated(since = "3.2.0", forRemoval = true)
662-
public void setRejectIllegalHeader(boolean rejectIllegalHeader) {
663-
this.rejectIllegalHeader = rejectIllegalHeader;
664-
}
665-
666648
public Resource getResource() {
667649
return this.resource;
668650
}

spring-boot-project/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/web/embedded/TomcatWebServerFactoryCustomizer.java

Lines changed: 0 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -145,8 +145,6 @@ public void customize(ConfigurableTomcatWebServerFactory factory) {
145145
.as(this::joinCharacters)
146146
.whenHasText()
147147
.to((relaxedChars) -> customizeRelaxedQueryChars(factory, relaxedChars));
148-
map.from(properties::isRejectIllegalHeader)
149-
.to((rejectIllegalHeader) -> customizeRejectIllegalHeader(factory, rejectIllegalHeader));
150148
customizeStaticResources(factory);
151149
customizeErrorReportValve(this.serverProperties.getError(), factory);
152150
}
@@ -219,16 +217,6 @@ private void customizeRelaxedQueryChars(ConfigurableTomcatWebServerFactory facto
219217
factory.addConnectorCustomizers((connector) -> connector.setProperty("relaxedQueryChars", relaxedChars));
220218
}
221219

222-
@SuppressWarnings("deprecation")
223-
private void customizeRejectIllegalHeader(ConfigurableTomcatWebServerFactory factory, boolean rejectIllegalHeader) {
224-
factory.addConnectorCustomizers((connector) -> {
225-
ProtocolHandler handler = connector.getProtocolHandler();
226-
if (handler instanceof AbstractHttp11Protocol<?> protocol) {
227-
protocol.setRejectIllegalHeader(rejectIllegalHeader);
228-
}
229-
});
230-
}
231-
232220
private String joinCharacters(List<Character> content) {
233221
return content.stream().map(String::valueOf).collect(Collectors.joining());
234222
}

spring-boot-project/spring-boot-autoconfigure/src/main/resources/META-INF/additional-spring-configuration-metadata.json

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -361,6 +361,12 @@
361361
"level": "error"
362362
}
363363
},
364+
{
365+
"name": "server.tomcat.reject-illegal-header",
366+
"deprecation": {
367+
"level": "error"
368+
}
369+
},
364370
{
365371
"name": "server.undertow.buffers-per-region",
366372
"type": "java.lang.Integer",

spring-boot-project/spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/web/ServerPropertiesTests.java

Lines changed: 0 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -142,7 +142,6 @@ void testTomcatBinding() {
142142
assertThat(tomcat.getRemoteip().getProtocolHeader()).isEqualTo("X-Forwarded-Protocol");
143143
assertThat(tomcat.getRemoteip().getInternalProxies()).isEqualTo("10\\.\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}");
144144
assertThat(tomcat.getRemoteip().getTrustedProxies()).isEqualTo("proxy1|proxy2|proxy3");
145-
assertThat(tomcat.isRejectIllegalHeader()).isFalse();
146145
assertThat(tomcat.getBackgroundProcessorDelay()).hasSeconds(10);
147146
assertThat(tomcat.getRelaxedPathChars()).containsExactly('|', '<');
148147
assertThat(tomcat.getRelaxedQueryChars()).containsExactly('^', '|');
@@ -422,13 +421,6 @@ void tomcatInternalProxiesMatchesDefault() {
422421
.isEqualTo(new RemoteIpValve().getInternalProxies());
423422
}
424423

425-
@Test
426-
@SuppressWarnings("removal")
427-
void tomcatRejectIllegalHeaderMatchesProtocolDefault() throws Exception {
428-
assertThat(getDefaultProtocol()).hasFieldOrPropertyWithValue("rejectIllegalHeader",
429-
this.properties.getTomcat().isRejectIllegalHeader());
430-
}
431-
432424
@Test
433425
void tomcatUseRelativeRedirectsDefaultsToFalse() {
434426
assertThat(this.properties.getTomcat().isUseRelativeRedirects()).isFalse();

0 commit comments

Comments
 (0)