1、设置拦截资源
public class LoginHandlerIntercepter implements HandlerInterceptor {
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
Object loginUser = request.getSession().getAttribute("loginUser");
if(loginUser==null){
//没有登陆 回到登陆页
request.setAttribute("msg","没有权限请先登陆");
request.getRequestDispatcher("/login.html").forward(request,response);
return false;
}else{
//已经登陆直接放行
return true;
}
}
}
2、加拦截器添加到资源
@Bean public LocaleResolver localeResolver(){ return new MyLocaleResolver(); }
3、设置拦截资源和放行资源
springboot2开始静态资源需要配置放行
@Configuration public class Myconfig implements WebMvcConfigurer { @Override public void addViewControllers(ViewControllerRegistry registry) { // super.addViewControllers(registry); registry.addViewController("/").setViewName("login"); registry.addViewController("/login.html").setViewName("login"); registry.addViewController("/main.html").setViewName("dashboard"); } @Override public void addInterceptors(InterceptorRegistry registry) { //springboot已经做好了静态资源映射,不用处理静态资源 registry.addInterceptor(new LoginHandlerIntercepter()).addPathPatterns("/**").excludePathPatterns("/login.html","/","/user/login","/asserts/**" ,"/webjars/**" ,"/i18n/**" );
} }