diff --git a/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/security/SecurityFilterAutoConfiguration.java b/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/security/SecurityFilterAutoConfiguration.java index 3657cad59b..6675118b59 100644 --- a/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/security/SecurityFilterAutoConfiguration.java +++ b/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/security/SecurityFilterAutoConfiguration.java @@ -16,6 +16,12 @@ package org.springframework.boot.autoconfigure.security; +import java.util.EnumSet; +import java.util.HashSet; +import java.util.Set; + +import javax.servlet.DispatcherType; + import org.springframework.boot.autoconfigure.AutoConfigureAfter; import org.springframework.boot.autoconfigure.EnableAutoConfiguration; import org.springframework.boot.autoconfigure.condition.ConditionalOnBean; @@ -54,8 +60,17 @@ public class SecurityFilterAutoConfiguration { DelegatingFilterProxyRegistrationBean registration = new DelegatingFilterProxyRegistrationBean( DEFAULT_FILTER_NAME); registration.setOrder(securityProperties.getFilterOrder()); - registration.setDispatcherTypes(securityProperties.getFilterDispatcherTypes()); + registration.setDispatcherTypes(getDispatcherTypes(securityProperties)); return registration; } + private EnumSet getDispatcherTypes( + SecurityProperties securityProperties) { + Set dispatcherTypes = new HashSet(); + for (String dispatcherType : securityProperties.getFilterDispatcherTypes()) { + dispatcherTypes.add(DispatcherType.valueOf(dispatcherType)); + } + return EnumSet.copyOf(dispatcherTypes); + } + } diff --git a/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/security/SecurityProperties.java b/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/security/SecurityProperties.java index 48f766f955..78dd4e8c14 100644 --- a/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/security/SecurityProperties.java +++ b/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/security/SecurityProperties.java @@ -18,12 +18,10 @@ package org.springframework.boot.autoconfigure.security; import java.util.ArrayList; import java.util.Arrays; -import java.util.EnumSet; import java.util.List; +import java.util.Set; import java.util.UUID; -import javax.servlet.DispatcherType; - import org.springframework.boot.context.embedded.FilterRegistrationBean; import org.springframework.boot.context.properties.ConfigurationProperties; import org.springframework.core.Ordered; @@ -104,7 +102,7 @@ public class SecurityProperties implements SecurityPrerequisite { /** * Security filter chain dispatcher types. */ - private EnumSet filterDispatcherTypes; + private Set filterDispatcherTypes; public Headers getHeaders() { return this.headers; @@ -162,11 +160,11 @@ public class SecurityProperties implements SecurityPrerequisite { this.filterOrder = filterOrder; } - public EnumSet getFilterDispatcherTypes() { + public Set getFilterDispatcherTypes() { return this.filterDispatcherTypes; } - public void setFilterDispatcherTypes(EnumSet filterDispatcherTypes) { + public void setFilterDispatcherTypes(Set filterDispatcherTypes) { this.filterDispatcherTypes = filterDispatcherTypes; }