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);
}
}