From ae6971a61a9ac07c83d7670893d86006cff64613 Mon Sep 17 00:00:00 2001 From: Andy Wilkinson Date: Wed, 9 Dec 2015 11:51:47 +0000 Subject: [PATCH] Upgrade to Tomcat 8.0.30 and continue to use absolute redirects Tomcat 8.0.30 has changed to using relative URIs in its redirects by default. To avoid any problems that this behaviour change may causes we override the default and configure Tomcat to continue to use absolute URIs. Closes gh-4715 --- spring-boot-dependencies/pom.xml | 2 +- .../tomcat/TomcatEmbeddedServletContainerFactory.java | 6 ++++++ 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/spring-boot-dependencies/pom.xml b/spring-boot-dependencies/pom.xml index ac59fd58b8e..265c7f7da46 100644 --- a/spring-boot-dependencies/pom.xml +++ b/spring-boot-dependencies/pom.xml @@ -134,7 +134,7 @@ 2.1.1.RELEASE 1.2.9 1.3 - 8.0.28 + 8.0.30 1.1.9.Final 1.7 2.0 diff --git a/spring-boot/src/main/java/org/springframework/boot/context/embedded/tomcat/TomcatEmbeddedServletContainerFactory.java b/spring-boot/src/main/java/org/springframework/boot/context/embedded/tomcat/TomcatEmbeddedServletContainerFactory.java index 97cf09c9d1b..363f8b2aee8 100644 --- a/spring-boot/src/main/java/org/springframework/boot/context/embedded/tomcat/TomcatEmbeddedServletContainerFactory.java +++ b/spring-boot/src/main/java/org/springframework/boot/context/embedded/tomcat/TomcatEmbeddedServletContainerFactory.java @@ -167,6 +167,12 @@ public class TomcatEmbeddedServletContainerFactory context.setParentClassLoader( this.resourceLoader != null ? this.resourceLoader.getClassLoader() : ClassUtils.getDefaultClassLoader()); + try { + context.setUseRelativeRedirects(false); + } + catch (NoSuchMethodError ex) { + // Tomcat is < 8.0.30. Continue + } SkipPatternJarScanner.apply(context, this.tldSkip); WebappLoader loader = new WebappLoader(context.getParentClassLoader()); loader.setLoaderClass(TomcatEmbeddedWebappClassLoader.class.getName());