继承handlerInterceptor的拦截器
@Component
public class LoginInterceptor implements HandlerInterceptor {
@Override
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
User user = (User) request.getSession().getAttribute("user");
if (user == null || user.getUsername() == null || user.getUsername().equals("")) {
response.sendRedirect("/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 {
}
}
配置
@Configuration
public class WebMvcConfig implements WebMvcConfigurer {
private final String dirName = System.getProperty("user.dir") + "\\images\\car\\";
private final LoginInterceptor loginInterceptor;
private final Logger logger = LoggerFactory.getLogger(FileService.class);
public WebMvcConfig(LoginInterceptor loginInterceptor) {
this.loginInterceptor = loginInterceptor;
}
@Override
public void addResourceHandlers(ResourceHandlerRegistry registry) {
String dir = dirName.replace("\\", "/");
logger.info(dir);
registry.addResourceHandler("/img/car/**")
.addResourceLocations("file:///" + dir);
}
@Override
public void addInterceptors(InterceptorRegistry registry) {
registry.addInterceptor(loginInterceptor)
.excludePathPatterns("/login") //不拦截的
.excludePathPatterns("/dist/**")
.excludePathPatterns("classpath:/static/**")
.excludePathPatterns("/carinfo/up").excludePathPatterns("/carinfo/upb")
.addPathPatterns("/**");
}
}