import org.springframework.beans.factory.annotation.Value;
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;
import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurationSupport;
/**
* 通用配置
*
* @author ruoyi
*/
@Configuration
public class ResourcesConfig extends WebMvcConfigurationSupport {
// @Autowired
// private RepeatSubmitInterceptor repeatSubmitInterceptor;
/**
* 是否开启swagger
*/
@Value("${swagger.enabled}")
private boolean swaggerEnable;
@Override
public void addResourceHandlers(ResourceHandlerRegistry registry) {
// /** 本地文件上传路径 */
// registry.addResourceHandler(Constants.RESOURCE_PREFIX + "/**").addResourceLocations("file:" + RuoYiConfig.getProfile() + "/");
// 判断是否启用swagger文档界面,启用则会开放这些资源,让开发者能够访问到
if (swaggerEnable) {
registry.addResourceHandler("/swagger-ui.html")
.addResourceLocations("classpath:/META-INF/resources/");
registry.addResourceHandler("/webjars/**")
.addResourceLocations("classpath:/META-INF/resources/webjars/");
}
super.addResourceHandlers(registry);
}
// /**
// * 自定义拦截规则
// */
// @Override
// public void addInterceptors(InterceptorRegistry registry)
// {
// registry.addInterceptor(repeatSubmitInterceptor).addPathPatterns("/**");
// }
/**
* 跨域配置
*/
@Bean
public CorsFilter corsFilter() {
UrlBasedCorsConfigurationSource source = new UrlBasedCorsConfigurationSource();
CorsConfiguration config = new CorsConfiguration();
config.setAllowCredentials(true);
// 设置访问源地址
config.addAllowedOrigin("*");
// 设置访问源请求头
config.addAllowedHeader("*");
// 设置访问源请求方法
config.addAllowedMethod("*");
// 对接口配置跨域设置
source.registerCorsConfiguration("/**", config);
return new CorsFilter(source);
}
}