feat: 统一JWT密钥配置并修复签名验证问题

修复前端签名生成中bodyString硬编码问题
添加start-frontend.sh脚本启动前端服务
统一manage-app和gateway的JWT密钥配置
修复Repository扫描路径问题
更新测试配置和依赖
重构表名映射为sys_user和sys_role
完善用户实体类字段映射
添加集成测试配置和测试用例
This commit is contained in:
张翔
2026-04-02 12:28:49 +08:00
parent 6392c08560
commit b0f91d74f5
63 changed files with 3287 additions and 889 deletions
@@ -1,7 +1,7 @@
package cn.novalon.manage.sys.audit;
import cn.novalon.manage.sys.audit.domain.AuditLog;
import cn.novalon.manage.sys.audit.repository.AuditLogRepository;
import cn.novalon.manage.sys.audit.repository.IAuditLogRepository;
import com.fasterxml.jackson.databind.JsonNode;
import com.fasterxml.jackson.databind.ObjectMapper;
import org.aspectj.lang.ProceedingJoinPoint;
@@ -34,10 +34,10 @@ public class AuditLogAspect {
private static final Logger logger = LoggerFactory.getLogger(AuditLogAspect.class);
private final AuditLogRepository auditLogRepository;
private final IAuditLogRepository auditLogRepository;
private final ObjectMapper objectMapper;
public AuditLogAspect(AuditLogRepository auditLogRepository, ObjectMapper objectMapper) {
public AuditLogAspect(IAuditLogRepository auditLogRepository, ObjectMapper objectMapper) {
this.auditLogRepository = auditLogRepository;
this.objectMapper = objectMapper;
}
@@ -15,7 +15,7 @@ import java.time.LocalDateTime;
* @date 2026-04-01
*/
@Repository
public interface AuditLogArchiveRepository extends R2dbcRepository<AuditLogArchive, Long> {
public interface IAuditLogArchiveRepository extends R2dbcRepository<AuditLogArchive, Long> {
Flux<AuditLogArchive> findByEntityType(String entityType);
@@ -15,7 +15,7 @@ import java.time.LocalDateTime;
* @date 2026-04-01
*/
@Repository
public interface AuditLogRepository extends R2dbcRepository<AuditLog, Long> {
public interface IAuditLogRepository extends R2dbcRepository<AuditLog, Long> {
Flux<AuditLog> findByEntityType(String entityType);
@@ -2,8 +2,8 @@ package cn.novalon.manage.sys.audit.service;
import cn.novalon.manage.sys.audit.domain.AuditLog;
import cn.novalon.manage.sys.audit.domain.AuditLogArchive;
import cn.novalon.manage.sys.audit.repository.AuditLogArchiveRepository;
import cn.novalon.manage.sys.audit.repository.AuditLogRepository;
import cn.novalon.manage.sys.audit.repository.IAuditLogArchiveRepository;
import cn.novalon.manage.sys.audit.repository.IAuditLogRepository;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.stereotype.Service;
@@ -28,11 +28,11 @@ public class AuditLogArchiveService {
private static final Logger logger = LoggerFactory.getLogger(AuditLogArchiveService.class);
private final AuditLogRepository auditLogRepository;
private final AuditLogArchiveRepository auditLogArchiveRepository;
private final IAuditLogRepository auditLogRepository;
private final IAuditLogArchiveRepository auditLogArchiveRepository;
public AuditLogArchiveService(AuditLogRepository auditLogRepository,
AuditLogArchiveRepository auditLogArchiveRepository) {
public AuditLogArchiveService(IAuditLogRepository auditLogRepository,
IAuditLogArchiveRepository auditLogArchiveRepository) {
this.auditLogRepository = auditLogRepository;
this.auditLogArchiveRepository = auditLogArchiveRepository;
}
@@ -1,7 +1,7 @@
package cn.novalon.manage.sys.audit.service;
import cn.novalon.manage.sys.audit.domain.AuditLog;
import cn.novalon.manage.sys.audit.repository.AuditLogRepository;
import cn.novalon.manage.sys.audit.repository.IAuditLogRepository;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.scheduling.annotation.Async;
@@ -28,10 +28,10 @@ public class AuditLogService {
private static final Logger logger = LoggerFactory.getLogger(AuditLogService.class);
private final AuditLogRepository auditLogRepository;
private final IAuditLogRepository auditLogRepository;
private final Executor auditLogExecutor;
public AuditLogService(AuditLogRepository auditLogRepository,
public AuditLogService(IAuditLogRepository auditLogRepository,
Executor auditLogExecutor) {
this.auditLogRepository = auditLogRepository;
this.auditLogExecutor = auditLogExecutor;