[英]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");
}
}
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.