| package com.ruoyi.framework.config; | 
|   | 
| import java.util.concurrent.TimeUnit; | 
| import org.springframework.beans.factory.annotation.Autowired; | 
| import org.springframework.context.annotation.Bean; | 
| import org.springframework.context.annotation.Configuration; | 
| import org.springframework.http.CacheControl; | 
| 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.InterceptorRegistry; | 
| import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry; | 
| import org.springframework.web.servlet.config.annotation.WebMvcConfigurer; | 
| import com.ruoyi.common.config.RuoYiConfig; | 
| import com.ruoyi.common.constant.Constants; | 
| import com.ruoyi.framework.interceptor.RepeatSubmitInterceptor; | 
|   | 
| /** | 
|  * 通用配置 | 
|  *  | 
|  * @author ruoyi | 
|  */ | 
| @Configuration | 
| public class ResourcesConfig implements WebMvcConfigurer | 
| { | 
|     @Autowired | 
|     private RepeatSubmitInterceptor repeatSubmitInterceptor; | 
|   | 
|     @Override | 
|     public void addResourceHandlers(ResourceHandlerRegistry registry) | 
|     { | 
|         /** 本地文件上传路径 */ | 
|         registry.addResourceHandler(Constants.RESOURCE_PREFIX + "/**") | 
|                 .addResourceLocations("file:" + RuoYiConfig.getProfile() + "/"); | 
|   | 
|         /** swagger配置 */ | 
|         registry.addResourceHandler("/swagger-ui/**") | 
|                 .addResourceLocations("classpath:/META-INF/resources/webjars/springfox-swagger-ui/") | 
|                 .setCacheControl(CacheControl.maxAge(5, TimeUnit.HOURS).cachePublic());; | 
|     } | 
|   | 
|     /** | 
|      * 自定义拦截规则 | 
|      */ | 
|     @Override | 
|     public void addInterceptors(InterceptorRegistry registry) | 
|     { | 
|         registry.addInterceptor(repeatSubmitInterceptor).addPathPatterns("/**"); | 
|     } | 
|   | 
|     /** | 
|      * 跨域配置 | 
|      */ | 
|     @Bean | 
|     public CorsFilter corsFilter() | 
|     { | 
|         CorsConfiguration config = new CorsConfiguration(); | 
|         config.setAllowCredentials(true); | 
|         // 设置访问源地址 | 
|         config.addAllowedOriginPattern("*"); | 
|         // 设置访问源请求头 | 
|         config.addAllowedHeader("*"); | 
|         // 设置访问源请求方法 | 
|         config.addAllowedMethod("*"); | 
|         // 有效期 1800秒 | 
|         config.setMaxAge(1800L); | 
|         // 添加映射路径,拦截一切请求 | 
|         UrlBasedCorsConfigurationSource source = new UrlBasedCorsConfigurationSource(); | 
|         source.registerCorsConfiguration("/**", config); | 
|         // 返回新的CorsFilter | 
|         return new CorsFilter(source); | 
|     } | 
| } |