From 56dc4350b27ceb9b9fbfb5f3b3e44d3a05de48fb Mon Sep 17 00:00:00 2001 From: Rinjae Date: Mon, 24 Nov 2025 18:01:12 +0900 Subject: [PATCH] =?UTF-8?q?Proxy=20IP=20=EC=B2=98=EB=A6=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../rms/bat/manage/rule/inter/BatInterfaceController.java | 6 ++---- .../acl/audit/adapter/in/web/AuditLogInterceptor.java | 3 ++- .../eactive/eai/rms/common/acl/user/UserManController.java | 5 +++-- .../rms/common/acl/user/util/UserRegistUtilController.java | 3 ++- .../rms/common/logging/RequestParameterLoggingAspect.java | 3 ++- .../eactive/eai/rms/common/logging/UserAccessLogger.java | 3 ++- .../com/eactive/eai/rms/common/login/MainController.java | 3 ++- .../rms/onl/manage/adapter/adapter/AdapterController.java | 7 ++----- .../rms/onl/manage/rule/layout/LayoutManController.java | 6 ++---- .../rms/onl/manage/rule/transform/TransformController.java | 6 ++---- .../onl/manage/rule/transform2/Transform2Controller.java | 6 ++---- .../onl/manage/serviceinfo/eaimsg/EaiMsgController.java | 6 ++---- 12 files changed, 25 insertions(+), 32 deletions(-) diff --git a/src/main/java/com/eactive/eai/rms/bat/manage/rule/inter/BatInterfaceController.java b/src/main/java/com/eactive/eai/rms/bat/manage/rule/inter/BatInterfaceController.java index 707471d..3a74467 100644 --- a/src/main/java/com/eactive/eai/rms/bat/manage/rule/inter/BatInterfaceController.java +++ b/src/main/java/com/eactive/eai/rms/bat/manage/rule/inter/BatInterfaceController.java @@ -35,6 +35,7 @@ import com.eactive.eai.rms.common.util.CamelCaseUtil; import com.eactive.eai.rms.common.util.CommonUtil; import com.eactive.eai.rms.common.vo.JsonPageVo; import com.eactive.eai.rms.onl.common.sql.BatInterfaceSqlService; +import com.eactive.eai.util.IpUtil; import com.eactive.eai.rms.onl.loader.service.TransactionLoaderService; @Controller @@ -289,10 +290,7 @@ public class BatInterfaceController extends BatBaseAnnotationController { String targetUrl = monitoringContext.getStringProperty(MonitoringContext.IOMAP_DEPLOY_TARGET_URL); targetUrl = StringUtils.removeEnd(targetUrl, "/"); - String userIp = request.getHeader("X-FORWARDED-FOR"); - if (StringUtils.isBlank(userIp)) { - userIp = request.getRemoteAddr(); - } + String userIp = IpUtil.getClientIp(request); if (logger.isInfoEnabled()) { logger.info("-------------------------------------------"); diff --git a/src/main/java/com/eactive/eai/rms/common/acl/audit/adapter/in/web/AuditLogInterceptor.java b/src/main/java/com/eactive/eai/rms/common/acl/audit/adapter/in/web/AuditLogInterceptor.java index 3698919..641d0a3 100644 --- a/src/main/java/com/eactive/eai/rms/common/acl/audit/adapter/in/web/AuditLogInterceptor.java +++ b/src/main/java/com/eactive/eai/rms/common/acl/audit/adapter/in/web/AuditLogInterceptor.java @@ -14,6 +14,7 @@ import com.eactive.eai.rms.common.acl.audit.port.in.IsAuditableUsecase; import com.eactive.eai.rms.common.acl.audit.port.in.SaveAuditLogUseCase; import com.eactive.eai.rms.common.login.LoginVo; import com.eactive.eai.rms.common.util.CommonConstants; +import com.eactive.eai.util.IpUtil; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; @@ -36,7 +37,7 @@ public class AuditLogInterceptor implements HandlerInterceptor { String userId = loginVo.getUserId(); String command = request.getParameter("cmd"); String systemCode = request.getParameter("serviceType"); - String remoteAddress = request.getRemoteAddr(); + String remoteAddress = IpUtil.getClientIp(request); if (isAuditableUsecase.isAuditable(userId, command, logType, systemCode)) { String parameters = getParametersAsString(request); diff --git a/src/main/java/com/eactive/eai/rms/common/acl/user/UserManController.java b/src/main/java/com/eactive/eai/rms/common/acl/user/UserManController.java index 490ccfc..f70bc89 100644 --- a/src/main/java/com/eactive/eai/rms/common/acl/user/UserManController.java +++ b/src/main/java/com/eactive/eai/rms/common/acl/user/UserManController.java @@ -30,6 +30,7 @@ import com.eactive.eai.rms.common.datasource.DataSourceTypeManager; import com.eactive.eai.rms.common.login.SessionManager; import com.eactive.eai.rms.common.vo.GridResponse; import com.eactive.eai.rms.data.entity.onl.unifbwk.UnifBwkTpService; +import com.eactive.eai.util.IpUtil; import com.fasterxml.jackson.core.JsonProcessingException; import com.fasterxml.jackson.core.type.TypeReference; import com.fasterxml.jackson.databind.ObjectMapper; @@ -264,9 +265,9 @@ public class UserManController extends BaseAnnotationController { /* 권한 역할 변경이력 관련 */ private AdminLoginVo getAdminLoginVo(HttpServletRequest request) { AdminLoginVo adminLoginVo = new AdminLoginVo(); - adminLoginVo.setLoginIp(request.getRemoteAddr()); + adminLoginVo.setLoginIp(IpUtil.getClientIp(request)); adminLoginVo.setLoginId(SessionManager.getUserId(request)); - + return adminLoginVo; } } diff --git a/src/main/java/com/eactive/eai/rms/common/acl/user/util/UserRegistUtilController.java b/src/main/java/com/eactive/eai/rms/common/acl/user/util/UserRegistUtilController.java index 00c8e09..21c8a31 100644 --- a/src/main/java/com/eactive/eai/rms/common/acl/user/util/UserRegistUtilController.java +++ b/src/main/java/com/eactive/eai/rms/common/acl/user/util/UserRegistUtilController.java @@ -5,6 +5,7 @@ import com.eactive.eai.rms.common.base.BaseAnnotationController; import com.eactive.eai.rms.common.datasource.DataSourceType; import com.eactive.eai.rms.common.datasource.DataSourceTypeManager; import com.eactive.eai.rms.common.login.SessionManager; +import com.eactive.eai.util.IpUtil; import com.fasterxml.jackson.databind.ObjectMapper; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.http.ResponseEntity; @@ -68,7 +69,7 @@ public class UserRegistUtilController extends BaseAnnotationController { private AdminLoginVo getAdminLoginVo(HttpServletRequest request) { AdminLoginVo adminLoginVo = new AdminLoginVo(); - adminLoginVo.setLoginIp(request.getRemoteAddr()); + adminLoginVo.setLoginIp(IpUtil.getClientIp(request)); adminLoginVo.setLoginId(SessionManager.getUserId(request)); return adminLoginVo; diff --git a/src/main/java/com/eactive/eai/rms/common/logging/RequestParameterLoggingAspect.java b/src/main/java/com/eactive/eai/rms/common/logging/RequestParameterLoggingAspect.java index 22e9ab1..c776ebd 100644 --- a/src/main/java/com/eactive/eai/rms/common/logging/RequestParameterLoggingAspect.java +++ b/src/main/java/com/eactive/eai/rms/common/logging/RequestParameterLoggingAspect.java @@ -17,6 +17,7 @@ import com.eactive.eai.rms.common.datasource.DataSourceType; import com.eactive.eai.rms.common.datasource.DataSourceTypeManager; import com.eactive.eai.rms.common.login.SessionManager; import com.eactive.eai.rms.common.util.StringUtils; +import com.eactive.eai.util.IpUtil; @Aspect @Component @@ -139,7 +140,7 @@ public class RequestParameterLoggingAspect { HashMap param = new HashMap(); param.put("schemaId", dt == null ? "" : dt.getSchema()); param.put("id", id); - param.put("userIp", request.getRemoteAddr()); + param.put("userIp", IpUtil.getClientIp(request)); param.put("type", type); param.put("sub", sub); param.put("msg", msg); diff --git a/src/main/java/com/eactive/eai/rms/common/logging/UserAccessLogger.java b/src/main/java/com/eactive/eai/rms/common/logging/UserAccessLogger.java index 832b8f0..d817927 100644 --- a/src/main/java/com/eactive/eai/rms/common/logging/UserAccessLogger.java +++ b/src/main/java/com/eactive/eai/rms/common/logging/UserAccessLogger.java @@ -5,6 +5,7 @@ import javax.servlet.http.HttpServletRequest; import org.apache.log4j.Logger; import com.eactive.eai.rms.common.login.SessionManager; +import com.eactive.eai.util.IpUtil; public class UserAccessLogger { private static final Logger ACCESS_LOGGER = Logger.getLogger("ACCESS_LOGGER"); @@ -46,7 +47,7 @@ public class UserAccessLogger { if (ACCESS_LOGGER.isInfoEnabled()) { StringBuilder sb = new StringBuilder(); sb.append("ID=").append(SessionManager.getUserId(request)).append(sep); - sb.append("IP=").append(request.getRemoteAddr()).append(sep); + sb.append("IP=").append(IpUtil.getClientIp(request)).append(sep); sb.append("TYPE=").append(type).append(sep); sb.append("SUB=").append(sub).append(sep); sb.append("MSG=").append(msg).append(sep); diff --git a/src/main/java/com/eactive/eai/rms/common/login/MainController.java b/src/main/java/com/eactive/eai/rms/common/login/MainController.java index 95c7f6b..4e5125e 100644 --- a/src/main/java/com/eactive/eai/rms/common/login/MainController.java +++ b/src/main/java/com/eactive/eai/rms/common/login/MainController.java @@ -32,6 +32,7 @@ import org.springframework.web.servlet.View; import com.eactive.eai.common.seed.Seed; import com.eactive.eai.data.converter.LocalDateTimeFormatters; import com.eactive.eai.rms.common.context.MonitoringContext; +import com.eactive.eai.util.IpUtil; import com.eactive.eai.rms.common.datasource.DataSourceType; import com.eactive.eai.rms.common.datasource.DataSourceTypeManager; import com.eactive.eai.rms.common.interceptor.InterceptorSkipController; @@ -290,7 +291,7 @@ public class MainController implements InterceptorSkipController { // 사용자 최신 로그인 정보 업데이트 private void updateUserInfo(HttpServletRequest request, UserInfo userInfo) { - String lastLoginIp = request.getRemoteAddr(); + String lastLoginIp = IpUtil.getClientIp(request); userInfo.setLastloginyms(LocalDateTime.now()); userInfo.setLastloginip(lastLoginIp); userInfoService.save(userInfo); diff --git a/src/main/java/com/eactive/eai/rms/onl/manage/adapter/adapter/AdapterController.java b/src/main/java/com/eactive/eai/rms/onl/manage/adapter/adapter/AdapterController.java index 2e9745c..8baf6e8 100644 --- a/src/main/java/com/eactive/eai/rms/onl/manage/adapter/adapter/AdapterController.java +++ b/src/main/java/com/eactive/eai/rms/onl/manage/adapter/adapter/AdapterController.java @@ -39,6 +39,7 @@ import com.eactive.eai.rms.common.spring.LocaleMessage; import com.eactive.eai.rms.common.util.MonitoringSyncAgent; import com.eactive.eai.rms.common.vo.GridResponse; import com.eactive.eai.rms.data.entity.onl.adapter.AdapterGroupService; +import com.eactive.eai.util.IpUtil; import com.eactive.eai.rms.onl.loader.service.HistoryService; import com.eactive.eai.rms.onl.loader.service.TransactionLoaderService; import com.eactive.eai.rms.onl.manage.adapter.adapter.ui.AdapterExportData; @@ -358,11 +359,7 @@ public class AdapterController extends OnlBaseAnnotationController { MonitoringContext.IOMAP_DEPLOY_TARGET_URL); targetUrl = StringUtils.removeEnd(targetUrl, "/"); - String userIp = request.getHeader("X-FORWARDED-FOR"); - - if (StringUtils.isBlank(userIp)) { - userIp = request.getRemoteAddr(); - } + String userIp = IpUtil.getClientIp(request); if (logger.isInfoEnabled()) { logger.info("-------------------------------------------"); diff --git a/src/main/java/com/eactive/eai/rms/onl/manage/rule/layout/LayoutManController.java b/src/main/java/com/eactive/eai/rms/onl/manage/rule/layout/LayoutManController.java index 68a9140..36aaf8a 100644 --- a/src/main/java/com/eactive/eai/rms/onl/manage/rule/layout/LayoutManController.java +++ b/src/main/java/com/eactive/eai/rms/onl/manage/rule/layout/LayoutManController.java @@ -53,6 +53,7 @@ import com.eactive.eai.rms.common.util.CommonUtil; import com.eactive.eai.rms.common.vo.GridResponse; import com.eactive.eai.rms.common.vo.JsonPageVo; import com.eactive.eai.rms.common.vo.SimpleResponse; +import com.eactive.eai.util.IpUtil; import com.eactive.eai.rms.onl.common.exception.BizException; import com.eactive.eai.rms.onl.loader.service.HistoryService; import com.eactive.eai.rms.onl.loader.service.TransactionLoaderService; @@ -458,10 +459,7 @@ public class LayoutManController extends OnlBaseAnnotationController { String targetUrl = monitoringContext.getStringProperty(MonitoringContext.IOMAP_DEPLOY_TARGET_URL); targetUrl = StringUtils.removeEnd(targetUrl, "/"); - String userIp = request.getHeader("X-FORWARDED-FOR"); - if (StringUtils.isBlank(userIp)) { - userIp = request.getRemoteAddr(); - } + String userIp = IpUtil.getClientIp(request); if (logger.isInfoEnabled()) { logger.info("-------------------------------------------"); diff --git a/src/main/java/com/eactive/eai/rms/onl/manage/rule/transform/TransformController.java b/src/main/java/com/eactive/eai/rms/onl/manage/rule/transform/TransformController.java index 6c232c2..260a572 100644 --- a/src/main/java/com/eactive/eai/rms/onl/manage/rule/transform/TransformController.java +++ b/src/main/java/com/eactive/eai/rms/onl/manage/rule/transform/TransformController.java @@ -35,6 +35,7 @@ import com.eactive.eai.rms.common.util.CamelCaseUtil; import com.eactive.eai.rms.common.util.CommonUtil; import com.eactive.eai.rms.common.vo.JsonPageVo; import com.eactive.eai.rms.onl.common.exception.BizException; +import com.eactive.eai.util.IpUtil; import com.eactive.eai.rms.onl.loader.service.HistoryService; import com.eactive.eai.rms.onl.loader.service.TransactionLoaderService; import com.google.gson.Gson; @@ -486,10 +487,7 @@ public class TransformController extends BaseController { String targetUrl = monitoringContext.getStringProperty(MonitoringContext.IOMAP_DEPLOY_TARGET_URL); targetUrl = StringUtils.removeEnd(targetUrl, "/"); - String userIp = request.getHeader("X-FORWARDED-FOR"); - if (StringUtils.isBlank(userIp)) { - userIp = request.getRemoteAddr(); - } + String userIp = IpUtil.getClientIp(request); if (logger.isInfoEnabled()) { logger.info("-------------------------------------------"); diff --git a/src/main/java/com/eactive/eai/rms/onl/manage/rule/transform2/Transform2Controller.java b/src/main/java/com/eactive/eai/rms/onl/manage/rule/transform2/Transform2Controller.java index c626c43..864b692 100644 --- a/src/main/java/com/eactive/eai/rms/onl/manage/rule/transform2/Transform2Controller.java +++ b/src/main/java/com/eactive/eai/rms/onl/manage/rule/transform2/Transform2Controller.java @@ -37,6 +37,7 @@ import com.eactive.eai.rms.common.vo.GridResponse; import com.eactive.eai.rms.common.vo.SimpleResponse; import com.eactive.eai.rms.onl.common.exception.BizException; import com.eactive.eai.rms.onl.common.exception.EMSRuntimeException; +import com.eactive.eai.util.IpUtil; import com.eactive.eai.rms.onl.loader.service.HistoryService; import com.eactive.eai.rms.onl.loader.service.TransactionLoaderService; import com.eactive.eai.rms.onl.manage.rule.layout.LayoutManService; @@ -392,10 +393,7 @@ public class Transform2Controller extends BaseController { String targetUrl = monitoringContext.getStringProperty(MonitoringContext.IOMAP_DEPLOY_TARGET_URL); targetUrl = StringUtils.removeEnd(targetUrl, "/"); - String userIp = request.getHeader("X-FORWARDED-FOR"); - if (StringUtils.isBlank(userIp)) { - userIp = request.getRemoteAddr(); - } + String userIp = IpUtil.getClientIp(request); if (logger.isInfoEnabled()) { logger.info("-------------------------------------------"); diff --git a/src/main/java/com/eactive/eai/rms/onl/manage/serviceinfo/eaimsg/EaiMsgController.java b/src/main/java/com/eactive/eai/rms/onl/manage/serviceinfo/eaimsg/EaiMsgController.java index 179e466..c75b058 100644 --- a/src/main/java/com/eactive/eai/rms/onl/manage/serviceinfo/eaimsg/EaiMsgController.java +++ b/src/main/java/com/eactive/eai/rms/onl/manage/serviceinfo/eaimsg/EaiMsgController.java @@ -41,6 +41,7 @@ import com.eactive.eai.rms.common.util.CommonUtil; import com.eactive.eai.rms.common.vo.GridResponse; import com.eactive.eai.rms.data.entity.onl.eaimsg.EAIMessageUISearch; import com.eactive.eai.rms.onl.common.exception.EMSRuntimeException; +import com.eactive.eai.util.IpUtil; import com.eactive.eai.rms.onl.loader.service.HistoryService; import com.eactive.eai.rms.onl.loader.service.TransactionLoaderService; import com.eactive.eai.rms.onl.manage.adapter.adapter.AdapterManService; @@ -393,10 +394,7 @@ public class EaiMsgController extends BaseController { String targetUrl = monitoringContext.getStringProperty(MonitoringContext.IOMAP_DEPLOY_TARGET_URL); targetUrl = StringUtils.removeEnd(targetUrl, "/"); - String userIp = request.getHeader("X-FORWARDED-FOR"); - if (StringUtils.isBlank(userIp)) { - userIp = request.getRemoteAddr(); - } + String userIp = IpUtil.getClientIp(request); if (logger.isInfoEnabled()) { logger.info("-------------------------------------------");