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;
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<CorsFilter> defaultCorsFilter(UrlBasedCorsConfigurationSource configurationSource) {
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;
@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
......
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