Skip to content

Commit 62e145e

Browse files
committed
Add test for dispatcher types behavior
See gh-16500
1 parent d546069 commit 62e145e

File tree

1 file changed

+36
-0
lines changed

1 file changed

+36
-0
lines changed

Diff for: spring-boot-project/spring-boot/src/test/java/org/springframework/boot/web/servlet/ServletContextInitializerBeansTests.java

+36
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,8 @@
1616

1717
package org.springframework.boot.web.servlet;
1818

19+
import java.util.EnumSet;
20+
1921
import jakarta.servlet.DispatcherType;
2022
import jakarta.servlet.Filter;
2123
import jakarta.servlet.FilterChain;
@@ -24,6 +26,8 @@
2426
import jakarta.servlet.ServletRequest;
2527
import jakarta.servlet.ServletResponse;
2628
import jakarta.servlet.http.HttpServlet;
29+
import jakarta.servlet.http.HttpServletRequest;
30+
import jakarta.servlet.http.HttpServletResponse;
2731
import jakarta.servlet.http.HttpSessionIdListener;
2832
import org.assertj.core.api.ThrowingConsumer;
2933
import org.junit.jupiter.api.Test;
@@ -34,6 +38,7 @@
3438
import org.springframework.context.annotation.Configuration;
3539
import org.springframework.core.Ordered;
3640
import org.springframework.core.annotation.Order;
41+
import org.springframework.web.filter.OncePerRequestFilter;
3742

3843
import static org.assertj.core.api.Assertions.assertThat;
3944

@@ -139,6 +144,17 @@ void shouldApplyFilterRegistrationAnnotation() {
139144
});
140145
}
141146

147+
@Test
148+
@SuppressWarnings("unchecked")
149+
void shouldApplyFilterRegistrationAnnotationWithDefaultDispatcherTypes() {
150+
load(FilterConfigurationWithAnnotationAndDefaultDispatcherTypes.class);
151+
ServletContextInitializerBeans initializerBeans = new ServletContextInitializerBeans(
152+
this.context.getBeanFactory(), TestServletContextInitializer.class);
153+
assertThatSingleRegistration(initializerBeans, FilterRegistrationBean.class,
154+
(filterRegistrationBean) -> assertThat(filterRegistrationBean.determineDispatcherTypes())
155+
.containsExactlyElementsOf(EnumSet.allOf(DispatcherType.class)));
156+
}
157+
142158
@Test
143159
void shouldApplyOrderFromBean() {
144160
load(OrderedServletConfiguration.class);
@@ -287,6 +303,26 @@ TestFilter testFilter() {
287303

288304
}
289305

306+
@Configuration(proxyBeanMethods = false)
307+
static class FilterConfigurationWithAnnotationAndDefaultDispatcherTypes {
308+
309+
@Bean
310+
@FilterRegistration(name = "test")
311+
TestOncePerRequestFilter testFilter() {
312+
return new TestOncePerRequestFilter();
313+
}
314+
315+
static class TestOncePerRequestFilter extends OncePerRequestFilter {
316+
317+
@Override
318+
protected void doFilterInternal(HttpServletRequest request, HttpServletResponse response,
319+
FilterChain filterChain) {
320+
}
321+
322+
}
323+
324+
}
325+
290326
@Configuration(proxyBeanMethods = false)
291327
static class MultipleInterfacesConfiguration {
292328

0 commit comments

Comments
 (0)