import com.oigit.imsapi.common.WebInterceptor;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.servlet.config.annotation.CorsRegistry;
import org.springframework.web.servlet.config.annotation.InterceptorRegistry;
import org.springframework.web.servlet.config.annotation.PathMatchConfigurer;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
@Configuration
public class WebConfig implements WebMvcConfigurer {
/**
* 请求路径添加统一前缀
* @param configurer
*/
@Override
public void configurePathMatch(PathMatchConfigurer configurer) {
//注解添加
//configurer.addPathPrefix("/imsApi", c -> c.isAnnotationPresent(Controller.class) || c.isAnnotationPresent(RestController.class));
//包添加
configurer.addPathPrefix("/robotApi", c -> c.getPackage().getName().contains("com.xxx.xxx.action"));
}
@Bean
public WebInterceptor getInstance(){
return new WebInterceptor();
}
/**
* 拦截器
* @param registry
*/
@Override
public void addInterceptors(InterceptorRegistry registry) {
registry.addInterceptor(getInstance())
.addPathPatterns("/**")
.excludePathPatterns("/imsApi/login/**");
}
/**
* 跨域支持
* @param registry
*/
@Override
public void addCorsMappings(CorsRegistry registry) {
registry.addMapping("/**")
.allowCredentials(true)
.allowedHeaders("*")
.allowedOrigins("*")
.allowedMethods("*")
.maxAge(3600);
}
}