Commit Graph

118 Commits

Author SHA1 Message Date
张翔 fdca179d45 refactor(接口命名): 统一接口命名规范并重构相关实现
将接口命名统一调整为以I开头,并重构相关实现类和服务调用
重构审计日志和网关路由服务接口,优化代码结构
删除旧接口文件,更新依赖接口的类
2026-04-14 18:46:44 +08:00
张翔 7e54d7fb46 refactor(审计日志): 优化审计日志架构和 E2E 测试质量
架构改进:
- 引入审计日志服务层,实现业务逻辑与数据访问分离
- 添加 Spring Data 审计注解,自动填充创建人、创建时间等字段
- 修复切面范围,避免 Repository 和 Dao 层重复记录

代码优化:
- 移除构造函数中的冗余 info 日志,降低生产环境日志量
- 恢复 SQL 文件格式,提高可读性
- 优化 E2E 测试等待策略,移除硬编码等待时间,提高测试稳定性

影响范围:
- 后端:审计日志模块(Service、Repository、Aspect、Entity)
- 前端:E2E 测试文件(4 个 workflow 测试)
- 数据库:审计日志表结构
2026-04-08 19:49:55 +08:00
张翔 7e534f3049 refactor(审计日志): 重构审计日志模块,修复SQL插入错误
问题分析:AuditLog领域对象直接继承R2dbcRepository导致SQL插入时缺少entity_id字段

解决方案:参考OperationLog实现模式,新增Entity/Dao/Converter/Repository分层

测试验证:后端启动成功,调试测试通过
2026-04-08 16:57:08 +08:00
张翔 7420afa380 feat(权限): 实现基于角色的路由权限控制
- 新增路由元信息类型定义 (requiresAuth, roles, title)
- 实现路由守卫中的角色权限校验逻辑
- 新增 403 禁止访问页面
- 提取权限校验函数 checkRoutePermission,提高可测试性
- 修复 JSON.parse 异常处理,增强健壮性
- 优化页面标题动态设置

测试优化:
- 重构 global-setup.ts,支持 JAR 文件启动后端服务
- 优化测试用例等待逻辑,减少硬编码延迟
- 简化 playwright 配置,移除多浏览器支持
- 新增路由权限守卫单元测试

关联需求:权限系统完善
2026-04-08 15:29:03 +08:00
张翔 0c8c993995 test: 删除根目录下的非核心E2E测试文件(任务 2/8) 2026-04-07 21:45:28 +08:00
张翔 d65537529a fix(e2e): 修复前端服务启动冲突问题
问题:
- Playwright的webServer配置会自动启动前端服务
- global-setup.ts也在启动前端服务
- 导致端口3002冲突

修复:
- 移除global-setup.ts中的前端服务启动逻辑
- 移除global-setup.ts中的前端服务停止逻辑
- 移除前端服务健康检查验证
- 让Playwright的webServer统一管理前端服务

优势:
- 避免端口冲突
- 简化测试环境设置
- 统一服务管理
2026-04-07 11:24:50 +08:00
张翔 bfe55a1a21 fix(e2e): 修改H2数据库scope为runtime
问题:
- manage-db模块中H2数据库scope为test
- 导致H2数据库不会被打包到JAR文件中
- 测试环境无法使用H2数据库

修复:
- 修改H2数据库scope:test -> runtime
- 修改R2DBC H2 scope:test -> runtime

预期效果:
- H2数据库被打包到JAR文件中
- 测试环境可以使用H2数据库
- Flyway脚本可以正常运行
2026-04-07 10:25:08 +08:00
张翔 4ae0e8d125 fix(e2e): 启用Flyway数据库初始化
问题:
- 后端服务使用H2内存数据库
- Flyway被禁用,导致数据库初始化脚本未运行
- admin用户不存在,登录API返回401错误

修复:
- 启用Flyway(flyway.enabled: true)
- 指定迁移脚本位置(locations: classpath:db/migration)
- 启用基线迁移(baseline-on-migrate: true)

预期效果:
- 数据库初始化脚本自动运行
- admin用户自动创建
- 登录API正常工作
2026-04-07 10:20:13 +08:00
张翔 b3201b61fb fix(e2e): 修复测试失败问题
数据库修复:
- 添加测试用户 'user'(密码:admin123)

测试代码优化:
- 添加页面加载等待逻辑(waitForLoadState)
- 添加元素可见性等待(waitFor visible)
- 修复用户密码错误(user123 -> admin123)
- 改进错误处理和稳定性
2026-04-07 09:37:11 +08:00
张翔 e2cb7a5ad4 fix: 修复SecurityConfig环境判断,支持h2-test配置 2026-04-05 08:09:57 +08:00
张翔 3051aa7e81 feat: 将诊断端点添加到permitAll列表 2026-04-05 08:07:13 +08:00
张翔 b316c47f05 fix: 修复PasswordDiagnosticHandler编译错误 2026-04-05 08:04:40 +08:00
张翔 51119c7457 fix: 添加PasswordDiagnosticHandler导入语句 2026-04-05 08:01:23 +08:00
张翔 0b0c2527a5 feat: 添加密码验证诊断端点
目的:
- 系统化调试密码验证失败问题
- 验证passwordEncoder是否正确工作
- 收集诊断数据以定位根本原因

