乐途乐途
主页
  • 计算机基础

    • TCP/IP
    • Linux
    • HTTP
  • 数据库

    • SQL
    • MySQL 5.7
  • 编程语言

    • C
    • C++
    • Java SE
    • Python2
    • Python3
  • 数据格式

    • JSON
    • XML
  • 认证与安全

    • JWT
  • 工具

    • Markdown
  • Git

    • GitFlow
  • Quartz

    • Quartz
  • Java

    • Maven 入门
    • Maven 进阶
    • MyBatis
    • Spring
    • Spring MVC
  • Java

    • Spring Boot
    • Spring Cloud
    • Spring Cloud Alibaba
    • Spring Security
    • Spring AI
    • Spring Batch
    • Kafka
    • Java 设计模式
  • 缓存

    • Redis
  • 搜索引擎

    • Elasticsearch
  • 分布式协调

    • ZooKeeper
联系
阿里云
主页
  • 计算机基础

    • TCP/IP
    • Linux
    • HTTP
  • 数据库

    • SQL
    • MySQL 5.7
  • 编程语言

    • C
    • C++
    • Java SE
    • Python2
    • Python3
  • 数据格式

    • JSON
    • XML
  • 认证与安全

    • JWT
  • 工具

    • Markdown
  • Git

    • GitFlow
  • Quartz

    • Quartz
  • Java

    • Maven 入门
    • Maven 进阶
    • MyBatis
    • Spring
    • Spring MVC
  • Java

    • Spring Boot
    • Spring Cloud
    • Spring Cloud Alibaba
    • Spring Security
    • Spring AI
    • Spring Batch
    • Kafka
    • Java 设计模式
  • 缓存

    • Redis
  • 搜索引擎

    • Elasticsearch
  • 分布式协调

    • ZooKeeper
联系
阿里云
  • 学习路径
  • 第1章 Spring Security 基础

    • 本章定位
    • Spring Security 是什么
    • DelegatingFilterProxy
    • 安全过滤器链
    • SecurityFilterChain
    • 过滤器执行顺序
  • 第2章 认证

    • 本章定位
    • Authentication
    • 认证流程
    • AuthenticationManager
    • ProviderManager
    • DaoAuthenticationProvider
    • UserDetails
    • UserDetailsService
    • PasswordEncoder
    • BCryptPasswordEncoder
    • DelegatingPasswordEncoder
    • 表单登录
    • SecurityContext
    • SecurityContextHolder
    • UsernamePasswordAuthenticationToken
  • 第3章 授权

    • 本章定位
    • 授权模型
    • GrantedAuthority
    • AccessDecisionManager
    • AccessDecisionVoter
    • URL 级别授权
    • 方法级别安全
    • @PreAuthorize
    • @PostAuthorize
    • @PreFilter
    • @PostFilter
    • @Secured
    • RoleHierarchy
  • 第4章 过滤器链

    • 本章定位
    • FilterChainProxy
    • SecurityContextHolderFilter
    • LogoutFilter
    • BasicAuthenticationFilter
    • CsrfFilter
    • CorsFilter
    • HeaderWriterFilter
    • AnonymousAuthenticationFilter
    • RequestCacheAwareFilter
    • ExceptionTranslationFilter
    • FilterSecurityInterceptor
  • 第5章 会话管理

    • 本章定位
    • 会话管理
    • SessionFixation
    • 会话并发控制
    • SessionCreationPolicy
    • RememberMe
  • 第6章 JWT

    • 本章定位
    • JWT
    • JwtDecoder
    • JWT 认证
    • JwtAuthenticationConverter
  • 第7章 OAuth2

    • 本章定位
    • OAuth2 基础
    • OAuth2 Client
    • OAuth2 Resource Server
    • 第三方登录配置
  • 第8章 攻击防护

    • 本章定位
    • CSRF 跨站请求伪造防护
    • CORS 跨域防护
    • Clickjacking 点击劫持防护
    • 安全响应头
    • Session Fixation 会话固定防护
  • 第9章 测试

    • 本章定位
    • 安全测试
    • @WithMockUser
    • 最佳实践

"小崔部署到测试环境后,发现同一个账号在 Chrome 和 Firefox 上同时登录都成功了。白歌说:'默认配置下 Spring Security 允许无限并发,这在生产环境很危险。'这一章,你将掌握会话管理的完整策略——从会话创建到并发控制,从会话固定防护到记住我。"

章节导读:会话管理与记住我

本章定位

本章解决的核心问题:Spring Security 如何管理用户会话的生命周期、如何限制并发登录、如何防范会话固定攻击,以及如何通过"记住我"机制在关闭浏览器后保留登录状态。 本章是会话安全的核心实践章节。

学习路线图

学习顺序说明:先建立会话管理的整体认知(创建策略、超时管理、注册表)→ 深入 SessionCreationPolicy(控制何时创建 HttpSession)→ 掌握 SessionFixation(登录后更换 Session ID,防止会话劫持)→ 理解会话并发控制(限制同一账号同时在线数量)→ 最后掌握 RememberMe(关闭浏览器后通过持久化 Token 保持登录状态)。

文件关系说明

文件一句话角色
会话管理.md会话管理整体认知:创建策略、超时管理、注册表、会话固定防护、并发控制的全貌。
SessionCreationPolicy.md会话创建策略:ALWAYS / IF_REQUIRED / NEVER / STATELESS 四种策略的选择与场景。
SessionFixation.md会话固定防护:登录后更换 Session ID,防止攻击者通过预设 Session ID 劫持身份。
会话并发控制.md并发限制:通过 maximumSessions 限制同一账号同时在线数,支持踢出旧会话或拒绝新会话。
RememberMe.md记住我机制:通过持久化 Cookie 在关闭浏览器后保持登录,基于 Token 和密钥的安全验证。

知识图谱

核心逻辑:Spring Security 的会话管理从创建策略开始:ALWAYS 始终创建 Session,IF_REQUIRED 按需创建,NEVER 不主动创建但复用已有,STATELESS 完全无状态(适合 JWT)。登录成功后通过 SessionFixation 更换 Session ID,防止攻击者劫持。SessionRegistry 维护所有活跃会话,配合 maximumSessions 实现并发控制。RememberMe 通过持久化 Token 在浏览器关闭后保持登录,Token 经密钥签名防篡改,用户可以选择"记住我"获得长期会话,不选择则获得短期 Session。

与上下章的衔接

上一章回顾:你掌握了过滤器链的完整结构,知道 SecurityContextHolderFilter 从 Session 中加载 SecurityContext。本章将深入 Session 的管理策略——何时创建、何时销毁、如何防护劫持、如何控制并发。

下一章预告:Session 机制在单体应用中工作良好,但在分布式系统和微服务架构中,Session 共享成为瓶颈。下一章「JWT 与无状态认证」将引入基于 Token 的无状态认证方案,服务端无需存储会话状态,天然支持横向扩展。

下一页
会话管理