server.servlet.session.timeout: 12h(HTTP 会话的超时时间为 12 小时)

ops/2025/3/5 2:46:12/
http://www.w3.org/2000/svg" style="display: none;">

从你提供的配置文件(应该是 Spring Boot 的 application.ymlapplication.properties 文件)来看,以下部分与会话超时时间相关:

server:servlet:session:timeout: 12h
#      timeout: 30cookie:name: VENDER_SID

会话超时时间的设置

  • server.servlet.session.timeout: 12h

    • 这行配置明确指定了 HTTP 会话的超时时间为 12 小时
    • 在 Spring Boot 中,server.servlet.session.timeout 用于设置会话的最大不活动时间,单位可以是秒(默认)、分钟(m)、小时(h)等。
    • 这里 12h 表示 12 小时,也就是 43,200 秒。
  • #timeout: 30

    • 这行被注释掉了。如果没有 12h 的配置,超时时间会是 30(可能是 30 分钟或 30 秒,取决于上下文,但通常默认单位是分钟)。但由于 12h 生效,这行不起作用。
  • cookie.name: VENDER_SID

    • 这指定了会话的 cookie 名称为 VENDER_SID,而不是默认的 JSESSIONID。客户端通过这个 cookie 跟踪会话。

ADMIN_ID 的关系

在你的代码中:

request.getSession().setAttribute(Constants.ADMIN_ID, admin.getId());
  • Constants.ADMIN_ID 被存储到会话中,它的生命周期与会话一致。
  • 根据配置文件,会话的超时时间是 12 小时。这意味着:
    • 用户登录后,ADMIN_ID 被写入会话。
    • 如果用户在 12 小时内没有任何活动(即没有发送新的请求),会话会过期,ADMIN_ID 会随之失效。
    • 如果用户在这 12 小时内保持活跃(发送请求),会话会自动续期,ADMIN_ID 会一直有效。

其他相关配置的影响

  • server.tomcat.max-threads: 3000
    • 设置 Tomcat 的最大线程数为 3000,与会话超时无关,只是影响服务器的并发处理能力。
  • 没有手动设置 setMaxInactiveInterval
    • 从配置文件来看,你没有在代码中手动调用 request.getSession().setMaxInactiveInterval(),因此会话超时完全由 server.servlet.session.timeout 控制。

总结

  • 登录一次后 ADMIN_ID 的过期时间

    • 根据你的配置,ADMIN_ID 在会话中的过期时间是 12 小时12h)。
    • 如果用户在 12 小时内没有活动,会话超时,ADMIN_ID 失效。
    • 如果用户持续活跃,会话不会过期,ADMIN_ID 会一直保留,直到手动注销(例如调用 session.invalidate())或服务器重启。
  • 验证方法

    • 你可以在登录后打印会话的超时时间来确认:
      System.out.println("Session timeout: " + request.getSession().getMaxInactiveInterval());
      
      应该输出 43200(12 小时的秒数)。
  • 注意事项

    • 如果你的应用还依赖 JWT(从之前的 JwtUtils.createToken 看可能有),JWT 的过期时间可能是独立的,需要检查 JwtUtils 的实现来确认 token 的生命周期。
    • 如果需要调整超时时间,可以直接修改 timeout: 12h 为其他值,例如 24h30m

这个配置回答了你的问题:ADMIN_ID 在登录后会存活 12 小时,除非用户活跃或手动注销。

https://i-blog.csdnimg.cn/direct/c498edde48a0421788ef45e661d4db65.png" alt="在这里插入图片描述" />


http://www.ppmy.cn/ops/163188.html

相关文章

mac多版本python环境下解决模块导入问题

🚪 问题引入 以Flask模块为例,在下载时使用pip install Flask,结果解释运行一个导入了flask模块的python文件时,显示ModuleNotFoundError: No module named flask,如下: 原因是当前电脑有多个python版本&#xff0c…

PPT 小黑第38套

对应大猫40 幻灯片母板-最后一页-重命名为奇数页 奇偶页-点中标题-形状格式-形状填充-青色 最后一页页码左对齐 更换幻灯片背景:设计-设置背景格式-图片填充 【开始】-段落居中,对齐文本-中部对齐,排列-对齐-底端,-再水平居中…

SQL经典题型

查询不在表里的数据,一张学生表,一张学生的选课表,要求查出没有选课的学生? select students.student_name from students left join course_selection on students.student_idcourse_selection.student_id where course_selecti…

spark 常见操作命令

配置虚拟机 配置即让自己的虚拟机可以联网,和别的虚拟机通讯 一、配置vm虚拟机网段。 具体设置为:虚拟机左上角点击编辑→虚拟网络编辑器 选择VMnet8, 要改动两个地方(注意:它会需要管理员权限&#xff…

MYOJ_7456:输出邻接点的数量(图论概念及基础运用)

题目描述 给定一个无向图,n个顶点m条边。进行q次询问,每次询问一个顶点的邻接点的数量。 顶点编号为1,2,...,n。 输入 第一行:两个整数n m,空格分开,n表示顶点数,m表示边…

实战-使用 Playbook 批量部署多台 LAMP 环境

实战-使用 Playbook 批量部署多台 LAMP 环境 playbooks 使用步骤 playbook 是一个不同于使用 ansible 命令行执行方式的模式,功能更强大更灵活。 1、在 playbooks 中定义任务: - name: task description #任务描述信息 module_name: modul…

微前端开发模式解析与实践

微前端(Micro Frontends)是一种将前端应用拆分为多个独立模块的开发模式,允许不同团队独立开发、部署和维护各自的模块,最终组合成一个完整的应用。以下是关于微前端开发的详细解析: 一、微前端的核心思想 独立开发 每…

服务流程设计和服务或端口重定向及其websocket等应用示例

服务流程设计和服务或端口重定向及其websocket等应用示例 目录 服务或端口重定向的服务设计和websocket等应用示例 一、通用请求控制流程 1.1、入口 1.2、所有GET请求首先预检控制单元 1.3、http请求会分别自动307重定向 1.4、所有请求首先执行跨源控制单元 1.5、然后…