package com.zy.acs.hex.config;
|
|
import org.springframework.context.annotation.Bean;
|
import org.springframework.context.annotation.Configuration;
|
import org.springframework.web.servlet.AsyncHandlerInterceptor;
|
import org.springframework.web.servlet.config.annotation.CorsRegistry;
|
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 javax.servlet.http.HttpServletRequest;
|
import javax.servlet.http.HttpServletResponse;
|
|
/**
|
* WebMvc配置, 拦截器、资源映射等都在此配置
|
*
|
* @author vincent
|
* @since 2019-06-12 10:11:16
|
*/
|
@Configuration
|
public class WebMvcConfig implements WebMvcConfigurer {
|
|
/**
|
* token通过header传递的名称
|
*/
|
public static final String TOKEN_HEADER_NAME = "Authorization";
|
|
|
@Override
|
public void addInterceptors(InterceptorRegistry registry) {
|
registry.addInterceptor(getAsyncHandlerInterceptor())
|
.addPathPatterns("/**")
|
;
|
}
|
|
|
@Bean
|
public AsyncHandlerInterceptor getAsyncHandlerInterceptor() {
|
return new AsyncHandlerInterceptor(){
|
@Override
|
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
|
cors(response);
|
return true;
|
}
|
};
|
}
|
|
|
|
@Override
|
public void addResourceHandlers(ResourceHandlerRegistry registry) {
|
// 配置静态资源处理器
|
registry.addResourceHandler("/static/**")
|
.addResourceLocations("/static/");
|
// 配置视图文件处理器
|
registry.addResourceHandler("/views/**")
|
.addResourceLocations("/views/");
|
}
|
|
public static void cors(HttpServletResponse response){
|
// 跨域设置
|
response.setHeader("Access-Control-Max-Age", "3600");
|
response.setHeader("Access-Control-Allow-Origin", "*");
|
response.setHeader("Access-Control-Allow-Methods", "*");
|
response.setHeader("Access-Control-Allow-Headers", "*");
|
response.setHeader("Access-Control-Expose-Headers", TOKEN_HEADER_NAME);
|
}
|
|
}
|