package roomescape.common.config import org.slf4j.MDC import org.springframework.context.annotation.Bean import org.springframework.context.annotation.Configuration import org.springframework.data.domain.AuditorAware import org.springframework.data.jpa.repository.config.EnableJpaAuditing import roomescape.auth.web.support.MDC_MEMBER_ID_KEY import java.util.* @Configuration @EnableJpaAuditing class JpaConfig { @Bean fun auditorAware(): AuditorAware = MdcAuditorAware() } class MdcAuditorAware : AuditorAware { override fun getCurrentAuditor(): Optional { val memberIdStr: String? = MDC.get(MDC_MEMBER_ID_KEY) if (memberIdStr == null) { return Optional.empty() } else { return Optional.of(memberIdStr.toLong()) } } }