From 76339c80ed6ce9e2652d9c3405b17a6274921912 Mon Sep 17 00:00:00 2001 From: "gayoun.park" Date: Fri, 23 Jan 2026 11:03:27 +0900 Subject: [PATCH] =?UTF-8?q?=EB=A1=9C=EA=B7=B8=20ip=20=ED=99=95=EC=9D=B8=20?= =?UTF-8?q?=EB=A1=9C=EC=A7=81=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../cd/kamcoback/auth/CustomAuthenticationProvider.java | 8 +++++++- .../kamco/cd/kamcoback/config/api/ApiResponseAdvice.java | 5 ++++- 2 files changed, 11 insertions(+), 2 deletions(-) diff --git a/src/main/java/com/kamco/cd/kamcoback/auth/CustomAuthenticationProvider.java b/src/main/java/com/kamco/cd/kamcoback/auth/CustomAuthenticationProvider.java index 464ce996..3ce6f2b4 100644 --- a/src/main/java/com/kamco/cd/kamcoback/auth/CustomAuthenticationProvider.java +++ b/src/main/java/com/kamco/cd/kamcoback/auth/CustomAuthenticationProvider.java @@ -4,9 +4,11 @@ import com.kamco.cd.kamcoback.common.enums.StatusType; import com.kamco.cd.kamcoback.common.enums.error.AuthErrorCode; import com.kamco.cd.kamcoback.common.exception.CustomApiException; import com.kamco.cd.kamcoback.common.utils.HeaderUtil; +import com.kamco.cd.kamcoback.config.api.ApiLogFunction; import com.kamco.cd.kamcoback.postgres.entity.MemberEntity; import com.kamco.cd.kamcoback.postgres.repository.members.MembersRepository; import jakarta.servlet.http.HttpServletRequest; +import java.util.Optional; import lombok.RequiredArgsConstructor; import org.mindrot.jbcrypt.BCrypt; import org.springframework.security.authentication.AuthenticationProvider; @@ -60,7 +62,11 @@ public class CustomAuthenticationProvider implements AuthenticationProvider { // front에서 전달한 사용자 ip 등록 HttpServletRequest req = (attr != null) ? attr.getRequest() : null; - String ip = (req != null) ? HeaderUtil.get(req, "X-Forwarded-For") : null; + String ip = + (req != null) + ? Optional.ofNullable(HeaderUtil.get(req, "kamco-user-ip")) + .orElseGet(() -> ApiLogFunction.getXFowardedForIp(req)) + : null; UsernamePasswordAuthenticationToken token = new UsernamePasswordAuthenticationToken(userDetails, null, userDetails.getAuthorities()); diff --git a/src/main/java/com/kamco/cd/kamcoback/config/api/ApiResponseAdvice.java b/src/main/java/com/kamco/cd/kamcoback/config/api/ApiResponseAdvice.java index 7e2575d3..d86669ab 100644 --- a/src/main/java/com/kamco/cd/kamcoback/config/api/ApiResponseAdvice.java +++ b/src/main/java/com/kamco/cd/kamcoback/config/api/ApiResponseAdvice.java @@ -11,6 +11,7 @@ import com.kamco.cd.kamcoback.postgres.repository.log.AuditLogRepository; import jakarta.servlet.http.HttpServletRequest; import java.util.LinkedHashMap; import java.util.List; +import java.util.Optional; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.core.MethodParameter; @@ -75,7 +76,9 @@ public class ApiResponseAdvice implements ResponseBodyAdvice { return body; } - String ip = ApiLogFunction.getXFowardedForIp(servletRequest); + String ip = + Optional.ofNullable(HeaderUtil.get(servletRequest, "kamco-user-ip")) + .orElseGet(() -> ApiLogFunction.getXFowardedForIp(servletRequest)); Long userid = null; String loginAttemptId = null;