package com.ruoyi.framework.config; 
 | 
  
 | 
import org.springframework.beans.factory.annotation.Autowired; 
 | 
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.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/"); 
 | 
    } 
 | 
  
 | 
    /** 
 | 
     * 自定义拦截规则 
 | 
     */ 
 | 
    @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); 
 | 
    } 
 | 
} 
 |