繁体   English   中英

如何扩展或更改会话超时值,即Play Framework(Java)中的session.maxAge

[英]How to extend or change the session timeout value i.e. session.maxAge in Play Framework (Java)

我是Play Framework的新手,正在从事会话管理。 我的要求是,当用户仍在使用应用程序(网页)时,我需要将会话超时值更改为特定值。

条件:如果用户已经登录,并且超时值为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); 请指导我。 提前致谢..

继承过滤器类并实现apply方法。 因此,如果您将“ withsession in“ result:Result”作为上一会话的参数,则将创建新的会话,当然,到期时间将再次延长。

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

这是我的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))
        }
      }
    }

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM