Files
mokeegateway/memory/session-20260620-2.md
2026-07-16 00:04:27 +08:00

52 lines
2.8 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
---
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 服务(32001)、Admin 服务(32002)、Gateway(32000) 三个服务共享同一个 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]]