初始化
This commit is contained in:
51
memory/session-20260620-2.md
Normal file
51
memory/session-20260620-2.md
Normal file
@@ -0,0 +1,51 @@
|
||||
---
|
||||
name: session-20260620-2
|
||||
description: 2026-06-20 第2次会话 — 修复TokenAuthFilter Redis Key前缀遗漏导致登录后Token找不到会话
|
||||
metadata:
|
||||
type: session
|
||||
date: 2026-06-20
|
||||
sessionNumber: 2
|
||||
startTime: 2026-06-20T10:45:00+08:00
|
||||
endTime: 2026-06-20T10:55:00+08:00
|
||||
---
|
||||
|
||||
# 2026-06-20 第2次会话
|
||||
|
||||
## 会话摘要
|
||||
修复 TokenAuthFilter 中 Redis Key 缺少 `GATEWAY:` 前缀的 bug。上次会话给 RedisUtil 加了统一前缀机制后,Auth/Admin 服务都改为使用 `RedisUtil.key()` 生成 key,但 Gateway 的 TokenAuthFilter 被遗漏,导致登录后 Token 校验时找不到 Redis 会话。
|
||||
|
||||
## 关键操作
|
||||
|
||||
### TokenAuthFilter Redis Key 前缀修复
|
||||
- **做了什么**: `TokenAuthFilter.java` 中两处 Redis key 改为 `RedisUtil.key("auth:token:" + tokenId)` 和 `RedisUtil.key("open:token:" + tokenId)`
|
||||
- **原因**: 上次会话(session-1)引入 `RedisUtil.KEY_PREFIX = "GATEWAY:"` 和 `key()` 方法后,Auth 服务写入 key 是 `GATEWAY:auth:token:xxx`,但 Gateway 读取时直接拼 `"auth:token:" + tokenId`(无前缀),导致永远找不到。这是一个重构遗漏 bug。
|
||||
- **结果**: 修复后 Gateway 正确使用 `RedisUtil.key()` 生成带前缀的 key,与 Auth/Admin 服务写入的 key 一致
|
||||
- **涉及文件**: `TokenAuthFilter.java` (第115行和第183行)
|
||||
|
||||
### 问题诊断过程
|
||||
- **日志现象**: `Token 对应 Redis 会话不存在 - tokenId: 43a705df-fdc7-4b97-b5eb-605d3c081897`
|
||||
- **数据流追踪**:
|
||||
1. 登录 → Auth 服务写入 `GATEWAY:auth:token:43a705df-...` ✓
|
||||
2. 校验 → Gateway 查找 `auth:token:43a705df-...` ✗ (缺少 GATEWAY: 前缀)
|
||||
- **根因**: `RedisUtil.key()` 自动添加 `GATEWAY:` 前缀,但 TokenAuthFilter 没使用此方法
|
||||
|
||||
## 重要信息
|
||||
- Redis 前缀机制详情见 [[session-20260620-1]] 的 "Redis Key 加统一前缀 GATEWAY:" 章节
|
||||
- Auth 服务(9001)、Admin 服务(9002)、Gateway(9000) 三个服务共享同一个 Redis 实例
|
||||
- 所有 Redis key 操作都必须通过 `RedisUtil.key()` 方法,不能直接拼字符串
|
||||
|
||||
## 待处理
|
||||
- [x] 重新编译部署 Gateway 服务使修复生效 (10:54 已部署到 10.1.1.170 Docker 容器 mokeegateway-mokee-gateway-gateway)
|
||||
- [ ] 验证登录后 Token 校验正常通过(用户自行测试)
|
||||
|
||||
## 部署记录
|
||||
- **服务器**: 10.1.1.170(内网)
|
||||
- **容器名**: mokeegateway-mokee-gateway-gateway
|
||||
- **容器 ID**: 09bc559da896
|
||||
- **镜像**: harbor.zgitm.com/mokee/mokee-mokeegateway-mokee-gateway-gateway:v78.20260620102948
|
||||
- **部署方式**: SCP JAR → docker cp 替换 /app/app.jar → docker restart
|
||||
- **启动耗时**: 约 5.5 秒
|
||||
- **部署时间**: 2026-06-20 10:54
|
||||
|
||||
## 新规则
|
||||
- **部署 170 须用户授权**: 后续没有用户明确要求,不能擅自部署到 10.1.1.170(生产环境)。[[deploy-approval-required]]
|
||||
Reference in New Issue
Block a user