You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
70 lines
2.4 KiB
70 lines
2.4 KiB
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); |
|
} |
|
} |