【问题标题】:jetty with spring MVC session.isNew() returns always false带有 spring MVC session.isNew() 的码头总是返回 false
【发布时间】:2016-02-07 15:40:54
【问题描述】:

我正在使用 Spring MVC 和 Spring Security 运行 Jetty 9.3。我的主页被 JSP 中的 Spring Security 登录页面拦截。问题在于我的 SessionTimeoutIntercepter 在会话超时的情况下应该重定向。会话超时时我想做什么 - 使用“会话已过期”之类的参数重定向到 Spring Security 登录页面。问题是我使用的 session.isNew() 总是返回 false((( 我尝试映射到 *"/**"* - 相同的结果。即使在我第一次请求服务器和登录页面 - 此函数返回 false(((有人可以帮我解释为什么吗?

【问题讨论】:

    标签: spring spring-mvc spring-security jetty


    【解决方案1】:

    我认为,有些人可能会做类似的事情

    Session session = request.getSession();
    if(session.isNew()) {
        //doSmth
    }
    

    但是 getSession() 方法返回新会话,如果它还不存在的话。您需要 getSession(false) - 它不创建新会话,如果它不存在则返回 null 或返回超时过期的旧会话。 在您的情况下,您可以向拦截器添加一些逻辑

    Session session = request.getSession(false);
    if(session == null || session.isNew() {
        // do redirect
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-06-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-10-28
      • 2021-06-24
      • 2011-05-07
      • 1970-01-01
      相关资源
      最近更新 更多