【问题标题】:How to extend or change the session timeout value i.e. session.maxAge in Play Framework (Java)如何在 Play Framework (Java) 中扩展或更改会话超时值,即 session.maxAge
【发布时间】:2018-10-14 15:57:32
【问题描述】:

我是 Play Framework 的新手,正在研究会话管理。我的要求是,当用户仍在使用应用程序(网页)时,我需要将会话 TimeOut 值更改为某个值。

条件: 如果用户已登录,则超时值为 30 分钟。用户正在使用同一个应用程序,会话应在 30 分钟的间隔时间后过期。由于会话超时为 30 分钟,它即将到期并将用户发送到登录页面。我想要一种处理会话的方法,以便当用户访问应用程序并且会话接近结束时。我想将值更改为加倍。这样用户就可以使用相同的会话。

这是我设置的默认值

###session timeout is 30 minutes (1800000 Milliseconds) play.http.session.maxAge = 1800000

我正在使用以下方式在使用 Java 的 Play Framework 中检查会话验证。请找到示例代码。

public class SessionValidatorAction extends Action.Simple{ 

public CompletionStage<Result> call(Context ctx) 

    {

      ctx.session().get("user");

    }

}

以下是 Play 中相同会话管理的链接:

https://www.playframework.com/documentation/2.6.x/JavaActionsComposition#Action-composition

注意: 我没有在会话对象中找到任何方法,就像我们在 java(J2EE) 中得到的那样 Session.setMaxInactiveInterval(15*60); 请指导我。 提前谢谢..

【问题讨论】:

    标签: java session-cookies playback


    【解决方案1】:

    继承过滤器类并实现apply方法。所以,如果你在“result:Result”中调用“withsession”作为前一个会话的参数,就会创建新的会话。当然,过期时间会再次延长。

    对不起,我的英语不好。我希望这会有所帮助。

    这是我的 Scala 代码

    
        @Singleton
        class SessionDelayFilter @Inject()(implicit override val mat: Materializer,
                                           exec: ExecutionContext) extends Filter {
          override def apply(nextFilter: RequestHeader => Future[Result])
                            (requestHeader: RequestHeader): Future[Result] = {
            nextFilter(requestHeader).map { result =>
              result.withSession(result.session(requestHeader))
            }
          }
        }
    
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-10-29
      • 2016-11-02
      • 1970-01-01
      • 2013-10-02
      • 2017-01-02
      • 1970-01-01
      相关资源
      最近更新 更多