诊断端点:
- GET /api/diagnostic/password
- 测试密码: Test@123
- 数据库哈希: $2a$12$...
- 返回验证结果和编码器类型
2026-04-05 07:58:53 +08:00
张翔 f2dde38467 fix: 修正R2DBC URL格式为三个斜杠
问题:R2DBC URL格式错误导致连接失败
修复:使用正确的r2dbc:h2:mem:///格式
2026-04-04 21:46:08 +08:00
张翔 83b814dd28 fix: 统一R2DBC和JDBC数据库URL配置
根本原因:
- R2DBC URL: r2dbc:h2:mem:///testdb (三个斜杠)
- JDBC URL: jdbc:h2:mem:testdb (不同格式)
- 两个URL指向不同的H2内存数据库实例
- spring.sql.init通过JDBC初始化,但应用使用R2DBC访问

修复方案:
- 统一数据库实例名称为testdb
- 添加DB_CLOSE_DELAY=-1保持连接
- 添加DB_CLOSE_ON_EXIT=FALSE防止退出时关闭
- 确保R2DBC和JDBC共享同一数据库实例
2026-04-04 21:42:48 +08:00
张翔 9745114c8d fix: 添加API请求签名支持
问题:认证管理器缺少签名头导致登录失败
修复:添加签名生成逻辑,与前端保持一致
- 使用crypto模块生成HMAC-SHA256签名
- 添加X-Signature、X-Timestamp、X-Nonce头
- 改进错误消息显示详细错误信息
2026-04-04 21:36:27 +08:00
张翔 4732b9ef02 fix: 统一H2数据库密码配置为Test@123
- 统一主应用和测试环境的密码配置
- 使用BCrypt $2a$版本hash
- 添加密码验证测试确保一致性

影响范围:
- novalon-manage-api/manage-app/src/main/resources/data-h2.sql
- novalon-manage-api/manage-sys/src/test/java/cn/novalon/manage/sys/util/PasswordHashGenerator.java
2026-04-04 20:39:01 +08:00
张翔 be1c587dbf fix: 修复测试中操作admin用户导致后续测试失败的问题
- 修复密码哈希格式问题(从$2a$改为$2b$)
- 更新所有测试用例密码从Test@123改为admin123
- 修改测试2.3、2.5、2.6,避免操作admin用户(第1行)
- 在beforeEach中添加页面初始化,避免localStorage访问错误
- 添加测试数据清理机制
2026-04-04 13:01:38 +08:00
张翔 f882599072 fix: 改进成功消息等待策略,修复测试失败问题
- 添加waitForSuccessMessage()方法到UserManagementPage和RoleManagementPage
- 改进submitForm()方法,添加等待时间
- 更新测试用例使用新的等待方法
- 增加错误消息检测和日志输出
- 修复权限选择器问题(使用.el-tree替代固定value)
2026-04-04 10:03:19 +08:00
张翔 b2577110fb feat: enhance operation log query functionality
- Add time range query (startTime, endTime)
- Add IP address query support
- Add method name query support
- Update OperationLogQuery with new fields
- Update OperationLogQueryCriteria with new query fields
- Update OperationLogHandler to support new query parameters

Closes #5
2026-04-03 22:09:06 +08:00
张翔 c279b0a6e4 test: add integration tests for operation log
- Add R2DBC database initialization configuration
- Fix schema-h2.sql Chinese comments issue
- Add spring-security-test dependency
- Create comprehensive integration tests for operation log
- Tests cover create, delete, and error scenarios

Closes #2
2026-04-03 22:00:47 +08:00
张翔 8e2dd9f621 fix: resolve H2 database initialization issue
- Configure test profile to use H2 in-memory database
- Add SQL initialization for schema and data
- Ensure test environment works correctly

Closes #1
2026-04-03 21:35:18 +08:00
张翔 22d5948994 test: add comprehensive unit tests for operation log feature
- Add IpUtilsTest with 9 test cases covering all IP extraction scenarios
- Add OperationLogAspectTest with 8 test cases covering all aspect behaviors
- Fix error handling in OperationLogAspect to prevent log failures from affecting main flow
- Add onErrorResume handlers for graceful degradation
- Ensure all tests pass (17/17, 100% pass rate)

