package com.cn.config;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Component;
import org.springframework.web.servlet.ModelAndView;
import org.springframework.web.servlet.handler.HandlerInterceptorAdapter;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
@Component
@Slf4j
public class CustomInterceptor extends HandlerInterceptorAdapter {
public CustomInterceptor() {
super();
}
@Override
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
boolean flag = true;
String userId = (String) request.getSession().getAttribute("userId");
log.info("session过期时间:{}",request.getSession().getMaxInactiveInterval());
if(userId==null){
log.info(request.getServletPath());
response.sendRedirect(request.getContextPath()+"/login");
flag=false;
}
return flag;
}
@Override
public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView) throws Exception {
super.postHandle(request, response, handler, modelAndView);
}
@Override
public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) throws Exception {
super.afterCompletion(request, response, handler, ex);
}
@Override
public void afterConcurrentHandlingStarted(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
super.afterConcurrentHandlingStarted(request, response, handler);
}
}
package com.cn.config;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.InterceptorRegistration;
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 java.io.File;
@Configuration
public class MyWebAppConfigurer implements WebMvcConfigurer {
/**
* 添加拦截规则
*/
@Override
public void addInterceptors(InterceptorRegistry registry) {
InterceptorRegistration registration = registry.addInterceptor(new CustomInterceptor());
registration.addPathPatterns("/**");
registration.excludePathPatterns(
"/**/*.ico",
"/**/*.js",
"/**/*.css",
"/**/*.woff",
"/**/*.ttf",
"/**/*.png",
"/**/*.jpg",
"/**/*.gif",
"/login",
"/userLogin",
"/user/userNameCheck",
"/user/getSecretKeyJson",
"/user/userRegister",
"/userRegister_page",
"/login_page"
);
}
/**
* 解决浏览器缓存资源文件问题采用md5版本号
* 资源映射路径
* @param registry
*/
@Override
public void addResourceHandlers(ResourceHandlerRegistry registry) {
VersionResourceResolver versionResourceResolver = new VersionResourceResolver().addVersionStrategy(new ContentVersionStrategy(), "/**");
registry.addResourceHandler("/downloadFile/**").addResourceLocations("file:" + System.getProperty("user.dir") + File.separator + "downloadFile" + File.separator);
registry.addResourceHandler("/**").addResourceLocations("classpath:/static/").setCachePeriod(2592000).resourceChain(true).addResolver(versionResourceResolver);
}
}