首页 > 解决方案 > Spring boot HttpSession中会话超时时自动重定向到登录页面

问题描述

在 Spring 启动应用程序中。当会话超时时,注销用户并重定向到登录页面。当用户再次登录时,导航到上次访问的页面。我正在使用 JDBC HttpSession。请帮我解决这个问题。

@GetMapping("/")
public String home(Model model, HttpSession session) {
    @SuppressWarnings("unchecked")
    List<String> messages = (List<String>) session.getAttribute("MY_SESSION_MESSAGES");

    if (messages == null) {
        messages = new ArrayList<>();
    }
    model.addAttribute("sessionMessages", messages);
    System.out.println("Session Det ------------------" + model.toString());
    return "index";
}

@PostMapping("/persistMessage")
public String persistMessage(@RequestParam("msg") String msg, HttpServletRequest request) {
    @SuppressWarnings("unchecked")
    List<String> msgs = (List<String>) request.getSession().getAttribute("MY_SESSION_MESSAGES");
    if (msgs == null) {
        msgs = new ArrayList<>();
        request.getSession().setAttribute("MY_SESSION_MESSAGES", msgs);
    }
    msgs.add(msg);
    request.getSession().setAttribute("MY_SESSION_MESSAGES", msgs);
    return "redirect:/";
}

@PostMapping("/destroy")
public String destroySession(HttpServletRequest request) {
    request.getSession().invalidate();
    return "logout";
}

标签: javaspring-boothttpsession

解决方案


推荐阅读