Test Coverage:
- IP extraction from various sources (X-Forwarded-For, X-Real-IP, RemoteAddress)
- IPv6 to IPv4 conversion
- Reactive type support (Mono, Flux)
- Error handling and graceful degradation
- Parameter serialization and truncation
- Edge cases and boundary conditions
2026-04-03 20:42:10 +08:00
张翔 c4dc1d2ee1 fix: resolve critical and important issues in OperationLogAspect
- Fix blocking call blockOptional() in reactive context
- Fix double subscription issue in saveLogAsync
- Fix Chinese character encoding issues in log messages
- Add Flux support for reactive streams
- Add parameter and result size limits
- Add comprehensive JavaDoc for IpUtils
2026-04-03 20:29:23 +08:00
张翔 63c3f701a5 feat: add @OperationLog annotations to menu management operations 2026-04-03 20:07:54 +08:00
张翔 a7475ef748 feat: add @OperationLog annotations to role management operations 2026-04-03 20:07:08 +08:00
张翔 257038224e feat: add @OperationLog annotations to user management operations 2026-04-03 20:06:13 +08:00
张翔 63825dc206 feat: implement OperationLogAspect with complete IP extraction logic 2026-04-03 19:48:18 +08:00
张翔 9ebe19411e feat: add @OperationLog annotation for operation logging 2026-04-03 19:34:01 +08:00
张翔 e430865d8f test: add dedicated E2E test user to avoid affecting admin account 2026-04-03 18:28:30 +08:00
张翔 2de0529d34 feat: 实现登录日志和操作日志的分页查询功能
refactor: 重构日志服务层代码,将分页逻辑移至Repository层

test: 添加日志分页查询的单元测试和组件测试

docs: 更新README文档,记录API响应格式修复过程

chore: 清理无用文件,更新.gitignore配置

build: 添加Jacoco代码覆盖率插件配置

ci: 添加测试环境配置文件application-h2-test.yml

style: 统一日志服务代码格式,添加必要的日志输出
2026-04-03 17:49:55 +08:00
张翔 b0f91d74f5 feat: 统一JWT密钥配置并修复签名验证问题
修复前端签名生成中bodyString硬编码问题
添加start-frontend.sh脚本启动前端服务
统一manage-app和gateway的JWT密钥配置
修复Repository扫描路径问题
更新测试配置和依赖
重构表名映射为sys_user和sys_role
完善用户实体类字段映射
添加集成测试配置和测试用例
2026-04-02 12:28:49 +08:00
张翔 6392c08560 feat(api/web): 实现API请求签名验证功能并优化测试环境配置
refactor(db): 重构查询条件类到query目录下

test: 添加登录流程测试脚本和测试数据

chore: 添加crypto-js依赖用于签名验证

ci: 配置测试环境数据库和端口设置
2026-04-02 08:07:53 +08:00
张翔 1e3dc11d59 refactor(test): 重构测试套件结构并优化测试配置
feat(test-suite): 新增测试套件模块,包含API测试客户端和测试配置
fix(api): 修复数据库实体和仓库的删除操作返回值
style(api): 统一数据库表名和字段命名
perf(api): 添加缓存注解提升配置查询性能
test(api): 添加H2测试数据库配置支持
chore: 清理旧的测试文件和脚本
2026-04-01 20:57:24 +08:00
张翔 24422c2c19 feat: 增强输入验证和安全防护
- 增强前端表单验证规则(用户名、密码、邮箱、手机号)
- 增强后端DTO验证注解(用户注册、角色创建)
- 添加后端Handler验证逻辑(用户创建、角色创建)
- 调整测试用例以适应系统实际情况
- 添加UAT测试套件(用户管理、角色管理、菜单管理、API交互、数据持久化、边界条件、安全测试)
- 修改远程分支为 https://git.f.novalon.cn/novalon/novalon-manage-system.git
2026-03-27 21:31:30 +08:00
张翔 a05368d306 feat(登录): 添加路由守卫和异步导航处理
fix(表单验证): 为用户、角色和菜单管理添加表单验证规则

test(e2e): 增加页面导航超时时间和网络空闲等待

refactor(数据库): 移除Flyway配置并更新数据源配置
2026-03-27 14:40:55 +08:00
张翔 af44c23f21 refactor(security): 重构安全配置并优化测试环境
- 移除旧的测试套件和UAT测试文件
- 更新密码编码器配置使用BCrypt strength=12
- 添加用户角色关联表和相关服务
- 优化前端日期显示格式
- 清理无用资源和配置文件
- 增强测试数据管理和清理功能
2026-03-27 13:00:22 +08:00
张翔 ce30893a96 feat: 配置Swagger UI在开发/测试环境可访问
- SecurityConfig: 添加Environment注入和环境检测逻辑
- SecurityConfig: 在dev/test环境放行Swagger相关路径
- SecurityConfig: 移除重复的PasswordEncoder Bean定义
- SecurityConfigTest: 修改测试以适应新的构造函数
- OpenApiConfig: 修正开发环境服务器URL从8080改为8084

