package com.zrgk.yfs.framework.config;
import org.springframework.boot.web.servlet.FilterRegistrationBean;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.cors.CorsConfiguration;
import org.springframework.web.cors.UrlBasedCorsConfigurationSource;
import org.springframework.web.filter.CorsFilter;
/**
* @Description :
* 跨域配置(用戶前端聯調使用)
*
* @Date 2020/7/2 10:17
**/
@Configuration
public class MyConfiguration {
/**
* 跨域
*
* @return
*/
@Bean
public FilterRegistrationBean<CorsFilter> corsFilter() {
UrlBasedCorsConfigurationSource source = new UrlBasedCorsConfigurationSource();
CorsConfiguration config = new CorsConfiguration();
config.setAllowCredentials(true);
config.addAllowedOrigin("*");
config.addAllowedHeader("*");
config.addAllowedMethod("*");
config.addExposedHeader("Authorization");
config.setMaxAge(60 * 60 * 24L);
source.registerCorsConfiguration("/**", config);
FilterRegistrationBean<CorsFilter> bean = new FilterRegistrationBean<CorsFilter>(new CorsFilter(source));
bean.setOrder(FilterRegistrationBean.HIGHEST_PRECEDENCE);
return bean;
}
}
備註::
添加完上述的跨域配置後還是不生效,最後查詢到問題是過濾器加載順序問題。需要將此跨域配置放在最前面。