From f57dae639df1ea1adf890acfa619ccb7495c328b Mon Sep 17 00:00:00 2001 From: Andy Wilkinson Date: Tue, 14 Feb 2017 16:50:49 +0000 Subject: [PATCH] Align default Filter dispatcher types with the Servlet spec The Servlet spec states that the default is REQUEST. This commit aligns Spring Boot with that default. Closes gh-7467 --- .../AbstractFilterRegistrationBean.java | 10 +------- .../EmbeddedWebApplicationContextTests.java | 12 ++++------ .../AbstractFilterRegistrationBeanTests.java | 23 +++++++------------ 3 files changed, 13 insertions(+), 32 deletions(-) diff --git a/spring-boot/src/main/java/org/springframework/boot/web/servlet/AbstractFilterRegistrationBean.java b/spring-boot/src/main/java/org/springframework/boot/web/servlet/AbstractFilterRegistrationBean.java index 0c03bb1df2..7e7b2c8ee5 100644 --- a/spring-boot/src/main/java/org/springframework/boot/web/servlet/AbstractFilterRegistrationBean.java +++ b/spring-boot/src/main/java/org/springframework/boot/web/servlet/AbstractFilterRegistrationBean.java @@ -50,13 +50,6 @@ abstract class AbstractFilterRegistrationBean extends Registra private final Log logger = LogFactory.getLog(getClass()); - private static final EnumSet ASYNC_DISPATCHER_TYPES = EnumSet.of( - DispatcherType.FORWARD, DispatcherType.INCLUDE, DispatcherType.REQUEST, - DispatcherType.ASYNC); - - private static final EnumSet NON_ASYNC_DISPATCHER_TYPES = EnumSet - .of(DispatcherType.FORWARD, DispatcherType.INCLUDE, DispatcherType.REQUEST); - private static final String[] DEFAULT_URL_MAPPINGS = { "/*" }; private Set> servletRegistrationBeans = new LinkedHashSet>(); @@ -248,8 +241,7 @@ abstract class AbstractFilterRegistrationBean extends Registra super.configure(registration); EnumSet dispatcherTypes = this.dispatcherTypes; if (dispatcherTypes == null) { - dispatcherTypes = (isAsyncSupported() ? ASYNC_DISPATCHER_TYPES - : NON_ASYNC_DISPATCHER_TYPES); + dispatcherTypes = EnumSet.of(DispatcherType.REQUEST); } Set servletNames = new LinkedHashSet(); for (ServletRegistrationBean servletRegistrationBean : this.servletRegistrationBeans) { diff --git a/spring-boot/src/test/java/org/springframework/boot/context/embedded/EmbeddedWebApplicationContextTests.java b/spring-boot/src/test/java/org/springframework/boot/context/embedded/EmbeddedWebApplicationContextTests.java index ba0111c8c2..522b1c278c 100644 --- a/spring-boot/src/test/java/org/springframework/boot/context/embedded/EmbeddedWebApplicationContextTests.java +++ b/spring-boot/src/test/java/org/springframework/boot/context/embedded/EmbeddedWebApplicationContextTests.java @@ -86,10 +86,6 @@ import static org.mockito.Mockito.withSettings; */ public class EmbeddedWebApplicationContextTests { - private static final EnumSet ASYNC_DISPATCHER_TYPES = EnumSet.of( - DispatcherType.FORWARD, DispatcherType.INCLUDE, DispatcherType.REQUEST, - DispatcherType.ASYNC); - @Rule public ExpectedException thrown = ExpectedException.none(); @@ -311,10 +307,10 @@ public class EmbeddedWebApplicationContextTests { verify(escf.getRegisteredServlet(0).getRegistration()).addMapping("/"); ordered.verify(escf.getServletContext()).addFilter("filterBean1", filter1); ordered.verify(escf.getServletContext()).addFilter("filterBean2", filter2); - verify(escf.getRegisteredFilter(0).getRegistration()) - .addMappingForUrlPatterns(ASYNC_DISPATCHER_TYPES, false, "/*"); - verify(escf.getRegisteredFilter(1).getRegistration()) - .addMappingForUrlPatterns(ASYNC_DISPATCHER_TYPES, false, "/*"); + verify(escf.getRegisteredFilter(0).getRegistration()).addMappingForUrlPatterns( + EnumSet.of(DispatcherType.REQUEST), false, "/*"); + verify(escf.getRegisteredFilter(1).getRegistration()).addMappingForUrlPatterns( + EnumSet.of(DispatcherType.REQUEST), false, "/*"); } @Test diff --git a/spring-boot/src/test/java/org/springframework/boot/web/servlet/AbstractFilterRegistrationBeanTests.java b/spring-boot/src/test/java/org/springframework/boot/web/servlet/AbstractFilterRegistrationBeanTests.java index e2fd46211f..23ee2a0fea 100644 --- a/spring-boot/src/test/java/org/springframework/boot/web/servlet/AbstractFilterRegistrationBeanTests.java +++ b/spring-boot/src/test/java/org/springframework/boot/web/servlet/AbstractFilterRegistrationBeanTests.java @@ -50,13 +50,6 @@ import static org.mockito.Mockito.verify; */ public abstract class AbstractFilterRegistrationBeanTests { - private static final EnumSet ASYNC_DISPATCHER_TYPES = EnumSet.of( - DispatcherType.FORWARD, DispatcherType.INCLUDE, DispatcherType.REQUEST, - DispatcherType.ASYNC); - - private static final EnumSet NON_ASYNC_DISPATCHER_TYPES = EnumSet - .of(DispatcherType.FORWARD, DispatcherType.INCLUDE, DispatcherType.REQUEST); - @Rule public ExpectedException thrown = ExpectedException.none(); @@ -79,8 +72,8 @@ public abstract class AbstractFilterRegistrationBeanTests { bean.onStartup(this.servletContext); verify(this.servletContext).addFilter(eq("mockFilter"), getExpectedFilter()); verify(this.registration).setAsyncSupported(true); - verify(this.registration).addMappingForUrlPatterns(ASYNC_DISPATCHER_TYPES, false, - "/*"); + verify(this.registration).addMappingForUrlPatterns( + EnumSet.of(DispatcherType.REQUEST), false, "/*"); } @Test @@ -105,10 +98,10 @@ public abstract class AbstractFilterRegistrationBeanTests { expectedInitParameters.put("a", "b"); expectedInitParameters.put("c", "d"); verify(this.registration).setInitParameters(expectedInitParameters); - verify(this.registration).addMappingForUrlPatterns(NON_ASYNC_DISPATCHER_TYPES, - true, "/a", "/b", "/c"); - verify(this.registration).addMappingForServletNames(NON_ASYNC_DISPATCHER_TYPES, - true, "s4", "s5", "s1", "s2", "s3"); + verify(this.registration).addMappingForUrlPatterns( + EnumSet.of(DispatcherType.REQUEST), true, "/a", "/b", "/c"); + verify(this.registration).addMappingForServletNames( + EnumSet.of(DispatcherType.REQUEST), true, "s4", "s5", "s1", "s2", "s3"); } @Test @@ -158,8 +151,8 @@ public abstract class AbstractFilterRegistrationBeanTests { bean.setServletRegistrationBeans(new LinkedHashSet>( Arrays.asList(mockServletRegistration("b")))); bean.onStartup(this.servletContext); - verify(this.registration).addMappingForServletNames(ASYNC_DISPATCHER_TYPES, false, - "b"); + verify(this.registration).addMappingForServletNames( + EnumSet.of(DispatcherType.REQUEST), false, "b"); } @Test