UMS 발송시 was ip, mac 주소 동적으로 설정
eapim-admin CI / build (push) Has been cancelled

This commit is contained in:
eastargh
2026-09-07 18:44:14 +09:00
parent 15652e158d
commit e084436c90
@@ -4,6 +4,8 @@ import java.io.BufferedReader;
import java.io.InputStreamReader; import java.io.InputStreamReader;
import java.io.OutputStream; import java.io.OutputStream;
import java.net.HttpURLConnection; import java.net.HttpURLConnection;
import java.net.InetAddress;
import java.net.NetworkInterface;
import java.net.URL; import java.net.URL;
import java.nio.charset.Charset; import java.nio.charset.Charset;
import java.security.SecureRandom; import java.security.SecureRandom;
@@ -119,6 +121,8 @@ public class UmsService {
} }
responseData = sb.toString(); responseData = sb.toString();
log.debug("UMS responseData:" + responseData);
} finally { } finally {
// http 요청 및 응답 완료 후 BufferedReader를 닫는다 // http 요청 및 응답 완료 후 BufferedReader를 닫는다
if (br != null) { if (br != null) {
@@ -132,6 +136,44 @@ public class UmsService {
/**
* 표준 헤더의 최초전문송신IP(frst_trnm_ipad)용 - 프로퍼티 설정값 대신 현재 서버(WAS)의 실제 IP를 조회한다.
* 조회 실패 시에는 기존처럼 djb.ums.was_ip_address 프로퍼티 값으로 대체한다.
*/
private String getCurrentServerIp() {
try {
return InetAddress.getLocalHost().getHostAddress();
} catch (Exception e) {
log.error("getCurrentServerIp error", e);
return propertyService.getPropertyValue("Monitoring", "djb.ums.was_ip_address", "");
}
}
/**
* 표준 헤더의 최초전문송신MAC(frst_trnm_mac)용 - 프로퍼티 설정값 대신 현재 서버(WAS)의 실제 MAC 주소를 조회한다.
* 조회 실패(네트워크 인터페이스를 찾지 못하는 경우 포함) 시에는 기존처럼 djb.ums.was_mac_address 프로퍼티 값으로 대체한다.
*/
private String getCurrentServerMac() {
try {
NetworkInterface ni = NetworkInterface.getByInetAddress(InetAddress.getLocalHost());
byte[] mac = (ni != null) ? ni.getHardwareAddress() : null;
if (mac == null) {
return propertyService.getPropertyValue("Monitoring", "djb.ums.was_mac_address", "");
}
StringBuilder sb = new StringBuilder();
for (int i = 0; i < mac.length; i++) {
if (i > 0) {
sb.append(":");
}
sb.append(String.format("%02X", mac[i]));
}
return sb.toString();
} catch (Exception e) {
log.error("getCurrentServerMac error", e);
return propertyService.getPropertyValue("Monitoring", "djb.ums.was_mac_address", "");
}
}
private String makeBodyData(MessageRequest messageRequest) { private String makeBodyData(MessageRequest messageRequest) {
// 리턴값 // 리턴값
String rtnVal = ""; String rtnVal = "";
@@ -147,9 +189,9 @@ public class UmsService {
stdHeadVO.setStnd_mesg_ver("R10"); stdHeadVO.setStnd_mesg_ver("R10");
stdHeadVO.setOrtr_guid(jsonData[2]); stdHeadVO.setOrtr_guid(jsonData[2]);
stdHeadVO.setSect_ecrpt_yn("N"); stdHeadVO.setSect_ecrpt_yn("N");
stdHeadVO.setFrst_trnm_ipad(propertyService.getPropertyValue("Monitoring", "djb.ums.was_ip_address", "")); stdHeadVO.setFrst_trnm_ipad(getCurrentServerIp());
stdHeadVO.setFrst_trnm_ipv4_addr(propertyService.getPropertyValue("Monitoring", "djb.ums.was_ip_address", "")); stdHeadVO.setFrst_trnm_ipv4_addr(getCurrentServerIp());
stdHeadVO.setFrst_trnm_mac(propertyService.getPropertyValue("Monitoring", "djb.ums.was_mac_address", "")); stdHeadVO.setFrst_trnm_mac(getCurrentServerMac());
stdHeadVO.setFrst_mesg_dman_dt(jsonData[0]); stdHeadVO.setFrst_mesg_dman_dt(jsonData[0]);
stdHeadVO.setFrst_mesg_dman_time(jsonData[1]); stdHeadVO.setFrst_mesg_dman_time(jsonData[1]);
stdHeadVO.setFrst_trnm_sys_dvcd(SYS_DVCD); stdHeadVO.setFrst_trnm_sys_dvcd(SYS_DVCD);