package xiaoqu.home.open.config;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.HandlerInterceptor;
import org.springframework.web.servlet.ModelAndView;
import org.springframework.web.servlet.config.annotation.InterceptorRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
 
@Configuration
public class WebMvcConfig implements WebMvcConfigurer {
	@Autowired
	SystemInterceptor systemInterceptor;
    @Override
    public void addInterceptors(InterceptorRegistry registry) {
        registry.addInterceptor(new HandlerInterceptor() {
            @Override
            public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
                String originHeader = ((HttpServletRequest) request).getHeader("Origin");
                response.setHeader("Access-Control-Allow-Origin", originHeader);
    			response.setHeader("Access-Control-Allow-Methods", "POST, GET, OPTIONS, DELETE");
    			response.setHeader("Access-Control-Max-Age", "3600");
    			response.setHeader("Access-Control-Allow-Headers", "Content-Type, Access-Control-Allow-Headers, Authorization, X-Requested-With, uuid, cache-control, timeStamp, signature");
    			response.setHeader("Access-Control-Allow-Credentials", "true");
                return true;
            }
 
            @Override
            public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView) throws Exception {
 
            }
 
            @Override
            public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) throws Exception {
 
            }
        });
        registry.addInterceptor(systemInterceptor);
    }
 
}