feat: 统一JWT密钥配置并修复签名验证问题
修复前端签名生成中bodyString硬编码问题 添加start-frontend.sh脚本启动前端服务 统一manage-app和gateway的JWT密钥配置 修复Repository扫描路径问题 更新测试配置和依赖 重构表名映射为sys_user和sys_role 完善用户实体类字段映射 添加集成测试配置和测试用例
This commit is contained in:
+85
@@ -0,0 +1,85 @@
|
||||
# Progress Log
|
||||
|
||||
## Session: 2026-04-02 09:00
|
||||
|
||||
### Started
|
||||
|
||||
- Task: 系统修复验证与命名规范统一
|
||||
- Plan: [task_plan.md](file:///Users/zhangxiang/Codes/Novalon/novalon-manage-system/task_plan.md)
|
||||
|
||||
### Actions
|
||||
|
||||
1. 使用Systematic Debugging方法调试JWT和签名问题
|
||||
2. 发现并修复JWT密钥不一致问题
|
||||
3. 发现并修复签名验证问题
|
||||
4. 发现并修复Repository扫描问题
|
||||
5. 发现并修复JwtKeyService初始化问题
|
||||
6. 创建任务计划文件
|
||||
|
||||
### Tests
|
||||
|
||||
- JWT密钥验证: ✅ PASS
|
||||
- manage-app和gateway现在使用相同密钥
|
||||
- 签名实现验证: ✅ PASS
|
||||
- 前端正确处理请求体
|
||||
- Repository扫描验证: ✅ PASS
|
||||
- AuditLogRepository被正确扫描
|
||||
- JwtKeyService初始化验证: ✅ PASS
|
||||
- 使用@PostConstruct正确初始化
|
||||
|
||||
### Completed
|
||||
|
||||
- JWT密钥统一配置
|
||||
- 签名验证修复
|
||||
- Repository扫描修复
|
||||
- JwtKeyService初始化修复
|
||||
- 创建调试报告:docs/DEBUG_AND_FIX_REPORT.md
|
||||
- 创建任务计划:task_plan.md, findings.md, progress.md
|
||||
- **修复前端服务启动问题**:Vite进程被挂起,通过重定向标准输入到/dev/null解决
|
||||
- **集成测试配置修复**:
|
||||
- 添加r2dbc-postgresql依赖
|
||||
- 将集成测试移动到manage-app模块
|
||||
- 添加testcontainers依赖
|
||||
- 创建application-test.yml配置文件
|
||||
- **统一表名映射**:
|
||||
- 将users表重命名为sys_user
|
||||
- 将roles表重命名为sys_role
|
||||
- 更新所有实体类的@Table注解
|
||||
- 更新数据库迁移脚本
|
||||
- 更新测试schema文件
|
||||
- **完善实体类字段映射**:
|
||||
- 在SysUserEntity中添加phone和nickname字段
|
||||
- 在SysUserConverter中添加字段映射
|
||||
- 更新数据库迁移脚本添加缺失字段
|
||||
- **集成测试全部通过**:7个测试用例全部通过 ✅
|
||||
|
||||
### Files Modified
|
||||
|
||||
- novalon-manage-api/manage-app/src/main/resources/application.yml
|
||||
- novalon-manage-api/manage-gateway/src/main/java/cn/novalon/manage/gateway/config/JwtKeyManagementConfig.java
|
||||
- novalon-manage-api/manage-app/src/main/java/cn/novalon/manage/app/ManageApplication.java
|
||||
- novalon-manage-web/src/utils/signature.ts
|
||||
- start-frontend.sh (新增)
|
||||
|
||||
### Root Cause Analysis
|
||||
|
||||
**前端白屏问题根本原因**:
|
||||
|
||||
1. 使用nohup启动Vite开发服务器时,进程会尝试从标准输入读取命令
|
||||
2. 在macOS上,这会导致进程被挂起(状态TN)
|
||||
3. 被挂起的进程无法响应HTTP请求,导致白屏
|
||||
4. **解决方案**:将标准输入重定向到/dev/null,避免进程挂起
|
||||
|
||||
### Next Steps
|
||||
|
||||
- Phase 1: ✅ 完成(服务重启与验证)
|
||||
- Phase 2: 运行测试套件
|
||||
- Phase 3: 统一Service命名规范
|
||||
- Phase 4: 统一Repository命名规范
|
||||
- Phase 5: 最终验证
|
||||
|
||||
## Notes
|
||||
|
||||
- 所有修复都遵循"修复根本原因,而不是症状"的原则
|
||||
- 使用Systematic Debugging方法确保问题定位准确
|
||||
- 分阶段执行,每步验证,确保系统稳定性
|
||||
Reference in New Issue
Block a user