From 7435204c8fd835a2988cd9a768ec34f63830d0ac Mon Sep 17 00:00:00 2001 From: kanghana1 Date: Sun, 27 Sep 2026 16:39:31 +0900 Subject: [PATCH] =?UTF-8?q?refactor:=20userId=20Provider=EB=A5=BC=20?= =?UTF-8?q?=ED=94=84=EB=A1=9C=ED=8C=8C=EC=9D=BC=20=EA=B8=B0=EB=B0=98?= =?UTF-8?q?=EC=9C=BC=EB=A1=9C=20=EB=B6=84=EB=A6=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit @Primary로 헤더 방식에 고정돼 있어 브라우저 로그인 흐름이 401 나던 문제를 해결. 프로파일에 따라 provider를 선택하도록 변경. - loadtest 프로파일: HeaderUserIdProvider (요청 헤더 userId, 부하테스트용) - 그 외(기본/웹): SecurityContextUserIdProvider (로그인 세션) - @Primary 및 미사용 import 제거 --- .../global/security/utils/HeaderUserIdProvider.java | 5 ++--- .../global/security/utils/SecurityContextUserIdProvider.java | 2 ++ 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/src/main/java/com/practice/course_registration/global/security/utils/HeaderUserIdProvider.java b/src/main/java/com/practice/course_registration/global/security/utils/HeaderUserIdProvider.java index 47ca3f4..c27e53d 100644 --- a/src/main/java/com/practice/course_registration/global/security/utils/HeaderUserIdProvider.java +++ b/src/main/java/com/practice/course_registration/global/security/utils/HeaderUserIdProvider.java @@ -3,14 +3,13 @@ import com.practice.course_registration.global.apiPayload.code.status.ErrorStatus; import com.practice.course_registration.global.apiPayload.exception.handler.ErrorHandler; import jakarta.servlet.http.HttpServletRequest; -import org.springframework.context.annotation.Primary; -import org.springframework.security.core.context.SecurityContextHolder; +import org.springframework.context.annotation.Profile; import org.springframework.stereotype.Component; import org.springframework.web.context.request.RequestContextHolder; import org.springframework.web.context.request.ServletRequestAttributes; @Component -@Primary +@Profile("loadtest") // 부하테스트 프로파일에서만 활성화 (요청 헤더 userId 사용, 로그인 불필요) public class HeaderUserIdProvider implements UserIdProvider { @Override public Long getUserId() { diff --git a/src/main/java/com/practice/course_registration/global/security/utils/SecurityContextUserIdProvider.java b/src/main/java/com/practice/course_registration/global/security/utils/SecurityContextUserIdProvider.java index d569398..8b52e92 100644 --- a/src/main/java/com/practice/course_registration/global/security/utils/SecurityContextUserIdProvider.java +++ b/src/main/java/com/practice/course_registration/global/security/utils/SecurityContextUserIdProvider.java @@ -3,11 +3,13 @@ import com.practice.course_registration.global.apiPayload.code.status.ErrorStatus; import com.practice.course_registration.global.apiPayload.exception.handler.ErrorHandler; import com.practice.course_registration.global.security.domain.CustomUserDetails; +import org.springframework.context.annotation.Profile; import org.springframework.security.core.Authentication; import org.springframework.security.core.context.SecurityContextHolder; import org.springframework.stereotype.Component; @Component +@Profile("!loadtest") // 기본(웹) 활성화: 로그인 세션(SecurityContext)에서 userId 사용 public class SecurityContextUserIdProvider implements UserIdProvider { @Override public Long getUserId() {