修改的文件:
- novalon-manage-api/manage-sys/src/main/java/cn/novalon/manage/sys/config/SecurityConfig.java
- novalon-manage-api/manage-sys/src/test/java/cn/novalon/manage/sys/config/SecurityConfigTest.java
- novalon-manage-api/manage-app/src/main/java/cn/novalon/manage/app/config/OpenApiConfig.java

功能说明:
- Swagger UI在dev/test环境可通过http://localhost:8084/swagger-ui.html访问
- 生产环境自动禁用Swagger访问,确保安全性
- 解决了Bean冲突问题(PasswordEncoder重复定义)
- 修正了服务器端口配置
2026-03-26 13:05:00 +08:00
张翔 4ec1a3f4dd feat: 更新UAT测试配置和修复数据库连接问题
refactor(测试): 重构用户数据加载逻辑以支持数组格式
fix(数据库): 修正数据库连接配置和凭证
test: 添加新的导航和用户管理测试场景
docs: 生成UAT测试报告和最终报告
ci: 更新Woodpecker CI配置和测试命令
build: 添加application-test.yml配置文件
chore: 清理旧的测试场景文件
2026-03-25 15:32:49 +08:00
张翔 e2ad1331cc feat: 添加测试框架和覆盖率报告功能
feat(测试): 新增Playwright和Vitest测试配置
feat(测试): 添加测试覆盖率报告生成功能
feat(测试): 实现前后端测试脚本集成

fix(测试): 修复测试密码不匹配问题
fix(测试): 修正URL等待策略
fix(测试): 调整错误消息选择器

refactor(测试): 重构测试目录结构
refactor(测试): 优化测试用例组织方式

docs: 更新测试报告文档
docs: 添加测试覆盖率报告模板

ci: 添加Docker测试环境配置
ci: 实现测试自动化脚本

chore: 更新依赖版本
chore: 添加测试相关配置文件
2026-03-25 09:03:37 +08:00
张翔 31d66103e4 feat(登录日志): 添加今日登录次数统计功能
新增今日登录次数统计接口,修复Dashboard显示问题
- 在ISysLoginLogService接口添加countToday方法
- 实现SysLoginLogService中的countToday逻辑
- 更新ISysLoginLogRepository接口
- 添加SysLogHandler中的getTodayLoginCount方法
- 在SystemRouter中配置新路由端点

fix(测试): 更新系统配置URL匹配规则
- 将uat-phase1.spec.ts中的sysconfig改为sys/config

docs: 添加E2E测试报告和Dashboard问题诊断文档
2026-03-24 17:12:10 +08:00
张翔 3d6a0bd7b8 fix(QueryUtil): 修复条件判断逻辑错误
test: 更新密码测试用例以符合新验证规则
test: 更新用户名测试用例以使用ValidationException
test: 更新邮箱测试用例以使用ValidationException
test: 更新角色创建命令测试以使用ValidationException
build: 移除dependency-check-maven插件
2026-03-24 15:15:20 +08:00
张翔 f6916fb5b9 test(QueryUtil): 修复测试用例中criteria的空指针问题
修改测试用例中query.getCriteria()的调用方式,使用orElse处理可能的空值情况,避免空指针异常
2026-03-24 14:30:16 +08:00
张翔 e4721053bd feat: 完善系统配置审计通知功能并优化异常处理
- 新增异常处理体系(BaseException及其子类)
- 优化密码、邮箱、用户名等基础类型
- 添加字典管理、登录日志、操作日志的E2E测试
- 完善API集成测试和安全测试
- 添加性能测试配置和脚本
- 优化OpenAPI配置和全局异常处理器
2026-03-24 14:05:35 +08:00
张翔 be5d5ede90 feat: 添加异常日志功能并优化UI样式
refactor: 重构后端查询逻辑和API响应处理

fix: 修复用户角色更新和文件上传问题

test: 添加前端性能测试脚本和E2E测试用例

chore: 更新依赖版本和配置文件

docs: 添加环境检查脚本和测试文档

style: 统一表格标签样式和路由命名

perf: 优化前端页面加载速度和响应时间
2026-03-24 13:32:20 +08:00
张翔 fd1c700412 feat: add operation log filter for automatic logging 2026-03-18 22:36:40 +08:00
张翔 bbcaee1116 feat: add operation log routes to SystemRouter 2026-03-18 22:35:42 +08:00
张翔 8a0cd64829 feat: extend operation log service and repository with pagination support 2026-03-18 22:34:43 +08:00
张翔 157aee2ffc feat: add operation_log table migration 2026-03-18 22:28:51 +08:00