Spring Security redirect to previous page after successful login

前端 未结 9 1180
孤独总比滥情好
孤独总比滥情好 2020-11-27 10:09

I know this question has been asked before, however I\'m facing a particular issue here.

I use spring security 3.1.3.

I have 3 possible login cases in my web

9条回答
  •  半阙折子戏
    2020-11-27 10:36

    I have following solution and it worked for me.

    Whenever login page is requested, write the referer value to the session:

    @RequestMapping(value="/login", method = RequestMethod.GET)
    public String login(ModelMap model,HttpServletRequest request) {
    
        String referrer = request.getHeader("Referer");
        if(referrer!=null){
            request.getSession().setAttribute("url_prior_login", referrer);
        }
        return "user/login";
    }
    

    Then, after successful login custom implementation of SavedRequestAwareAuthenticationSuccessHandler will redirect user to the previous page:

    HttpSession session = request.getSession(false);
    if (session != null) {
        url = (String) request.getSession().getAttribute("url_prior_login");
    }
    

    Redirect the user:

    if (url != null) {
        response.sendRedirect(url);
    }
    

提交回复
热议问题