【问题标题】:Spring Boot session configuration questionsSpring Boot 会话配置问题
【发布时间】:2020-05-25 00:08:07
【问题描述】:

我有一个 Spring Boot 应用程序,但我似乎无法让我的登录会话持续很长时间。我在application.properties 中设置以下内容:

spring.session.timeout = 180d
server.servlet.session.timeout = 180d

我有几个问题:

• 指定spring.session.timeout 和server.servlet.session.timeout 时允许使用什么持续时间后缀?我在任何地方都找不到此文档,只是在这些 docs 中的注释说“如果未指定持续时间后缀,则使用秒数”,暗示其他持续时间是可能的。

• 我是否需要在我的 POM 中包含 spring-session?我不关心会话集群或有状态的 REST API 支持,我想避免更多的启动时间和配置。我当然不想配置更多的持久性。

我最关心的是让我保持登录网站(最好是无限期)。

我正在使用 Spring Boot 2.3.0-RELEASE。

【问题讨论】:

  • 您使用的是哪个版本的 Spring Boot?

标签: spring-boot spring-session


【解决方案1】:

如果你没有使用 Spring Session,你应该使用属性server.servlet.session.timeout。

指定超时时,您有 3 个选项。

  • 您可以使用标准 ISO-8601 格式 used by java.time.Duratio,例如 P180D 180 天。

  • 您可以使用值和单位耦合的简单格式,例如180d 180 天。您可以在 Spring Boot 参考文档的this section 中找到支持的单元。

  • 最后,您可以使用long 表示,指定的数字将被解释为秒,例如200 200 秒。

您无需在 POM 中包含 spring-session。

【讨论】:

    【解决方案2】:

    在 Spring Boot 2.4+ 中。它可能适用于以下版本,但我没有测试它。

    我正在使用以下配置。 max-age 设置浏览器端 cookie 中的 max-age,timeout 设置我存储在 JDBC 中的 spring_session 的 MAX_INACTIVE_INTERVAL 列中的超时。

    当我只使用 max-age 时,我的 cookie 会在 30 分钟内从后端数据库中删除。 当我使用唯一的超时时,cookie 会在浏览器重新启动时从浏览器中删除。 因此,我将 max age 设置为 30 天以在浏览器中保持会话,并将超时设置为 30 天以在 db 中保持会话。

    server:
      servlet:
        session:
          cookie:
            max-age: 30d
          timeout: 30d
    

    我的 oauth 的 build.gradle 看起来像

        implementation 'org.springframework.boot:spring-boot-starter-data-jpa'
        implementation 'org.springframework.boot:spring-boot-starter-web'
    
        // for oauth
        implementation 'org.springframework.boot:spring-boot-starter-oauth2-client'
        implementation 'org.springframework.boot:spring-boot-starter-security'
    
        // to store session in jdbc
        implementation "org.springframework.session:spring-session-jdbc"
    

    Helpful link

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-01-02
      • 2014-08-14
      • 2015-12-10
      • 2020-09-23
      • 2019-12-01
      • 1970-01-01
      相关资源
      最近更新 更多