public class LoginHandlerInterceptor implements HandlerInterceptor {
@Override
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
Object loginUser = request.getSession().getAttribute("loginUser");
if (loginUser == null){
request.getSession().setAttribute("msg","没有权限,请先登录");
response.sendRedirect(request.getContextPath() + "login.html");
return false;
}else {
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 MyMvcConfig implements WebMvcConfigurer {
/**
* springboot默认static文件夹之外的页面需要通过controller访问(好像是websecurity权限控制)。
* @param registry
*/
@Override
public void addViewControllers(ViewControllerRegistry registry) {
registry.addViewController("/main.html").setViewName("index");
registry.addViewController("welcome/welcome.html").setViewName("welcome/welcome");
registry.addViewController("welcome/welcome1.html").setViewName("welcome/welcome1");
registry.addViewController("member-list.html").setViewName("member/member-list");
registry.addViewController("/").setViewName("login");
registry.addViewController("/login.html").setViewName("login");
}
//拦截器
@Override
public void addInterceptors(InterceptorRegistry registry) {
registry.addInterceptor(new LoginHandlerInterceptor())
.addPathPatterns("/**")
.excludePathPatterns("/","/login.html","/login","/kaptcha.png","/kaptcha","/css/*","/js/**","/images/**","font/**","/lib/**");
}
//自定义国际化生效
@Bean
public LocaleResolver localeResolver(){
return new MyLocaleResolver();
}
}