# Common Audit 模块指引 ## 数据库访问与中文注释约束 - 强制遵守根 `../AGENTS.md` 的“数据库访问与中文代码注释”全部规则:正常业务访问统一为 `Controller → Service → Repository → Mapper`,不得省略 Repository 或跨层直调;生产 SQL 由 Mapper 执行,Repository 不得直接使用 JdbcTemplate 或原生 JDBC。非 HTTP 入口从 Service 进入;无数据库模块不引入数据库访问。 - 每个手写方法及构造器须有简短中文说明;核心业务规则、复杂 SQL、事务、锁、幂等、并发及失败处理须补充适量中文注释,重点说明原因和边界。新增、修改方法立即执行,触及的存量代码同步整改。 ## 职责边界 - 负责业务审计事件采集、注解切面、敏感字段脱敏以及日志/HTTP 输出。 - 审计记录持久化属于 `audit-service/`;本模块不依赖具体业务 Entity 或数据库。 ## 快速索引 | 功能 | 入口 | |---|---| | 审计注解与切面 | `src/main/java/com/baiyue/common/audit/BusinessAudit.java`、`BusinessAuditAspect.java` | | 事件模型 | `AuditEvent.java` | | 输出抽象与实现 | `AuditSink.java`、`LoggingAuditSink.java`、`HttpAuditSink.java` | | 敏感数据脱敏 | `SensitiveDataSanitizer.java` | | `baiyue.audit` 配置 | `AuditProperties.java` | | 自动配置 | `BaiyueAuditAutoConfiguration.java` 与 `src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports` | ## 修改与验证 - 新增审计字段时先确认不会泄露密码、令牌、证件或客户敏感数据,并检查 `audit-service` 接收 DTO。 - 审计失败不应破坏核心业务;调整输出策略时保留超时、关闭开关和安全降级。 - 从父目录运行 `mvn -pl common-audit -am test`,并按影响追加验证 `audit-service`。