online-common 의존 코드 해제

This commit is contained in:
Rinjae
2025-11-24 19:13:34 +09:00
parent e9ea563a70
commit 1b1d6c9c2e
13 changed files with 85 additions and 12 deletions
@@ -33,9 +33,9 @@ import com.eactive.eai.rms.common.login.SessionManager;
import com.eactive.eai.rms.common.spring.LocaleMessage;
import com.eactive.eai.rms.common.util.CamelCaseUtil;
import com.eactive.eai.rms.common.util.CommonUtil;
import com.eactive.eai.rms.common.util.IpUtil;
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
@@ -14,7 +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 com.eactive.eai.rms.common.util.IpUtil;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
@@ -28,9 +28,9 @@ import com.eactive.eai.rms.common.acl.user.ui.UserUISearch;
import com.eactive.eai.rms.common.base.BaseAnnotationController;
import com.eactive.eai.rms.common.datasource.DataSourceTypeManager;
import com.eactive.eai.rms.common.login.SessionManager;
import com.eactive.eai.rms.common.util.IpUtil;
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;
@@ -5,7 +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.eactive.eai.rms.common.util.IpUtil;
import com.fasterxml.jackson.databind.ObjectMapper;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.ResponseEntity;
@@ -16,8 +16,8 @@ import com.eactive.eai.rms.common.datasource.DataSourceContextHolder;
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.IpUtil;
import com.eactive.eai.rms.common.util.StringUtils;
import com.eactive.eai.util.IpUtil;
@Aspect
@Component
@@ -5,7 +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;
import com.eactive.eai.rms.common.util.IpUtil;
public class UserAccessLogger {
private static final Logger ACCESS_LOGGER = Logger.getLogger("ACCESS_LOGGER");
@@ -32,11 +32,11 @@ 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;
import com.eactive.eai.rms.common.logging.UserAccessLogger;
import com.eactive.eai.rms.common.util.IpUtil;
import com.eactive.eai.rms.common.spring.LocaleMessage;
import com.eactive.eai.rms.common.util.CommonConstants;
import com.eactive.eai.rms.data.entity.man.monitoringProperty.service.MonitoringPropertyService;
@@ -0,0 +1,73 @@
package com.eactive.eai.rms.common.util;
import javax.servlet.http.HttpServletRequest;
import org.apache.commons.lang3.StringUtils;
/**
* IP 주소 관련 유틸리티 클래스
*
* 프록시(OHS, WebLogic 등)를 통해 들어온 요청의 실제 클라이언트 IP를 추출합니다.
*/
public class IpUtil {
/**
* HttpServletRequest에서 실제 클라이언트 IP를 추출합니다.
* 프록시(OHS, WebLogic 등)를 통해 들어온 요청의 경우 프록시 헤더를 확인하여 실제 클라이언트 IP를 반환합니다.
*
* 확인하는 헤더 순서:
* 1. X-Forwarded-For (가장 일반적인 프록시 헤더)
* 2. Proxy-Client-IP
* 3. WL-Proxy-Client-IP (WebLogic 전용 헤더)
* 4. HTTP_X_FORWARDED_FOR
* 5. request.getRemoteAddr() (fallback)
*
* @param request HttpServletRequest 객체
* @return 실제 클라이언트 IP 주소
*/
public static String getClientIp(HttpServletRequest request) {
if (request == null) {
return "unknown";
}
String ip = request.getHeader("X-Forwarded-For");
if (StringUtils.isBlank(ip) || "unknown".equalsIgnoreCase(ip)) {
ip = request.getHeader("Proxy-Client-IP");
}
if (StringUtils.isBlank(ip) || "unknown".equalsIgnoreCase(ip)) {
ip = request.getHeader("WL-Proxy-Client-IP");
}
if (StringUtils.isBlank(ip) || "unknown".equalsIgnoreCase(ip)) {
ip = request.getHeader("HTTP_X_FORWARDED_FOR");
}
if (StringUtils.isBlank(ip) || "unknown".equalsIgnoreCase(ip)) {
ip = request.getRemoteAddr();
}
// X-Forwarded-For 헤더에 여러 IP가 쉼표로 구분되어 있을 경우 첫 번째 IP만 사용
if (ip != null && ip.indexOf(",") > 0) {
ip = ip.substring(0, ip.indexOf(",")).trim();
}
return ip;
}
/**
* IP 주소가 유효한 IPv4 형식인지 검증합니다.
*
* @param ip 검증할 IP 주소
* @return 유효한 IPv4 형식이면 true, 아니면 false
*/
public static boolean isValidIp(String ip) {
if (StringUtils.isBlank(ip)) {
return false;
}
String ipPattern = "(25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(\\.(25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}";
return ip.matches(ipPattern);
}
}
@@ -36,10 +36,10 @@ 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.spring.LocaleMessage;
import com.eactive.eai.rms.common.util.IpUtil;
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;
@@ -50,10 +50,10 @@ import com.eactive.eai.rms.common.datasource.DataSourceTypeManager;
import com.eactive.eai.rms.common.login.SessionManager;
import com.eactive.eai.rms.common.spring.LocaleMessage;
import com.eactive.eai.rms.common.util.CommonUtil;
import com.eactive.eai.rms.common.util.IpUtil;
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;
@@ -33,9 +33,9 @@ import com.eactive.eai.rms.common.spring.BaseController;
import com.eactive.eai.rms.common.spring.LocaleMessage;
import com.eactive.eai.rms.common.util.CamelCaseUtil;
import com.eactive.eai.rms.common.util.CommonUtil;
import com.eactive.eai.rms.common.util.IpUtil;
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;
@@ -33,11 +33,11 @@ import com.eactive.eai.rms.common.datasource.DataSourceTypeManager;
import com.eactive.eai.rms.common.login.SessionManager;
import com.eactive.eai.rms.common.spring.BaseController;
import com.eactive.eai.rms.common.spring.LocaleMessage;
import com.eactive.eai.rms.common.util.IpUtil;
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;
@@ -38,10 +38,10 @@ import com.eactive.eai.rms.common.login.SessionManager;
import com.eactive.eai.rms.common.spring.BaseController;
import com.eactive.eai.rms.common.spring.LocaleMessage;
import com.eactive.eai.rms.common.util.CommonUtil;
import com.eactive.eai.rms.common.util.IpUtil;
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;