Files
novalon-manage-system/progress.md
T
张翔 b0f91d74f5 feat: 统一JWT密钥配置并修复签名验证问题
修复前端签名生成中bodyString硬编码问题
添加start-frontend.sh脚本启动前端服务
统一manage-app和gateway的JWT密钥配置
修复Repository扫描路径问题
更新测试配置和依赖
重构表名映射为sys_user和sys_role
完善用户实体类字段映射
添加集成测试配置和测试用例
2026-04-02 12:28:49 +08:00

2.8 KiB
Raw Blame History

Progress Log

Session: 2026-04-02 09:00

Started

  • Task: 系统修复验证与命名规范统一
  • Plan: 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方法确保问题定位准确
  • 分阶段执行,每步验证,确保系统稳定性