|
16 | 16 |
|
17 | 17 | package org.springframework.boot.web.servlet;
|
18 | 18 |
|
| 19 | +import java.util.EnumSet; |
| 20 | + |
19 | 21 | import jakarta.servlet.DispatcherType;
|
20 | 22 | import jakarta.servlet.Filter;
|
21 | 23 | import jakarta.servlet.FilterChain;
|
|
24 | 26 | import jakarta.servlet.ServletRequest;
|
25 | 27 | import jakarta.servlet.ServletResponse;
|
26 | 28 | import jakarta.servlet.http.HttpServlet;
|
| 29 | +import jakarta.servlet.http.HttpServletRequest; |
| 30 | +import jakarta.servlet.http.HttpServletResponse; |
27 | 31 | import jakarta.servlet.http.HttpSessionIdListener;
|
28 | 32 | import org.assertj.core.api.ThrowingConsumer;
|
29 | 33 | import org.junit.jupiter.api.Test;
|
|
34 | 38 | import org.springframework.context.annotation.Configuration;
|
35 | 39 | import org.springframework.core.Ordered;
|
36 | 40 | import org.springframework.core.annotation.Order;
|
| 41 | +import org.springframework.web.filter.OncePerRequestFilter; |
37 | 42 |
|
38 | 43 | import static org.assertj.core.api.Assertions.assertThat;
|
39 | 44 |
|
@@ -139,6 +144,17 @@ void shouldApplyFilterRegistrationAnnotation() {
|
139 | 144 | });
|
140 | 145 | }
|
141 | 146 |
|
| 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 | + |
142 | 158 | @Test
|
143 | 159 | void shouldApplyOrderFromBean() {
|
144 | 160 | load(OrderedServletConfiguration.class);
|
@@ -287,6 +303,26 @@ TestFilter testFilter() {
|
287 | 303 |
|
288 | 304 | }
|
289 | 305 |
|
| 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 | + |
290 | 326 | @Configuration(proxyBeanMethods = false)
|
291 | 327 | static class MultipleInterfacesConfiguration {
|
292 | 328 |
|
|
0 commit comments