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
This commit is contained in:
@@ -50,13 +50,6 @@ abstract class AbstractFilterRegistrationBean<T extends Filter> extends Registra
|
||||
|
||||
private final Log logger = LogFactory.getLog(getClass());
|
||||
|
||||
private static final EnumSet<DispatcherType> ASYNC_DISPATCHER_TYPES = EnumSet.of(
|
||||
DispatcherType.FORWARD, DispatcherType.INCLUDE, DispatcherType.REQUEST,
|
||||
DispatcherType.ASYNC);
|
||||
|
||||
private static final EnumSet<DispatcherType> NON_ASYNC_DISPATCHER_TYPES = EnumSet
|
||||
.of(DispatcherType.FORWARD, DispatcherType.INCLUDE, DispatcherType.REQUEST);
|
||||
|
||||
private static final String[] DEFAULT_URL_MAPPINGS = { "/*" };
|
||||
|
||||
private Set<ServletRegistrationBean<?>> servletRegistrationBeans = new LinkedHashSet<ServletRegistrationBean<?>>();
|
||||
@@ -248,8 +241,7 @@ abstract class AbstractFilterRegistrationBean<T extends Filter> extends Registra
|
||||
super.configure(registration);
|
||||
EnumSet<DispatcherType> dispatcherTypes = this.dispatcherTypes;
|
||||
if (dispatcherTypes == null) {
|
||||
dispatcherTypes = (isAsyncSupported() ? ASYNC_DISPATCHER_TYPES
|
||||
: NON_ASYNC_DISPATCHER_TYPES);
|
||||
dispatcherTypes = EnumSet.of(DispatcherType.REQUEST);
|
||||
}
|
||||
Set<String> servletNames = new LinkedHashSet<String>();
|
||||
for (ServletRegistrationBean<?> servletRegistrationBean : this.servletRegistrationBeans) {
|
||||
|
||||
@@ -86,10 +86,6 @@ import static org.mockito.Mockito.withSettings;
|
||||
*/
|
||||
public class EmbeddedWebApplicationContextTests {
|
||||
|
||||
private static final EnumSet<DispatcherType> 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
|
||||
|
||||
@@ -50,13 +50,6 @@ import static org.mockito.Mockito.verify;
|
||||
*/
|
||||
public abstract class AbstractFilterRegistrationBeanTests {
|
||||
|
||||
private static final EnumSet<DispatcherType> ASYNC_DISPATCHER_TYPES = EnumSet.of(
|
||||
DispatcherType.FORWARD, DispatcherType.INCLUDE, DispatcherType.REQUEST,
|
||||
DispatcherType.ASYNC);
|
||||
|
||||
private static final EnumSet<DispatcherType> 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<ServletRegistrationBean<?>>(
|
||||
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
|
||||
|
||||
Reference in New Issue
Block a user