diff --git a/service/build.gradle.kts b/service/build.gradle.kts index 5033c801..3c0819bc 100644 --- a/service/build.gradle.kts +++ b/service/build.gradle.kts @@ -55,6 +55,7 @@ dependencies { // submodules implementation(project(":common:config")) implementation(project(":common:persistence")) + implementation(project(":common:utils")) } tasks.jar { diff --git a/service/src/main/kotlin/com/sangdol/roomescape/auth/web/support/interceptors/AdminInterceptor.kt b/service/src/main/kotlin/com/sangdol/roomescape/auth/web/support/interceptors/AdminInterceptor.kt index 7a72a113..7de82394 100644 --- a/service/src/main/kotlin/com/sangdol/roomescape/auth/web/support/interceptors/AdminInterceptor.kt +++ b/service/src/main/kotlin/com/sangdol/roomescape/auth/web/support/interceptors/AdminInterceptor.kt @@ -17,7 +17,7 @@ import com.sangdol.roomescape.auth.exception.AuthException import com.sangdol.roomescape.auth.infrastructure.jwt.JwtUtils import com.sangdol.roomescape.auth.web.support.AdminOnly import com.sangdol.roomescape.auth.web.support.accessToken -import com.sangdol.roomescape.common.util.MdcPrincipalId +import com.sangdol.common.utils.MdcPrincipalIdUtil private val log: KLogger = KotlinLogging.logger {} @@ -38,7 +38,7 @@ class AdminInterceptor( try { run { - val id: String = jwtUtils.extractSubject(token).also { MdcPrincipalId.set(it) } + val id: String = jwtUtils.extractSubject(token).also { MdcPrincipalIdUtil.set(it) } val type: AdminType = validateTypeAndGet(token, annotation.type) val permission: AdminPermissionLevel = validatePermissionAndGet(token, annotation.privilege) diff --git a/service/src/main/kotlin/com/sangdol/roomescape/auth/web/support/interceptors/UserInterceptor.kt b/service/src/main/kotlin/com/sangdol/roomescape/auth/web/support/interceptors/UserInterceptor.kt index aa581bc3..8be0d99c 100644 --- a/service/src/main/kotlin/com/sangdol/roomescape/auth/web/support/interceptors/UserInterceptor.kt +++ b/service/src/main/kotlin/com/sangdol/roomescape/auth/web/support/interceptors/UserInterceptor.kt @@ -13,7 +13,7 @@ import com.sangdol.roomescape.auth.exception.AuthException import com.sangdol.roomescape.auth.infrastructure.jwt.JwtUtils import com.sangdol.roomescape.auth.web.support.UserOnly import com.sangdol.roomescape.auth.web.support.accessToken -import com.sangdol.roomescape.common.util.MdcPrincipalId +import com.sangdol.common.utils.MdcPrincipalIdUtil private val log: KLogger = KotlinLogging.logger {} @@ -33,7 +33,7 @@ class UserInterceptor( val token: String? = request.accessToken() try { - val id: String = jwtUtils.extractSubject(token).also { MdcPrincipalId.set(it) } + val id: String = jwtUtils.extractSubject(token).also { MdcPrincipalIdUtil.set(it) } /** * CLAIM_ADMIN_TYPE_KEY 가 존재하면 관리자 토큰임 diff --git a/service/src/main/kotlin/com/sangdol/roomescape/common/log/ApiLogMessageConverter.kt b/service/src/main/kotlin/com/sangdol/roomescape/common/log/ApiLogMessageConverter.kt index 6ee68b21..f9b7c87b 100644 --- a/service/src/main/kotlin/com/sangdol/roomescape/common/log/ApiLogMessageConverter.kt +++ b/service/src/main/kotlin/com/sangdol/roomescape/common/log/ApiLogMessageConverter.kt @@ -2,7 +2,7 @@ package com.sangdol.roomescape.common.log import com.fasterxml.jackson.databind.ObjectMapper import jakarta.servlet.http.HttpServletRequest -import com.sangdol.roomescape.common.util.MdcPrincipalId +import com.sangdol.common.utils.MdcPrincipalIdUtil enum class LogType { INCOMING_HTTP_REQUEST, @@ -33,7 +33,7 @@ class ApiLogMessageConverter( controllerPayload: Map, ): String { val payload: MutableMap = commonRequestPayload(LogType.CONTROLLER_INVOKED, request) - val memberId: Long? = MdcPrincipalId.extractAsLongOrNull() + val memberId: Long? = MdcPrincipalIdUtil.extractAsLongOrNull() if (memberId != null) payload["principal_id"] = memberId else payload["principal_id"] = "NONE" payload.putAll(controllerPayload) @@ -47,7 +47,7 @@ class ApiLogMessageConverter( payload["endpoint"] = request.endpoint payload["status_code"] = request.httpStatus - MdcPrincipalId.extractAsLongOrNull() + MdcPrincipalIdUtil.extractAsLongOrNull() ?.let { payload["principal_id"] = it } ?: run { payload["principal_id"] = "NONE" } diff --git a/service/src/main/kotlin/com/sangdol/roomescape/common/log/HttpRequestLoggingFilter.kt b/service/src/main/kotlin/com/sangdol/roomescape/common/log/HttpRequestLoggingFilter.kt index 8fc8670a..bf72e30d 100644 --- a/service/src/main/kotlin/com/sangdol/roomescape/common/log/HttpRequestLoggingFilter.kt +++ b/service/src/main/kotlin/com/sangdol/roomescape/common/log/HttpRequestLoggingFilter.kt @@ -9,7 +9,7 @@ import org.slf4j.MDC import org.springframework.web.filter.OncePerRequestFilter import org.springframework.web.util.ContentCachingRequestWrapper import org.springframework.web.util.ContentCachingResponseWrapper -import com.sangdol.roomescape.common.util.MdcPrincipalId +import com.sangdol.common.utils.MdcPrincipalIdUtil private val log: KLogger = KotlinLogging.logger {} @@ -34,7 +34,7 @@ class HttpRequestLoggingFilter( cachedResponse.copyBodyToResponse() } finally { MDC.remove("startTime") - MdcPrincipalId.clear() + MdcPrincipalIdUtil.clear() } } } diff --git a/service/src/main/kotlin/com/sangdol/roomescape/common/util/MDCUtils.kt b/service/src/main/kotlin/com/sangdol/roomescape/common/util/MDCUtils.kt deleted file mode 100644 index 8aa50781..00000000 --- a/service/src/main/kotlin/com/sangdol/roomescape/common/util/MDCUtils.kt +++ /dev/null @@ -1,27 +0,0 @@ -package com.sangdol.roomescape.common.util - -import org.slf4j.MDC -import java.util.* - -private const val MDC_PRINCIPAL_ID_KEY = "principal_id" - -object MdcPrincipalId { - - fun extractAsLongOrNull(): Long? { - return MDC.get(MDC_PRINCIPAL_ID_KEY)?.toLong() - } - - fun extractAsOptionalLongOrEmpty(): Optional { - return MDC.get(MDC_PRINCIPAL_ID_KEY)?.let { - Optional.of(it.toLong()) - } ?: Optional.empty() - } - - fun set(id: String) { - MDC.put(MDC_PRINCIPAL_ID_KEY, id) - } - - fun clear() { - MDC.remove(MDC_PRINCIPAL_ID_KEY) - } -} diff --git a/service/src/main/kotlin/com/sangdol/roomescape/schedule/infrastructure/persistence/ScheduleEntity.kt b/service/src/main/kotlin/com/sangdol/roomescape/schedule/infrastructure/persistence/ScheduleEntity.kt index e4a29126..fde4b384 100644 --- a/service/src/main/kotlin/com/sangdol/roomescape/schedule/infrastructure/persistence/ScheduleEntity.kt +++ b/service/src/main/kotlin/com/sangdol/roomescape/schedule/infrastructure/persistence/ScheduleEntity.kt @@ -1,7 +1,7 @@ package com.sangdol.roomescape.schedule.infrastructure.persistence import com.sangdol.common.persistence.PersistableBaseEntity -import com.sangdol.roomescape.common.util.MdcPrincipalId +import com.sangdol.common.utils.MdcPrincipalIdUtil import jakarta.persistence.* import org.springframework.data.annotation.CreatedBy import org.springframework.data.annotation.CreatedDate @@ -53,7 +53,7 @@ class ScheduleEntity( } fun updateLastModifiedBy() { - MdcPrincipalId.extractAsLongOrNull()?.also { this.updatedBy = it } + MdcPrincipalIdUtil.extractAsLongOrNull()?.also { this.updatedBy = it } } }