package com.mindskip.xzs.configuration.spring.mvc; import com.mindskip.xzs.configuration.property.SystemConfig; import com.mindskip.xzs.configuration.spring.wechat.TokenHandlerInterceptor; import lombok.AllArgsConstructor; import org.springframework.context.annotation.Configuration; import org.springframework.web.servlet.config.annotation.*; import java.util.List; /** * @version 2.2.0 * @description: mvc配置 * Copyright (C), 2020-2021, 武汉思维跳跃科技有限公司 * @date 2021 /9/7 9:45 */ @Configuration @AllArgsConstructor public class WebMvcConfiguration extends WebMvcConfigurationSupport { private final TokenHandlerInterceptor tokenHandlerInterceptor; private final SystemConfig systemConfig; /** * 资源路径配置 * * @param registry */ @Override public void addResourceHandlers(ResourceHandlerRegistry registry) { registry.addResourceHandler("/resource/**") .addResourceLocations(String.format("file:%s", systemConfig.getLocalStore().getResource())); super.addResourceHandlers(registry); } /** * 拦截器配置 * * @param registry */ @Override public void addInterceptors(InterceptorRegistry registry) { List securityIgnoreUrls = systemConfig.getWechat().getSecurityIgnoreUrls(); String[] ignores = new String[securityIgnoreUrls.size()]; registry.addInterceptor(tokenHandlerInterceptor) .addPathPatterns("/api/wx/**") .excludePathPatterns(securityIgnoreUrls.toArray(ignores)); super.addInterceptors(registry); } /** * 跨域配置 * * @param registry */ @Override public void addCorsMappings(CorsRegistry registry) { registry.addMapping("/**") .allowCredentials(true) .allowedMethods("*") .allowedOrigins("*") .allowedHeaders("*"); super.addCorsMappings(registry); } }