From ea00ab9919040c378394b96301c9988566fb249d Mon Sep 17 00:00:00 2001 From: Andy Wilkinson Date: Fri, 20 Dec 2019 15:53:08 +0000 Subject: [PATCH] Protect against NoSuchMethodError when deploying to old Tomcats Fixes gh-19308 --- .../web/embedded/TomcatWebServerFactoryCustomizer.java | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/spring-boot-project/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/web/embedded/TomcatWebServerFactoryCustomizer.java b/spring-boot-project/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/web/embedded/TomcatWebServerFactoryCustomizer.java index 052a13ba12..d7e6701adb 100644 --- a/spring-boot-project/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/web/embedded/TomcatWebServerFactoryCustomizer.java +++ b/spring-boot-project/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/web/embedded/TomcatWebServerFactoryCustomizer.java @@ -186,7 +186,13 @@ public class TomcatWebServerFactoryCustomizer // The internal proxies default to a white list of "safe" internal IP // addresses valve.setInternalProxies(tomcatProperties.getInternalProxies()); - valve.setHostHeader(tomcatProperties.getHostHeader()); + try { + valve.setHostHeader(tomcatProperties.getHostHeader()); + } + catch (NoSuchMethodError ex) { + // Avoid failure with war deployments to Tomcat 8.5 before 8.5.44 and + // Tomcat 9 before 9.0.23 + } valve.setPortHeader(tomcatProperties.getPortHeader()); valve.setProtocolHeaderHttpsValue(tomcatProperties.getProtocolHeaderHttpsValue()); // ... so it's safe to add this valve by default.