Session + Cookie + Redis 模式实现详解
一、整体架构概览
二、项目结构说明
三、配置管理机制
3.1 三层配置架构
3.2 环境变量映射规则
┌──────────────────────────────────────────────────────────────────┐
│ YAML 配置 → 环境变量 自动转换规则 │
├──────────────────────────────────────────────────────────────────┤
│ │
│ YAML 路径 环境变量名 │
│ ───────────────────────── ────────────────────────────── │
│ app.name → APP_NAME │
│ app.session.store-type → APP_SESSION_STORE_TYPE │
│ app.session.timeout-minutes → APP_SESSION_TIMEOUT_MINUTES │
│ app.jwt.secret → APP_JWT_SECRET │
│ │
│ 转换规则: │
│ 1. 点(.) 替换为 下划线(_) │
│ 2. 横杠(-) 替换为 下划线(_) │
│ 3. 全部转大写 │
│ │
└──────────────────────────────────────────────────────────────────┘
四、Session 存储策略模式
4.1 策略模式实现
4.2 内存存储实现细节
4.3 Redis 存储实现细节
五、登录认证流程
5.1 用户登录流程
5.2 请求认证流程
六、Cookie 安全特性
6.1 安全配置详解
6.2 开发 vs 生产环境对比
七、滑动窗口机制
八、单点登录机制
九、关键代码调用链
十、总结
这套 Session + Cookie + Redis 模式实现了一个完整的用户认证系统,核心要点:
| 特性 | 说明 |
|---|---|
| 策略模式 | SessionStore 接口抽象,内存/Redis 实现可切换 |
| 条件装配 | 根据配置自动选择存储实现 |
| 三层配置 | yml 默认值 → profile 特定 → 环境变量覆盖 |
| 安全Cookie | HttpOnly + Secure + SameSite 多重防护 |
| 滑动窗口 | 活跃用户自动续期 |
| 单点登录 | 新登录踢掉旧设备 |
| 分布式支持 | Redis 存储支持集群部署 |
项目分区导航:⬅️ 03-session单模式登录+鉴权流程流程一览 | 04-Session + Cookie + Redis 模式实现详解 | ➡️ 05-ZwwwSpringBootBaseTemplate工程模板
💬 评论