From b8412314a83ff99de1883aea494e66298ae7a5d9 Mon Sep 17 00:00:00 2001 From: dengqichen Date: Sun, 7 Dec 2025 15:29:59 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A2=9E=E5=8A=A0ssh=E9=93=BE=E6=8E=A5?= =?UTF-8?q?=E6=A1=86=E6=9E=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../backend/deploy/entity/SSHAuditLog.java | 7 +++++ .../repository/ISSHAuditLogRepository.java | 11 +++++++ .../service/impl/ServerServiceImpl.java | 31 +++++++++++++++++++ .../db/changelog/changes/v1.0.0-schema.sql | 8 +++-- 4 files changed, 54 insertions(+), 3 deletions(-) diff --git a/backend/src/main/java/com/qqchen/deploy/backend/deploy/entity/SSHAuditLog.java b/backend/src/main/java/com/qqchen/deploy/backend/deploy/entity/SSHAuditLog.java index f1a79c39..d2772ea9 100644 --- a/backend/src/main/java/com/qqchen/deploy/backend/deploy/entity/SSHAuditLog.java +++ b/backend/src/main/java/com/qqchen/deploy/backend/deploy/entity/SSHAuditLog.java @@ -1,5 +1,6 @@ package com.qqchen.deploy.backend.deploy.entity; +import com.qqchen.deploy.backend.framework.annotation.LogicDelete; import com.qqchen.deploy.backend.framework.domain.Entity; import jakarta.persistence.Column; import jakarta.persistence.Table; @@ -10,11 +11,17 @@ import java.time.LocalDateTime; /** * SSH终端审计日志实体 + * + * ⚠️ 审计日志逻辑删除设计: + * - 支持逻辑删除(@LogicDelete)而非物理删除 + * - 确保审计记录的可追溯性和合规性 + * - 删除的审计日志仍可通过后台管理查询 */ @Data @EqualsAndHashCode(callSuper = true) @jakarta.persistence.Entity @Table(name = "deploy_ssh_audit_log") +@LogicDelete public class SSHAuditLog extends Entity { /** diff --git a/backend/src/main/java/com/qqchen/deploy/backend/deploy/repository/ISSHAuditLogRepository.java b/backend/src/main/java/com/qqchen/deploy/backend/deploy/repository/ISSHAuditLogRepository.java index a8b15cc0..6e996c06 100644 --- a/backend/src/main/java/com/qqchen/deploy/backend/deploy/repository/ISSHAuditLogRepository.java +++ b/backend/src/main/java/com/qqchen/deploy/backend/deploy/repository/ISSHAuditLogRepository.java @@ -2,6 +2,9 @@ package com.qqchen.deploy.backend.deploy.repository; import com.qqchen.deploy.backend.deploy.entity.SSHAuditLog; import com.qqchen.deploy.backend.framework.repository.IBaseRepository; +import org.springframework.data.jpa.repository.Modifying; +import org.springframework.data.jpa.repository.Query; +import org.springframework.data.repository.query.Param; import org.springframework.stereotype.Repository; /** @@ -24,4 +27,12 @@ public interface ISSHAuditLogRepository extends IBaseRepository