1、创建实现类实现 HandlerInterceptor 接口:
public class UserInterceptor implements HandlerInterceptor {
@Override
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
User sessionUser = (User) request.getSession().getAttribute(Constants.SESSION_USER);
if(!ObjectUtils.allNotNull(sessionUser)){
response.sendRedirect(request.getContextPath() + "loan/page/login");
return false;
}
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 {
}
}
2、创建一个类实现 WebMvcConfigurer 接口 (注意:在该类上要加 @Configuration 注解):
@Configuration
public class SystemConfig implements WebMvcConfigurer {
@Override
public void addInterceptors(InterceptorRegistry registry) {
String[] addPathPatterns = {"/loan/**"};
String[] excludePathPatterns ={ //不拦截的请求
"/loan/page/register",
"/loan/checkPhone",
"/loan/register",
"/loan/messageCode",
"/loan/page/login",
"/loan/login"
};
registry.addInterceptor(new UserInterceptor())
.excludePathPatterns(excludePathPatterns)
.addPathPatterns(addPathPatterns);
}
}