如何在spring MVC中实现Session Tracking?

问题描述 投票:0回答:1

我对spring mvc很新,我必须开发一个基于会话跟踪的Web应用程序,我的应用程序是基于注释的。在我的网络应用程序中,我根据会话中的用户名和角色存在路由每个页面。最初我一直使用HttpSession作为控制器方法的参数,但是很难检查每个请求。我知道春天有很多应用程序级别的安全方法,但我真的无法理解如何使用它们。请建议我一些解决方案,提前帮助谢谢。

用拦截器更新后:

  Controller class

  // Method to showLogin page to user
@RequestMapping(value = "user")
public ModelAndView showLoginToUser(@ModelAttribute("VMFE") VmFeUser VMFE,HttpSession session) {
    System.out.println("@C====>showLoginToUser()===> ");
    ModelAndView view = new ModelAndView();
    //session.setAttribute("user_name", "no_user");
    try {
        view.setViewName("login");
    } catch (Exception e) {
        e.printStackTrace();
    }
    return view;
}

  Interceptor

  public class HelloWorldInterceptor extends HandlerInterceptorAdapter {
   @Override
public boolean preHandle (HttpServletRequest request,
                          HttpServletResponse response,
                          Object handler) throws Exception {
    RequestMapping rm = ((HandlerMethod) handler).getMethodAnnotation(
                        RequestMapping.class);

    boolean alreadyLoggedIn = request.getSession()
                                     .getAttribute("user_name") != null;
    boolean loginPageRequested = rm != null && rm.value().length > 0
                                          && "login".equals(rm.value()[0]);


    if (alreadyLoggedIn && loginPageRequested) {
        //response.sendRedirect(request.getContextPath() + "/app/main-age");
        return false;
    } else if (!alreadyLoggedIn && !loginPageRequested) {
        System.out.println("REDIRECTING===");
        response.sendRedirect(request.getContextPath() + "/user");
        return false;
    }

    return true;
}

}

spring spring-mvc session
1个回答
-1
投票

使用spring security,您可以实现会话跟踪并应用过滤器来验证请求。 Spring安全性非常容易实现。请遵循春季安全教程click here。你也可以检查我的git repo以实现click here。这是一个角度弹簧启动应用程序,我使用Spring安全和JWT进行身份验证和授权。

希望它能帮到你,谢谢。

© www.soinside.com 2019 - 2024. All rights reserved.