package org.yzh.web.config;
|
|
import org.springframework.boot.web.servlet.FilterRegistrationBean;
|
import org.springframework.context.annotation.Bean;
|
import org.springframework.context.annotation.Configuration;
|
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.servlet.config.annotation.CorsRegistry;
|
import org.springframework.web.servlet.config.annotation.InterceptorRegistry;
|
import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry;
|
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
|
|
/**
|
* @author yezhihao
|
* https://gitee.com/yezhihao/jt808-server
|
*/
|
@Configuration
|
public class WebMvcConfig implements WebMvcConfigurer {
|
|
@Override
|
public void addResourceHandlers(ResourceHandlerRegistry registry) {
|
}
|
|
@Override
|
public void addInterceptors(InterceptorRegistry registry) {
|
}
|
|
@Override
|
public void addCorsMappings(CorsRegistry registry) {
|
registry.addMapping("/**").combine(corsConfig());
|
}
|
|
@Bean
|
public FilterRegistrationBean<CorsFilter> corsFilter() {
|
UrlBasedCorsConfigurationSource source = new UrlBasedCorsConfigurationSource();
|
source.registerCorsConfiguration("/**", corsConfig());
|
|
FilterRegistrationBean<CorsFilter> bean = new FilterRegistrationBean<>(new CorsFilter(source));
|
bean.setOrder(Ordered.HIGHEST_PRECEDENCE);
|
return bean;
|
}
|
|
@Bean
|
public CorsConfiguration corsConfig() {
|
CorsConfiguration config = new CorsConfiguration();
|
config.addAllowedOriginPattern(CorsConfiguration.ALL);
|
config.addAllowedMethod(CorsConfiguration.ALL);
|
config.addAllowedHeader(CorsConfiguration.ALL);
|
config.setAllowCredentials(true);
|
config.setMaxAge(3600L);
|
return config;
|
}
|
}
|