LoginIntercepter
@Slf4j
public class LoginIntercepter implements HandlerInterceptor {
@Override
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
String requestURI = request.getRequestURI();
log.info("拦截的请求路径是"+requestURI);
HttpSession session = request.getSession();
Object loginUser = session.getAttribute("loginUser");
if (loginUser==null){
request.setAttribute("msg","请先登录");
request.getRequestDispatcher("/").forward(request,response);
return false;
}else {
return true;
}
}
}
implements WebMvcConfigurer
@Configuration
public class AdminWebConfig implements WebMvcConfigurer {
@Override
public void addInterceptors(InterceptorRegistry registry) {
registry.addInterceptor(new LoginIntercepter())
.addPathPatterns("/*")
.excludePathPatterns("/","/login");
}
}
页面登录逻辑
@Controller
public class IndexController {
@PostMapping("/login")
public String main(User user, HttpSession session, Model model){
if (StringUtils.hasText(user.getUsername())&&"123456".equals(user.getPassword())){
session.setAttribute("loginUser",user.getUsername());
return "redirect:/main";
}else {
model.addAttribute("msg","用户名或密码错误");
return "index";
}
}
@RequestMapping("/main")
public String mainPage(HttpSession session,Model model){
return "dashboard";
}
}