diff --git a/commons/web-common/src/main/java/com/schbrain/common/web/DefaultCorsConfiguration.java b/commons/web-common/src/main/java/com/schbrain/common/web/CorsFilterConfiguration.java similarity index 62% rename from commons/web-common/src/main/java/com/schbrain/common/web/DefaultCorsConfiguration.java rename to commons/web-common/src/main/java/com/schbrain/common/web/CorsFilterConfiguration.java index 9ba5e1f3694822ab70df10392b07e22f9f311991..24ede8dbd2ec13dd2df40ef469a549491b6c035b 100644 --- a/commons/web-common/src/main/java/com/schbrain/common/web/DefaultCorsConfiguration.java +++ b/commons/web-common/src/main/java/com/schbrain/common/web/CorsFilterConfiguration.java @@ -1,9 +1,13 @@ package com.schbrain.common.web; import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean; +import org.springframework.boot.autoconfigure.web.servlet.ConditionalOnMissingFilterBean; +import org.springframework.boot.web.servlet.FilterRegistrationBean; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; -import org.springframework.web.cors.*; +import org.springframework.core.Ordered; +import org.springframework.web.cors.CorsConfiguration; +import org.springframework.web.cors.UrlBasedCorsConfigurationSource; import org.springframework.web.filter.CorsFilter; import java.time.Duration; @@ -13,7 +17,7 @@ import java.time.Duration; * @since 2023-06-26 */ @Configuration(proxyBeanMethods = false) -public class DefaultCorsConfiguration { +public class CorsFilterConfiguration { @Bean @ConditionalOnMissingBean @@ -37,9 +41,12 @@ public class DefaultCorsConfiguration { } @Bean - @ConditionalOnMissingBean - public CorsFilter defaultCorsFilter(UrlBasedCorsConfigurationSource corsConfigurationSource) { - return new CorsFilter(corsConfigurationSource); + @ConditionalOnMissingFilterBean + public FilterRegistrationBean defaultCorsFilter(UrlBasedCorsConfigurationSource configurationSource) { + FilterRegistrationBean registrationBean = new FilterRegistrationBean<>(); + registrationBean.setFilter(new CorsFilter(configurationSource)); + registrationBean.setOrder(Ordered.HIGHEST_PRECEDENCE); + return registrationBean; } } \ No newline at end of file diff --git a/commons/web-common/src/main/java/com/schbrain/common/web/WebCommonAutoConfiguration.java b/commons/web-common/src/main/java/com/schbrain/common/web/WebCommonAutoConfiguration.java index a50d46a8b9a672a96e570b75d9b8efa4ac4f4ff7..aef1b8d8539f0baf205688c28fad77b85999f7e8 100644 --- a/commons/web-common/src/main/java/com/schbrain/common/web/WebCommonAutoConfiguration.java +++ b/commons/web-common/src/main/java/com/schbrain/common/web/WebCommonAutoConfiguration.java @@ -23,7 +23,7 @@ import java.util.List; @AutoConfiguration @ConditionalOnWebApplication(type = Type.SERVLET) @EnableConfigurationProperties(WebProperties.class) -@Import({AuthenticationConfiguration.class, ExceptionHandingConfiguration.class, ServletComponentConfiguration.class, DefaultCorsConfiguration.class}) +@Import({AuthenticationConfiguration.class, ExceptionHandingConfiguration.class, ServletComponentConfiguration.class, CorsFilterConfiguration.class}) public class WebCommonAutoConfiguration { @Bean