| | |
| | | package com.mindskip.xzs.configuration.spring.mvc; |
| | | |
| | | import com.mindskip.xzs.configuration.RuoYiConfig; |
| | | import com.mindskip.xzs.configuration.property.SystemConfig; |
| | | import com.mindskip.xzs.configuration.spring.wx.TokenHandlerInterceptor; |
| | | import com.mindskip.xzs.utility.Constants; |
| | | import lombok.RequiredArgsConstructor; |
| | | 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.*; |
| | | |
| | | import java.io.File; |
| | | import java.util.List; |
| | | |
| | | |
| | |
| | | * @date 2021/12/25 9:45 |
| | | */ |
| | | @Configuration |
| | | @RequiredArgsConstructor |
| | | public class WebMvcConfiguration extends WebMvcConfigurationSupport { |
| | | |
| | | private final TokenHandlerInterceptor tokenHandlerInterceptor; |
| | | private final SystemConfig systemConfig; |
| | | private final RuoYiConfig ruoYiConfig; |
| | | |
| | | /** |
| | | * Instantiates a new Web mvc configuration. |
| | | * |
| | | * @param tokenHandlerInterceptor the token handler interceptor |
| | | * @param systemConfig the system config |
| | | */ |
| | | @Autowired |
| | | public WebMvcConfiguration(TokenHandlerInterceptor tokenHandlerInterceptor, SystemConfig systemConfig) { |
| | | this.tokenHandlerInterceptor = tokenHandlerInterceptor; |
| | | this.systemConfig = systemConfig; |
| | | } |
| | | |
| | | @Override |
| | | public void addViewControllers(ViewControllerRegistry registry) { |
| | |
| | | |
| | | @Override |
| | | public void addResourceHandlers(ResourceHandlerRegistry registry) { |
| | | registry.addResourceHandler("/**") |
| | | .addResourceLocations("classpath:/static/") |
| | | registry.addResourceHandler(Constants.RESOURCE_PREFIX + "/**") |
| | | .addResourceLocations("file:" + ruoYiConfig.getUrl() + File.separator) |
| | | .setCachePeriod(31556926); |
| | | registry.addResourceHandler("swagger-ui.html") |
| | | .addResourceLocations("classpath:/META-INF/resources/"); |
| | |
| | | super.addInterceptors(registry); |
| | | } |
| | | |
| | | @Override |
| | | public void addCorsMappings(CorsRegistry registry) { |
| | | registry.addMapping("/**") |
| | | .allowCredentials(true) |
| | | .allowedMethods("*") |
| | | .allowedOrigins("*") |
| | | .allowedHeaders("*"); |
| | | super.addCorsMappings(registry); |
| | | /** |
| | | * 跨域配置 |
| | | */ |
| | | @Bean |
| | | public CorsFilter corsFilter() |
| | | { |
| | | CorsConfiguration config = new CorsConfiguration(); |
| | | config.setAllowCredentials(true); |
| | | // 设置访问源地址 |
| | | config.addAllowedOrigin("*"); |
| | | // 设置访问源请求头 |
| | | config.addAllowedHeader("*"); |
| | | // 设置访问源请求方法 |
| | | config.addAllowedMethod("*"); |
| | | // 有效期 1800秒 |
| | | config.setMaxAge(1800L); |
| | | // 添加映射路径,拦截一切请求 |
| | | UrlBasedCorsConfigurationSource source = new UrlBasedCorsConfigurationSource(); |
| | | source.registerCorsConfiguration("/**", config); |
| | | // 返回新的CorsFilter |
| | | return new CorsFilter(source); |
| | | } |
| | | |
| | | } |