【问题标题】:Session timeout does not work in Java web application会话超时在 Java Web 应用程序中不起作用
【发布时间】:2016-10-25 19:25:31
【问题描述】:

在 Java Web 应用程序中,会话超时不起作用。它在文件 application.properties 中设置:

#the timeout for user login, in milliseconds
#after this time passes, the user is no longer logged in
mandatory.config.rest.user_login_timeout_ms = 900000

设置为 900000 毫秒(15 分钟)。我还尝试在本地设置一个很小的值,例如 6,以进行测试。它仍然不起作用。这似乎是一个错误(2 周前,会话超时有效)。 后端的应用服务器是“wildfly-9”。前端的应用服务器是“grunt”。使用的数据库是 OrientDB 类型的。

P.S.:我在这个项目上工作了2天,问题可能没有足够的细节,所以如果有必要,你可以问我更多的细节。

【问题讨论】:

    标签: java session timeout session-timeout


    【解决方案1】:

    仅在 application.properties 文件下提及 timeout 属性将不起作用,因为 Web 容器不知道您的自定义属性和属性文件。检查它是否在您的代码中的某处使用您可以在 web.xml 下进行。检查Session TimeOut in web.xml

    【讨论】:

    • 我找到了一个方法,“boolean notExpired(Date lastAccess)”。我在那里放了一个断点。如果我登录,然后什么都不做,几分钟后,程序会自动通过这个方法运行,最后一次访问被重置。因此,它永远不会达到 15 分钟。
    • 我还看到这个计时器在被称为方法过滤器(ContainerRequestContext ctx)时被重置。这个方法在一个实现 ContainerRequestFilter 的类中,它在每个请求时被调用,正如我在文档中所读到的。但是我不明白如果我在登录的地方什么都不做,怎么能被称为请求。
    猜你喜欢
    • 2019-06-23
    • 2015-09-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-06-10
    • 2011-02-26
    • 2011-09-23
    • 1970-01-01
    相关资源
    最近更新 更多