Commit af14ee63 authored by liaozan's avatar liaozan 🏀

Update CorsFilterConfiguration to make sure corsFilter has the HIGHEST_PRECEDENCE

parent d2d6c448
package com.schbrain.common.web; package com.schbrain.common.web;
import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean; 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.Bean;
import org.springframework.context.annotation.Configuration; 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 org.springframework.web.filter.CorsFilter;
import java.time.Duration; import java.time.Duration;
...@@ -13,7 +17,7 @@ import java.time.Duration; ...@@ -13,7 +17,7 @@ import java.time.Duration;
* @since 2023-06-26 * @since 2023-06-26
*/ */
@Configuration(proxyBeanMethods = false) @Configuration(proxyBeanMethods = false)
public class DefaultCorsConfiguration { public class CorsFilterConfiguration {
@Bean @Bean
@ConditionalOnMissingBean @ConditionalOnMissingBean
...@@ -37,9 +41,12 @@ public class DefaultCorsConfiguration { ...@@ -37,9 +41,12 @@ public class DefaultCorsConfiguration {
} }
@Bean @Bean
@ConditionalOnMissingBean @ConditionalOnMissingFilterBean
public CorsFilter defaultCorsFilter(UrlBasedCorsConfigurationSource corsConfigurationSource) { public FilterRegistrationBean<CorsFilter> defaultCorsFilter(UrlBasedCorsConfigurationSource configurationSource) {
return new CorsFilter(corsConfigurationSource); FilterRegistrationBean<CorsFilter> registrationBean = new FilterRegistrationBean<>();
registrationBean.setFilter(new CorsFilter(configurationSource));
registrationBean.setOrder(Ordered.HIGHEST_PRECEDENCE);
return registrationBean;
} }
} }
\ No newline at end of file
...@@ -23,7 +23,7 @@ import java.util.List; ...@@ -23,7 +23,7 @@ import java.util.List;
@AutoConfiguration @AutoConfiguration
@ConditionalOnWebApplication(type = Type.SERVLET) @ConditionalOnWebApplication(type = Type.SERVLET)
@EnableConfigurationProperties(WebProperties.class) @EnableConfigurationProperties(WebProperties.class)
@Import({AuthenticationConfiguration.class, ExceptionHandingConfiguration.class, ServletComponentConfiguration.class, DefaultCorsConfiguration.class}) @Import({AuthenticationConfiguration.class, ExceptionHandingConfiguration.class, ServletComponentConfiguration.class, CorsFilterConfiguration.class})
public class WebCommonAutoConfiguration { public class WebCommonAutoConfiguration {
@Bean @Bean
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment