当前位置: 首页 > 知识库问答 >
问题:

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

慕容安易
2023-03-14
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

注意:我在会话obejct中没有找到任何方法,就像我们在java(J2EE)session.SetMaxInActiveInterval(15*60)中得到的那样;请引导我。事先谢谢..

共有1个答案

巩衡
2023-03-14

继承filter类并实现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))
        }
      }
    }

 类似资料:
  • 问题内容: 我想在php中延长会话超时 我知道可以通过修改php.ini文件来实现。但我无权访问。 那么有可能只用php代码来做到吗? 问题答案: 如果需要严格的保证,会话超时是必须在代码中实现的概念。这是 唯一的办法 ,你可以绝对肯定的是,没有永远的会话将不活动的X分钟后存活。 如果稍微放松一下此要求是可以接受的,并且可以设置 下限 而不是严格的持续时间,那么您可以轻松地做到这一点,而无需编写自

  • 我使用Spring Boot和Spring会话来控制一个使用ReactJS作为前端的应用程序。我的问题很简单,我尝试了几种方法来处理,但都没有成功。 React部分使用AJAX在登录后调用Spring REST服务(我也使用Spring Security),这至少需要30分钟。之后,会话停止,所有调用都会收到一个302,并以登录页面作为响应。这是意料之中的。 但我的问题是:有什么更好的方法来延长后

  • 在 HTTP 协议中,当客户端不再处于活动状态时没有显示的终止信号。这意味着当客户端不再处于活跃状态时可以使用的唯一机制是超时时间。 Servlet 容器定义了默认的会话超时时间,且可以通过 HttpSession 接口的 getMaxInactiveInterval 方法获取。开发人员可以使用HttpSession 接口的 setMaxInactiveInterval 方法改变超时时间。这些方法

  • 问题内容: 我有一个奇怪的问题。我设置了一个JProgressBar: 但是,只有当我将setValue函数放在代码中的某些位置(而不是到处都是)时,它才会更改: 那么,我在做什么错呢?为什么第二条指令不起作用? 问题答案: 进度栏的值实际上已更新。但这还不只是在屏幕上。通常,我们在循环中使用进度条。但是,当您处于循环中时,您可能 通过单击按钮来调用 该循环,但该循环没有被绘制。为什么?因为您通过

  • 在我的应用程序中,当测试人员测试应用程序时,日期和时间需要频繁更改。目前,我们必须使用系统命令date-s来更改系统时间,但这将导致服务器上的其他应用程序也受到影响。我只想更改这个应用程序的日期(),不想更改应用程序本身,因为有太多地方使用了新的日期

  • 问题内容: 假设从CGI开始,我已经将文件显示为文件。我想将的文件扩展名更改为显示文件。我该怎么做? 问题答案: , 例如: