From 65de53066d8f8afdef42b52bd98f63549b92daeb Mon Sep 17 00:00:00 2001 From: Moritz Halbritter Date: Thu, 10 Apr 2025 12:21:32 +0200 Subject: [PATCH] Polish "Add missing attributes to FilterRegistration annotation" See gh-45005 --- .../boot/web/servlet/FilterRegistration.java | 6 +++--- .../servlet/ServletContextInitializerBeans.java | 3 +-- .../ServletContextInitializerBeansTests.java | 16 ++++++++-------- 3 files changed, 12 insertions(+), 13 deletions(-) diff --git a/spring-boot-project/spring-boot/src/main/java/org/springframework/boot/web/servlet/FilterRegistration.java b/spring-boot-project/spring-boot/src/main/java/org/springframework/boot/web/servlet/FilterRegistration.java index fdb4916b82..83ca5b2bc8 100644 --- a/spring-boot-project/spring-boot/src/main/java/org/springframework/boot/web/servlet/FilterRegistration.java +++ b/spring-boot-project/spring-boot/src/main/java/org/springframework/boot/web/servlet/FilterRegistration.java @@ -104,10 +104,10 @@ public @interface FilterRegistration { String[] servletNames() default {}; /** - * Servlet types that the filter will be registered against. - * @return the servlet types + * Servlet classes that the filter will be registered against. + * @return the servlet classes */ - Class[] servletRegistrationBeans() default {}; + Class[] servletClasses() default {}; /** * URL patterns, as defined in the Servlet specification, that the filter will be diff --git a/spring-boot-project/spring-boot/src/main/java/org/springframework/boot/web/servlet/ServletContextInitializerBeans.java b/spring-boot-project/spring-boot/src/main/java/org/springframework/boot/web/servlet/ServletContextInitializerBeans.java index 5d2d03cb46..84642aff41 100644 --- a/spring-boot-project/spring-boot/src/main/java/org/springframework/boot/web/servlet/ServletContextInitializerBeans.java +++ b/spring-boot-project/spring-boot/src/main/java/org/springframework/boot/web/servlet/ServletContextInitializerBeans.java @@ -367,9 +367,8 @@ public class ServletContextInitializerBeans extends AbstractCollection { - for (Class servletClass : registration.servletRegistrationBeans()) { + for (Class servletClass : registration.servletClasses()) { if (servletClass.isInstance(servletRegistrationBean.getServlet())) { bean.addServletRegistrationBeans(servletRegistrationBean); } diff --git a/spring-boot-project/spring-boot/src/test/java/org/springframework/boot/web/servlet/ServletContextInitializerBeansTests.java b/spring-boot-project/spring-boot/src/test/java/org/springframework/boot/web/servlet/ServletContextInitializerBeansTests.java index 44c03bbdca..00186098e8 100644 --- a/spring-boot-project/spring-boot/src/test/java/org/springframework/boot/web/servlet/ServletContextInitializerBeansTests.java +++ b/spring-boot-project/spring-boot/src/test/java/org/springframework/boot/web/servlet/ServletContextInitializerBeansTests.java @@ -18,6 +18,7 @@ package org.springframework.boot.web.servlet; import java.util.Collection; import java.util.EnumSet; +import java.util.Map; import jakarta.servlet.DispatcherType; import jakarta.servlet.Filter; @@ -144,8 +145,8 @@ class ServletContextInitializerBeansTests { assertThat(filterRegistrationBean.getServletNames()).containsExactly("test"); assertThat(filterRegistrationBean.determineDispatcherTypes()).containsExactly(DispatcherType.ERROR); assertThat(filterRegistrationBean.getUrlPatterns()).containsExactly("/test/*"); - assertThat(filterRegistrationBean.getInitParameters()).containsEntry("env", "test") - .containsEntry("debug", "true"); + assertThat(filterRegistrationBean.getInitParameters()) + .containsExactlyInAnyOrderEntriesOf(Map.of("env", "test", "debug", "true")); Collection> servletRegistrationBeans = filterRegistrationBean .getServletRegistrationBeans(); assertThat(servletRegistrationBeans).hasSize(1); @@ -305,12 +306,11 @@ class ServletContextInitializerBeansTests { static class FilterConfigurationWithAnnotation { @Bean - @FilterRegistration(enabled = false, name = "test", asyncSupported = false, - dispatcherTypes = DispatcherType.ERROR, matchAfter = true, servletNames = "test", - urlPatterns = "/test/*", - initParameters = { @WebInitParam(name = "env", value = "test"), - @WebInitParam(name = "debug", value = "true") }, - servletRegistrationBeans = { TestServlet.class }) + @FilterRegistration( + enabled = false, name = "test", asyncSupported = false, dispatcherTypes = DispatcherType.ERROR, + matchAfter = true, servletNames = "test", urlPatterns = "/test/*", initParameters = { + @WebInitParam(name = "env", value = "test"), @WebInitParam(name = "debug", value = "true") }, + servletClasses = { TestServlet.class }) TestFilter testFilter() { return new TestFilter(); }