# Conflicts:
#	build.gradle
This commit is contained in:
2025-06-12 17:36:43 +09:00
23 changed files with 326 additions and 214 deletions
@@ -11,7 +11,10 @@ import org.springframework.data.jpa.repository.config.EnableJpaRepositories;
*/
@Configuration
@ComponentScan(basePackages = "com.ktds.hi.common")
@EntityScan(basePackages = "com.ktds.hi.common.entity")
@EntityScan(basePackages = {
"com.ktds.hi.common.entity",
"com.ktds.hi.common.audit"
})
@EnableJpaRepositories(basePackages = "com.ktds.hi.common.repository")
public class CommonModuleConfiguration {
// 설정 클래스는 어노테이션만으로도 충분
@@ -1,5 +1,8 @@
package com.ktds.hi.common.audit;
import jakarta.persistence.Entity;
import jakarta.persistence.EntityListeners;
import jakarta.persistence.Id;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Getter;
@@ -7,15 +10,20 @@ import lombok.NoArgsConstructor;
import java.time.LocalDateTime;
import org.springframework.data.jpa.domain.support.AuditingEntityListener;
/**
* 감사 로그 엔티티
*/
@Getter
@Entity
@Builder
@NoArgsConstructor
@AllArgsConstructor
@EntityListeners(AuditingEntityListener.class)
public class AuditLog {
@Id
private Long id;
private String entityType;
private String entityId;
@@ -26,4 +34,8 @@ public class AuditLog {
private String userAgent;
private String ipAddress;
private LocalDateTime timestamp;
private LocalDateTime createdAt;
}
@@ -1,11 +0,0 @@
package com.ktds.hi.common.audit;
/**
* 감사 로그 리포지토리 인터페이스
*/
public interface AuditLogRepository {
void save(AuditLog auditLog);
AuditLog findById(Long id);
}
@@ -29,7 +29,7 @@ public class AuditLogger {
*/
public void logCreate(Object entity) {
try {
AuditLog auditLog = AuditLog.builder()
AuditLog auditLog = AuditLog.builder()
.entityType(entity.getClass().getSimpleName())
.entityId(extractEntityId(entity))
.action(AuditAction.CREATE)
@@ -1,5 +1,6 @@
package com.ktds.hi.common.audit;
import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;
import org.springframework.data.domain.AuditorAware;
import org.springframework.security.core.Authentication;
import org.springframework.security.core.context.SecurityContextHolder;
@@ -11,6 +12,7 @@ import java.util.Optional;
* JPA Auditing을 위한 사용자 정보 제공자
*/
@Component
@ConditionalOnClass(AuditorAware.class) // 👈 이 어노테이션 추가
public class CustomAuditorAware implements AuditorAware<String> {
@Override