From 9d931058e1a5d3ac693570bda37e0e5c214c4cbd Mon Sep 17 00:00:00 2001
From: "Yunsam.Eo"
Date: Thu, 18 Sep 2025 10:34:42 +0900
Subject: [PATCH 1/9] =?UTF-8?q?KJB=20=EC=B4=88=EA=B8=B0=20=EA=B8=B0?=
=?UTF-8?q?=EB=8F=99=20=EC=84=A4=EC=A0=95.=20Baseline?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
WebContent/META-INF/context.xml | 9 +--
.../WEB-INF/properties/env.D.properties | 14 ++--
WebContent/WEB-INF/web.xml | 35 ++++++---
WebContent/WEB-INF/weblogic.xml | 10 +++
WebContent/manage.jsp | 73 +++++++++++++++++++
build.gradle | 4 +-
6 files changed, 119 insertions(+), 26 deletions(-)
create mode 100644 WebContent/manage.jsp
diff --git a/WebContent/META-INF/context.xml b/WebContent/META-INF/context.xml
index 2df0867..8e8180c 100644
--- a/WebContent/META-INF/context.xml
+++ b/WebContent/META-INF/context.xml
@@ -25,10 +25,9 @@
-
+
\ No newline at end of file
diff --git a/WebContent/WEB-INF/properties/env.D.properties b/WebContent/WEB-INF/properties/env.D.properties
index c69e742..f73d61a 100644
--- a/WebContent/WEB-INF/properties/env.D.properties
+++ b/WebContent/WEB-INF/properties/env.D.properties
@@ -2,20 +2,22 @@
# Examples
# - H2 : org.hibernate.dialect.H2Dialect
# - oracle10g : org.hibernate.dialect.Oracle10gDialect
+# - oracle12c : org.hibernate.dialect.Oracle12cDialect
+# - MySQL5 : org.hibernate.dialect.MySQL5Dialect
# - MySQL8 : org.hibernate.dialect.MySQL8Dialect
# - MariaDB 10.3 : org.hibernate.dialect.MariaDB103Dialect
-hibernate.dialect=org.hibernate.dialect.MySQL5Dialect
+hibernate.dialect=org.hibernate.dialect.Oracle12cDialect
# eLink default functions
# set System property in real system
#inst.Name=${HOSTNAME}
-inst.Name=elinkSvr11
-eai.jdbc.Name=NDAPIGW_APP_NXA
-eai.rmiport=10211
-eai.rmiserviceport=10212
+inst.Name=agwSvr11
+eai.jdbc.Name=jdbc/dsOBP_AGW
+eai.rmiport=30111
+eai.rmiserviceport=30112
eai.systemmode=D
# EAI FEP MCI GW ...
eai.systemtype=API
-eai.tableowner=ndapigw
+eai.tableowner=AGWADM
eai.server.extractor=[0,2],[0,2],[-2]
diff --git a/WebContent/WEB-INF/web.xml b/WebContent/WEB-INF/web.xml
index 3e0192a..6661aad 100644
--- a/WebContent/WEB-INF/web.xml
+++ b/WebContent/WEB-INF/web.xml
@@ -34,7 +34,18 @@
contextConfigLocation
/WEB-INF/applicationContext.xml
-
+
+
+
authserver
@@ -60,17 +71,17 @@
-
-
-
-
-
-
-
-
-
-
-
+
+
+ RestApiDynamicInAdapter
+ com.eactive.eai.adapter.http.dynamic.RestApiAdapterMain
+ 2
+
+
+ RestApiDynamicInAdapter
+ /API/*
+ /api/*
+
+<%@ page language="java" contentType="text/html;charset=utf-8"%>
+
+
+ Gateway 관리메뉴
+
+
+ <%
+ String display = null;
+ try{
+ com.eactive.kakao.rolling.TableSuffixResolver service = com.eactive.eai.common.util.ApplicationContextProvider.getContext().getBean(com.eactive.kakao.rolling.TableSuffixResolver.class);
+ com.eactive.kakao.rolling.CurrentCommitIdService currentCommitIdService = com.eactive.eai.common.util.ApplicationContextProvider.getContext().getBean(com.eactive.kakao.rolling.CurrentCommitIdService.class);
+ String currentCommitId = currentCommitIdService.getSystemCommitId();
+ String currentSuffix = service.getCurrentSuffix();
+ if (currentCommitId != null && currentSuffix != null){
+ display = "rolling [ currentCommitId=" + currentCommitId + ", currentSuffix=" + currentSuffix +" ]" ;
+ }
+ }catch(Exception e){
+
+ }
+ %>
+ POD[<%=System.getProperty("inst.Name")%>] IP[<%=request.getLocalAddr()%>] Hostname[<%=java.net.InetAddress.getLocalHost().getHostName()%>] <%=display != null ? display : "" %>
+
+ 오류메시지 관리
+
+ 어댑터 관리
+
+ 프라퍼티 관리
+
+ 로그조회키 관리
+ 메시지 키 관리
+
+ 내부표준메시지 관리
+
+ EAI 서비스 코드 관리
+
+ 라우팅 필드추출 정보
+ 라우팅 B2B기관 정보
+ 라우팅 특정포트 매핑
+
+ EAI 서버 관리
+ Routing 관리
+
+ TestCall 상태 관리
+ LifeCycle List
+
+
+
+
+
+ 어댑터 유량제어 정보
+ 인터페이스 유량제어 정보
+
+
+
diff --git a/build.gradle b/build.gradle
index fbbc1cc..657cb6f 100644
--- a/build.gradle
+++ b/build.gradle
@@ -8,7 +8,7 @@ plugins {
}
group 'com.eactvie'
-version '4.5.7'
+//version '4.5.7'
def springVersion = "5.3.27"
//def springSecurityVersion = '4.2.13.RELEASE'
@@ -46,8 +46,6 @@ compileJava {
}
war {
- archiveFileName = "eapim-online.war"
-
exclude '**/persistence.xml'
exclude '**/context.xml'
}
From a02d179ba18f02925928da1844c154d534371d6d Mon Sep 17 00:00:00 2001
From: jaewohong
Date: Mon, 13 Oct 2025 14:05:47 +0900
Subject: [PATCH 2/9] =?UTF-8?q?KJBank=20=EC=95=94=ED=98=B8=ED=99=94=20?=
=?UTF-8?q?=EA=B4=80=EB=A0=A8=20=EB=B0=8F=20Sync=20=EA=B4=80=EB=A0=A8=20?=
=?UTF-8?q?=EC=88=98=EC=A0=95?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../WEB-INF/properties/env.common.properties | 4 +-
.../adapter/service/ApiAdapterService.java | 167 +++++++++++++++++-
2 files changed, 167 insertions(+), 4 deletions(-)
diff --git a/WebContent/WEB-INF/properties/env.common.properties b/WebContent/WEB-INF/properties/env.common.properties
index 1341574..9122d87 100644
--- a/WebContent/WEB-INF/properties/env.common.properties
+++ b/WebContent/WEB-INF/properties/env.common.properties
@@ -18,7 +18,9 @@ shutdown.wait.intervalms=1000
# message function
# use default options
# async queue
-use.internal.queue=true
+// below false to test Weblogic JMS, jwhong
+#use.internal.queue=true
+use.internal.queue=false
# sync-async mapping
use.internal.topic=true
# restore mapping
diff --git a/src/main/java/com/eactive/eai/adapter/service/ApiAdapterService.java b/src/main/java/com/eactive/eai/adapter/service/ApiAdapterService.java
index ddc536c..d846aa1 100644
--- a/src/main/java/com/eactive/eai/adapter/service/ApiAdapterService.java
+++ b/src/main/java/com/eactive/eai/adapter/service/ApiAdapterService.java
@@ -7,6 +7,7 @@ import com.eactive.eai.adapter.Keys;
import com.eactive.eai.adapter.http.HttpMemoryLogger;
import com.eactive.eai.adapter.http.HttpMethodType;
import com.eactive.eai.adapter.http.dynamic.HttpAdapterServiceSupport;
+import com.eactive.eai.authserver.service.OAuth2Manager;
import com.eactive.eai.common.exception.ExceptionUtil;
import com.eactive.eai.common.message.MessageType;
import com.eactive.eai.common.util.CommonLib;
@@ -18,6 +19,10 @@ import com.eactive.eai.message.StandardMessageUtil;
import com.fasterxml.jackson.databind.JsonNode;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.databind.node.ObjectNode;
+import com.kjbank.encrypt.exchange.crypto.AES256Cipher;
+import com.kjbank.encrypt.exchange.crypto.AESCipher;
+
+import edu.emory.mathcs.backport.java.util.Arrays;
import org.apache.commons.lang3.StringUtils;
import org.apache.commons.lang3.time.StopWatch;
@@ -33,9 +38,32 @@ import org.springframework.util.AntPathMatcher;
import javax.servlet.ServletInputStream;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
+
+import java.io.ByteArrayInputStream;
+import java.io.ByteArrayOutputStream;
+import java.io.IOException;
+import java.io.ObjectInputStream;
+import java.io.ObjectOutputStream;
import java.net.URLDecoder;
+import java.nio.charset.StandardCharsets;
import java.util.*;
+//for encrypt/decrypt jwhong
+import com.kjbank.encrypt.exchange.crypto.AES256Cipher;
+import com.kjbank.encrypt.exchange.crypto.AESCipher;
+import java.nio.charset.StandardCharsets;
+
+import com.eactive.eai.common.util.Logger;
+import edu.emory.mathcs.backport.java.util.Arrays;
+import java.io.ByteArrayOutputStream;
+import java.io.ObjectOutputStream;
+import java.io.IOException;
+import java.io.Serializable;
+import java.io.ByteArrayInputStream;
+import java.io.ObjectInputStream;
+import com.eactive.eai.authserver.vo.ClientVO;
+import org.springframework.security.oauth2.provider.ClientDetails;
+
@Service
public class ApiAdapterService extends HttpAdapterServiceSupport {
static Logger logger = Logger.getLogger(Logger.LOGGER_ADAPTER);
@@ -49,7 +77,7 @@ public class ApiAdapterService extends HttpAdapterServiceSupport {
private static final String JSON_FIELD_NAME = "json-body";
private static final String FILE_GROUP_NAME = "image-file";
private static final String UPLOAD_ROOT_PATH = "UPLOAD_ROOT_PATH";
-
+
public String callApi(HttpServletRequest request, HttpServletResponse response, Properties httpProp, AdapterGroupVO adapterGroupVO, AdapterVO adapterVO, Properties transactionProp) throws Exception {
int traceLevel = 0;
@@ -70,7 +98,7 @@ public class ApiAdapterService extends HttpAdapterServiceSupport {
String paramValue = null;
String adptMsgType = null;
-
+
transactionProp.put(INBOUND_METHOD, request.getMethod());
transactionProp.put(INBOUND_URI, request.getRequestURI());
transactionProp.put(INBOUND_HEADER, getHeaders(request));
@@ -80,7 +108,7 @@ public class ApiAdapterService extends HttpAdapterServiceSupport {
String extUrl = StringUtils.removeStart(request.getRequestURI(), request.getContextPath());
transactionProp.put(INBOUND_EXTURI, extUrl);
} else {
- transactionProp.put(INBOUND_EXTURI, getExtUri(request));
+ transactionProp.put(INBOUND_EXTURI, getExtUri(request));
}
transactionProp.put(INBOUND_CLIENT_IP, getClientIp(request)); // Client IP 추가
transactionProp.put(Processor.REQUEST_ACTION, adapterVO.getAdapterGroupVO().getRefClass());
@@ -92,6 +120,13 @@ public class ApiAdapterService extends HttpAdapterServiceSupport {
transactionProp.put(ENC_PATHS, httpProp.getProperty(ENC_PATHS, ""));
+ transactionProp.put(ENCRYPT_ALGORITHM, httpProp.getProperty(ENCRYPT_ALGORITHM, "")); //jwhong
+ transactionProp.put(HEADER_NAME_CLIENT_ID, getHeaders(request).get(HEADER_NAME_CLIENT_ID)); // jwhong
+ transactionProp.put(ENCRYPT_BASE_TYPE, httpProp.getProperty(ENCRYPT_BASE_TYPE, "")); //jwhong
+ //transactionProp.put(INBOUND_TOKEN, getHeaders(request).get(INBOUND_TOKEN)); // jwhong
+ transactionProp.put(INBOUND_TOKEN, getHeaders(request).get(INBOUND_TOKEN) != null ? getHeaders(request).get(INBOUND_TOKEN) : ""); //jwhong , null 이면 default로 "" put
+
+
try {
traceLevel = Integer.parseInt(traceLevelTemp);
} catch (Exception e) {
@@ -197,6 +232,9 @@ public class ApiAdapterService extends HttpAdapterServiceSupport {
if (paramValue == null) { // parameter가 없는 경우때문에 처리
paramValue = "";
+ }
+ else { // jwhong decrypt
+ paramValue = doPreDecryption(paramValue, transactionProp);
}
if ("Y".equals(urlDecodeYn) && isParameterType) {
@@ -279,6 +317,129 @@ public class ApiAdapterService extends HttpAdapterServiceSupport {
return result;
}
+
+
+ // jwhong encrypt
+
+ private String doPreDecryption(String eaiBody, Properties transactionProp) {
+ String decryptAlgorithm = transactionProp.getProperty(ENCRYPT_ALGORITHM, "");
+ String xElinkClientId = transactionProp.getProperty(HEADER_NAME_CLIENT_ID, ""); // 이 값이 OAuth의 client id 값이다 . http header 에 포함되어 온다. jwhong
+ String encryptBaseKeyType = transactionProp.getProperty(ENCRYPT_BASE_TYPE);
+ String inboundToken = transactionProp.getProperty(INBOUND_TOKEN, "");
+
+ if ( decryptAlgorithm == "" ) { // 복호화 대상이 아님
+ return eaiBody;
+ }
+
+ // 암호화 key를 token 내용으로 할지 client secret 내용으로 할지 결정함. adapter property에 정의함
+ // ENCRYPT_ALGORITHM 을 설정했는데 ENCRYPT_BASE_TYPE을 설정안하면 Decrypt 수행시 Exception 발생함
+ String clientSecret = "";
+ if ("TOKEN".equalsIgnoreCase(encryptBaseKeyType)) {
+ clientSecret = inboundToken;
+ } else if ( "SECRETKEY".equalsIgnoreCase(encryptBaseKeyType)) {
+ OAuth2Manager manager = OAuth2Manager.getInstance();
+ ClientDetails clientDetail = manager.getClientDeatilsStore().get(xElinkClientId);
+
+ if ( clientDetail != null ) {
+ clientSecret = clientDetail.getClientSecret();
+ }
+ }
+
+ byte[] decryptedMessage = null;
+ decryptedMessage = doInboundPreDecrypt(eaiBody, decryptAlgorithm,clientSecret);
+
+ String resultMessage = new String(decryptedMessage, StandardCharsets.UTF_8 );
+ return resultMessage;
+ //return new String(decryptedMessage, StandardCharsets.UTF_8 );
+ }
+
+
+ private byte[] convertObjectToBytes(Object obj) throws IOException {
+ ByteArrayOutputStream bos = new ByteArrayOutputStream();
+ ObjectOutputStream oos = new ObjectOutputStream(bos);
+ oos.writeObject(obj);
+ oos.flush();
+ return bos.toByteArray();
+ }
+
+ private byte[] convertObjectToBase64Bytes(Object obj) throws IOException {
+ ByteArrayOutputStream bos = new ByteArrayOutputStream();
+ ObjectOutputStream oos = new ObjectOutputStream(bos);
+ oos.writeObject(obj);
+ oos.flush();
+ oos.close();
+
+ // 직렬화된 byte[] → Base64 문자열 → 다시 byte[]로 변환
+ String base64String = Base64.getEncoder().encodeToString(bos.toByteArray());
+ return base64String.getBytes(StandardCharsets.UTF_8);
+ }
+
+ public static Object convertBytesToObject(byte[] bytes) throws IOException, ClassNotFoundException {
+ try (ByteArrayInputStream bis = new ByteArrayInputStream(bytes);
+ ObjectInputStream ois = new ObjectInputStream(bis)) {
+ return ois.readObject();
+ }
+ }
+
+
+ private byte[] doInboundPreDecrypt(String eaiStringBody, String decryptAlgorithm, String clientSecretKey) {
+
+ byte[] decryptedMessage = null;
+ //String eaiStringBody = new String(eaiBody, StandardCharsets.UTF_8);
+
+ //test source
+ //System.out.println("eaiBody 바이트 배열 길이: " + eaiBody.length);
+ System.out.println("Base64 문자열: " + eaiStringBody);
+ System.out.println("Base64 문자열 길이: " + eaiStringBody.length());
+ System.out.println("Base64 문자열 끝: " + eaiStringBody.substring(eaiStringBody.length() - 10));
+
+ // Base64 디코딩 테스트
+ try {
+ byte[] decoded = Base64.getDecoder().decode(eaiStringBody);
+ System.out.println("디코딩 성공, 길이: " + decoded.length);
+ } catch (IllegalArgumentException e) {
+ System.out.println("Base64 디코딩 실패: " + e.getMessage());
+ }
+ // end test source
+
+ switch (decryptAlgorithm) {
+ case "AES128":
+
+ String key128 = clientSecretKey.substring(22,38); //togetherEncoder 경우는 substring(44,60) 이네??
+ try {
+ //String decryptedStrMessage = AESCipher.decrypt(eaiStringBody, key128);
+ String decryptedStrMessage = AESCipher.decryptExistException(eaiStringBody, key128);
+ decryptedMessage = decryptedStrMessage.getBytes(StandardCharsets.UTF_8);
+ } catch (Exception e) {
+ e.printStackTrace();
+ logger.error("HttpClientAdapterServiceRest] AES128 Decryption error=" + e.getMessage());
+ }
+ break;
+ case "AES256":
+ String key = clientSecretKey.substring(10,42);
+ try {
+ String decryptedStrMessage = AES256Cipher.decrypt(eaiStringBody, key);
+ decryptedMessage = decryptedStrMessage.getBytes(StandardCharsets.UTF_8);
+ } catch (Exception e) {
+ e.printStackTrace();
+ logger.error("HttpClientAdapterServiceRest] AES256 Decryption error=" + e.getMessage());
+ }
+ break;
+ default:
+ try {
+ //decryptedMessage = Arrays.copyOf(eaiBody, eaiBody.length);
+ decryptedMessage = eaiStringBody.getBytes();
+ } catch (Exception e) {
+ e.printStackTrace();
+ logger.error("HttpClientAdapterServiceRest] doOutboundPostFilter Array copy error=" + e.getMessage());
+ }
+ break;
+ }
+
+ return decryptedMessage;
+ }
+
+ // jwhong until here
private Map assignParameterMap(HttpServletRequest request, String adptGrpName, String adptName,
From 6f26e949c583e6c276e45fba1c93fbde44b2caac Mon Sep 17 00:00:00 2001
From: jaewohong
Date: Mon, 13 Oct 2025 15:10:07 +0900
Subject: [PATCH 3/9] =?UTF-8?q?=EC=95=94=ED=98=B8=ED=99=94=EC=88=98?=
=?UTF-8?q?=EC=A0=95?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../adapter/service/ApiAdapterService.java | 22 +++----------------
1 file changed, 3 insertions(+), 19 deletions(-)
diff --git a/src/main/java/com/eactive/eai/adapter/service/ApiAdapterService.java b/src/main/java/com/eactive/eai/adapter/service/ApiAdapterService.java
index d846aa1..2bb510e 100644
--- a/src/main/java/com/eactive/eai/adapter/service/ApiAdapterService.java
+++ b/src/main/java/com/eactive/eai/adapter/service/ApiAdapterService.java
@@ -7,7 +7,6 @@ import com.eactive.eai.adapter.Keys;
import com.eactive.eai.adapter.http.HttpMemoryLogger;
import com.eactive.eai.adapter.http.HttpMethodType;
import com.eactive.eai.adapter.http.dynamic.HttpAdapterServiceSupport;
-import com.eactive.eai.authserver.service.OAuth2Manager;
import com.eactive.eai.common.exception.ExceptionUtil;
import com.eactive.eai.common.message.MessageType;
import com.eactive.eai.common.util.CommonLib;
@@ -19,16 +18,12 @@ import com.eactive.eai.message.StandardMessageUtil;
import com.fasterxml.jackson.databind.JsonNode;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.databind.node.ObjectNode;
-import com.kjbank.encrypt.exchange.crypto.AES256Cipher;
-import com.kjbank.encrypt.exchange.crypto.AESCipher;
-
-import edu.emory.mathcs.backport.java.util.Arrays;
import org.apache.commons.lang3.StringUtils;
import org.apache.commons.lang3.time.StopWatch;
import org.apache.mina.common.ByteBuffer;
import org.json.simple.JSONObject;
-import org.json.simple.JSONValue;
+import org.json.simple.JSONValue;
import org.springframework.http.HttpHeaders;
import org.springframework.http.HttpMethod;
import org.springframework.http.MediaType;
@@ -38,30 +33,19 @@ import org.springframework.util.AntPathMatcher;
import javax.servlet.ServletInputStream;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
-
-import java.io.ByteArrayInputStream;
-import java.io.ByteArrayOutputStream;
-import java.io.IOException;
-import java.io.ObjectInputStream;
-import java.io.ObjectOutputStream;
import java.net.URLDecoder;
-import java.nio.charset.StandardCharsets;
import java.util.*;
//for encrypt/decrypt jwhong
+import com.eactive.eai.authserver.service.OAuth2Manager;
import com.kjbank.encrypt.exchange.crypto.AES256Cipher;
import com.kjbank.encrypt.exchange.crypto.AESCipher;
import java.nio.charset.StandardCharsets;
-
-import com.eactive.eai.common.util.Logger;
-import edu.emory.mathcs.backport.java.util.Arrays;
+import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.ObjectOutputStream;
import java.io.IOException;
-import java.io.Serializable;
-import java.io.ByteArrayInputStream;
import java.io.ObjectInputStream;
-import com.eactive.eai.authserver.vo.ClientVO;
import org.springframework.security.oauth2.provider.ClientDetails;
@Service
From bb068cce206731ea6a5a40af1ae04d9afa2d1a4c Mon Sep 17 00:00:00 2001
From: jaewohong
Date: Mon, 13 Oct 2025 15:20:52 +0900
Subject: [PATCH 4/9] =?UTF-8?q?KJBank=20=EC=95=94=ED=98=B8=ED=99=94=20?=
=?UTF-8?q?=EA=B4=80=EB=A0=A8=20=EB=B0=8F=20Sync=20=EA=B4=80=EB=A0=A8=20?=
=?UTF-8?q?=EC=88=98=EC=A0=95?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
WebContent/META-INF/context.xml | 36 +++++++++++++++++++++++++++++++++
elink-online-common | 2 +-
elink-online-core | 2 +-
elink-online-core-jpa | 2 +-
elink-online-emsclient | 2 +-
elink-online-transformer | 2 +-
6 files changed, 41 insertions(+), 5 deletions(-)
diff --git a/WebContent/META-INF/context.xml b/WebContent/META-INF/context.xml
index 8e8180c..e2156df 100644
--- a/WebContent/META-INF/context.xml
+++ b/WebContent/META-INF/context.xml
@@ -25,9 +25,45 @@
+<<<<<<< HEAD
+=======
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+>>>>>>> 05596e9 (KJBank 암호화 관련 및 Sync 관련 수정)
\ No newline at end of file
diff --git a/elink-online-common b/elink-online-common
index aacc1a3..8ba0b6e 160000
--- a/elink-online-common
+++ b/elink-online-common
@@ -1 +1 @@
-Subproject commit aacc1a389e145453cf92c18e9d7ffef568cf89e7
+Subproject commit 8ba0b6ee9c9fe1f751be5ee5e727b73faccb80ee
diff --git a/elink-online-core b/elink-online-core
index 0f148e9..668aca0 160000
--- a/elink-online-core
+++ b/elink-online-core
@@ -1 +1 @@
-Subproject commit 0f148e997ec808e01a013baa8ca7b0053a69fe22
+Subproject commit 668aca0ff96e021096ba3add447e36a3c05b4535
diff --git a/elink-online-core-jpa b/elink-online-core-jpa
index 2cd9c29..33cf6fb 160000
--- a/elink-online-core-jpa
+++ b/elink-online-core-jpa
@@ -1 +1 @@
-Subproject commit 2cd9c29d4df228c1ffd7ed6471c8245510b19213
+Subproject commit 33cf6fbd3d5914095d2ef57c72888560bbdb3ac3
diff --git a/elink-online-emsclient b/elink-online-emsclient
index f68423b..b5f62fd 160000
--- a/elink-online-emsclient
+++ b/elink-online-emsclient
@@ -1 +1 @@
-Subproject commit f68423b40ecb5076990739f09f87ec62f7fd17ae
+Subproject commit b5f62fda76bdbb1f50f2427abf3979edad87610f
diff --git a/elink-online-transformer b/elink-online-transformer
index c3e2de4..3e16b13 160000
--- a/elink-online-transformer
+++ b/elink-online-transformer
@@ -1 +1 @@
-Subproject commit c3e2de482be0fa692a5133cf77e0e3dc86357b6e
+Subproject commit 3e16b13d7265518ad140433273101a9d4a4f694d
From 1a5cf2c78ff663471f748e4e5231cfe7b061507d Mon Sep 17 00:00:00 2001
From: jaewohong
Date: Mon, 13 Oct 2025 14:47:47 +0900
Subject: [PATCH 5/9] =?UTF-8?q?=EC=88=98=EC=A0=95?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../adapter/service/ApiAdapterService.java | 139 +-----------------
1 file changed, 3 insertions(+), 136 deletions(-)
diff --git a/src/main/java/com/eactive/eai/adapter/service/ApiAdapterService.java b/src/main/java/com/eactive/eai/adapter/service/ApiAdapterService.java
index 2bb510e..6a72af8 100644
--- a/src/main/java/com/eactive/eai/adapter/service/ApiAdapterService.java
+++ b/src/main/java/com/eactive/eai/adapter/service/ApiAdapterService.java
@@ -61,7 +61,7 @@ public class ApiAdapterService extends HttpAdapterServiceSupport {
private static final String JSON_FIELD_NAME = "json-body";
private static final String FILE_GROUP_NAME = "image-file";
private static final String UPLOAD_ROOT_PATH = "UPLOAD_ROOT_PATH";
-
+
public String callApi(HttpServletRequest request, HttpServletResponse response, Properties httpProp, AdapterGroupVO adapterGroupVO, AdapterVO adapterVO, Properties transactionProp) throws Exception {
int traceLevel = 0;
@@ -82,7 +82,7 @@ public class ApiAdapterService extends HttpAdapterServiceSupport {
String paramValue = null;
String adptMsgType = null;
-
+
transactionProp.put(INBOUND_METHOD, request.getMethod());
transactionProp.put(INBOUND_URI, request.getRequestURI());
transactionProp.put(INBOUND_HEADER, getHeaders(request));
@@ -92,7 +92,7 @@ public class ApiAdapterService extends HttpAdapterServiceSupport {
String extUrl = StringUtils.removeStart(request.getRequestURI(), request.getContextPath());
transactionProp.put(INBOUND_EXTURI, extUrl);
} else {
- transactionProp.put(INBOUND_EXTURI, getExtUri(request));
+ transactionProp.put(INBOUND_EXTURI, getExtUri(request));
}
transactionProp.put(INBOUND_CLIENT_IP, getClientIp(request)); // Client IP 추가
transactionProp.put(Processor.REQUEST_ACTION, adapterVO.getAdapterGroupVO().getRefClass());
@@ -104,13 +104,6 @@ public class ApiAdapterService extends HttpAdapterServiceSupport {
transactionProp.put(ENC_PATHS, httpProp.getProperty(ENC_PATHS, ""));
- transactionProp.put(ENCRYPT_ALGORITHM, httpProp.getProperty(ENCRYPT_ALGORITHM, "")); //jwhong
- transactionProp.put(HEADER_NAME_CLIENT_ID, getHeaders(request).get(HEADER_NAME_CLIENT_ID)); // jwhong
- transactionProp.put(ENCRYPT_BASE_TYPE, httpProp.getProperty(ENCRYPT_BASE_TYPE, "")); //jwhong
- //transactionProp.put(INBOUND_TOKEN, getHeaders(request).get(INBOUND_TOKEN)); // jwhong
- transactionProp.put(INBOUND_TOKEN, getHeaders(request).get(INBOUND_TOKEN) != null ? getHeaders(request).get(INBOUND_TOKEN) : ""); //jwhong , null 이면 default로 "" put
-
-
try {
traceLevel = Integer.parseInt(traceLevelTemp);
} catch (Exception e) {
@@ -216,9 +209,6 @@ public class ApiAdapterService extends HttpAdapterServiceSupport {
if (paramValue == null) { // parameter가 없는 경우때문에 처리
paramValue = "";
- }
- else { // jwhong decrypt
- paramValue = doPreDecryption(paramValue, transactionProp);
}
if ("Y".equals(urlDecodeYn) && isParameterType) {
@@ -301,129 +291,6 @@ public class ApiAdapterService extends HttpAdapterServiceSupport {
return result;
}
-
-
- // jwhong encrypt
-
- private String doPreDecryption(String eaiBody, Properties transactionProp) {
- String decryptAlgorithm = transactionProp.getProperty(ENCRYPT_ALGORITHM, "");
- String xElinkClientId = transactionProp.getProperty(HEADER_NAME_CLIENT_ID, ""); // 이 값이 OAuth의 client id 값이다 . http header 에 포함되어 온다. jwhong
- String encryptBaseKeyType = transactionProp.getProperty(ENCRYPT_BASE_TYPE);
- String inboundToken = transactionProp.getProperty(INBOUND_TOKEN, "");
-
- if ( decryptAlgorithm == "" ) { // 복호화 대상이 아님
- return eaiBody;
- }
-
- // 암호화 key를 token 내용으로 할지 client secret 내용으로 할지 결정함. adapter property에 정의함
- // ENCRYPT_ALGORITHM 을 설정했는데 ENCRYPT_BASE_TYPE을 설정안하면 Decrypt 수행시 Exception 발생함
- String clientSecret = "";
- if ("TOKEN".equalsIgnoreCase(encryptBaseKeyType)) {
- clientSecret = inboundToken;
- } else if ( "SECRETKEY".equalsIgnoreCase(encryptBaseKeyType)) {
- OAuth2Manager manager = OAuth2Manager.getInstance();
- ClientDetails clientDetail = manager.getClientDeatilsStore().get(xElinkClientId);
-
- if ( clientDetail != null ) {
- clientSecret = clientDetail.getClientSecret();
- }
- }
-
- byte[] decryptedMessage = null;
- decryptedMessage = doInboundPreDecrypt(eaiBody, decryptAlgorithm,clientSecret);
-
- String resultMessage = new String(decryptedMessage, StandardCharsets.UTF_8 );
- return resultMessage;
- //return new String(decryptedMessage, StandardCharsets.UTF_8 );
- }
-
-
- private byte[] convertObjectToBytes(Object obj) throws IOException {
- ByteArrayOutputStream bos = new ByteArrayOutputStream();
- ObjectOutputStream oos = new ObjectOutputStream(bos);
- oos.writeObject(obj);
- oos.flush();
- return bos.toByteArray();
- }
-
- private byte[] convertObjectToBase64Bytes(Object obj) throws IOException {
- ByteArrayOutputStream bos = new ByteArrayOutputStream();
- ObjectOutputStream oos = new ObjectOutputStream(bos);
- oos.writeObject(obj);
- oos.flush();
- oos.close();
-
- // 직렬화된 byte[] → Base64 문자열 → 다시 byte[]로 변환
- String base64String = Base64.getEncoder().encodeToString(bos.toByteArray());
- return base64String.getBytes(StandardCharsets.UTF_8);
- }
-
- public static Object convertBytesToObject(byte[] bytes) throws IOException, ClassNotFoundException {
- try (ByteArrayInputStream bis = new ByteArrayInputStream(bytes);
- ObjectInputStream ois = new ObjectInputStream(bis)) {
- return ois.readObject();
- }
- }
-
-
- private byte[] doInboundPreDecrypt(String eaiStringBody, String decryptAlgorithm, String clientSecretKey) {
-
- byte[] decryptedMessage = null;
- //String eaiStringBody = new String(eaiBody, StandardCharsets.UTF_8);
-
- //test source
- //System.out.println("eaiBody 바이트 배열 길이: " + eaiBody.length);
- System.out.println("Base64 문자열: " + eaiStringBody);
- System.out.println("Base64 문자열 길이: " + eaiStringBody.length());
- System.out.println("Base64 문자열 끝: " + eaiStringBody.substring(eaiStringBody.length() - 10));
-
- // Base64 디코딩 테스트
- try {
- byte[] decoded = Base64.getDecoder().decode(eaiStringBody);
- System.out.println("디코딩 성공, 길이: " + decoded.length);
- } catch (IllegalArgumentException e) {
- System.out.println("Base64 디코딩 실패: " + e.getMessage());
- }
- // end test source
-
- switch (decryptAlgorithm) {
- case "AES128":
-
- String key128 = clientSecretKey.substring(22,38); //togetherEncoder 경우는 substring(44,60) 이네??
- try {
- //String decryptedStrMessage = AESCipher.decrypt(eaiStringBody, key128);
- String decryptedStrMessage = AESCipher.decryptExistException(eaiStringBody, key128);
- decryptedMessage = decryptedStrMessage.getBytes(StandardCharsets.UTF_8);
- } catch (Exception e) {
- e.printStackTrace();
- logger.error("HttpClientAdapterServiceRest] AES128 Decryption error=" + e.getMessage());
- }
- break;
- case "AES256":
- String key = clientSecretKey.substring(10,42);
- try {
- String decryptedStrMessage = AES256Cipher.decrypt(eaiStringBody, key);
- decryptedMessage = decryptedStrMessage.getBytes(StandardCharsets.UTF_8);
- } catch (Exception e) {
- e.printStackTrace();
- logger.error("HttpClientAdapterServiceRest] AES256 Decryption error=" + e.getMessage());
- }
- break;
- default:
- try {
- //decryptedMessage = Arrays.copyOf(eaiBody, eaiBody.length);
- decryptedMessage = eaiStringBody.getBytes();
- } catch (Exception e) {
- e.printStackTrace();
- logger.error("HttpClientAdapterServiceRest] doOutboundPostFilter Array copy error=" + e.getMessage());
- }
- break;
- }
-
- return decryptedMessage;
- }
-
- // jwhong until here
private Map assignParameterMap(HttpServletRequest request, String adptGrpName, String adptName,
From 70a5f4d9d4e676aa78514677031af98fadc784d6 Mon Sep 17 00:00:00 2001
From: jaewohong
Date: Mon, 13 Oct 2025 15:02:20 +0900
Subject: [PATCH 6/9] =?UTF-8?q?=EC=95=94=ED=98=B8=ED=99=94=EA=B4=80?=
=?UTF-8?q?=EB=A0=A8=20=EC=88=98=EC=A0=95?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../eai/adapter/service/ApiAdapterService.java | 12 ------------
1 file changed, 12 deletions(-)
diff --git a/src/main/java/com/eactive/eai/adapter/service/ApiAdapterService.java b/src/main/java/com/eactive/eai/adapter/service/ApiAdapterService.java
index 6a72af8..9ff80e3 100644
--- a/src/main/java/com/eactive/eai/adapter/service/ApiAdapterService.java
+++ b/src/main/java/com/eactive/eai/adapter/service/ApiAdapterService.java
@@ -36,18 +36,6 @@ import javax.servlet.http.HttpServletResponse;
import java.net.URLDecoder;
import java.util.*;
-//for encrypt/decrypt jwhong
-import com.eactive.eai.authserver.service.OAuth2Manager;
-import com.kjbank.encrypt.exchange.crypto.AES256Cipher;
-import com.kjbank.encrypt.exchange.crypto.AESCipher;
-import java.nio.charset.StandardCharsets;
-import java.io.ByteArrayInputStream;
-import java.io.ByteArrayOutputStream;
-import java.io.ObjectOutputStream;
-import java.io.IOException;
-import java.io.ObjectInputStream;
-import org.springframework.security.oauth2.provider.ClientDetails;
-
@Service
public class ApiAdapterService extends HttpAdapterServiceSupport {
static Logger logger = Logger.getLogger(Logger.LOGGER_ADAPTER);
From 430cf9a5af38199159a5e95b3eb2683f39ca87c0 Mon Sep 17 00:00:00 2001
From: jaewohong
Date: Mon, 13 Oct 2025 15:25:18 +0900
Subject: [PATCH 7/9] aaaa
---
.../eai/adapter/service/ApiAdapterService.java | 15 ++++++++++++++-
1 file changed, 14 insertions(+), 1 deletion(-)
diff --git a/src/main/java/com/eactive/eai/adapter/service/ApiAdapterService.java b/src/main/java/com/eactive/eai/adapter/service/ApiAdapterService.java
index 9ff80e3..f527741 100644
--- a/src/main/java/com/eactive/eai/adapter/service/ApiAdapterService.java
+++ b/src/main/java/com/eactive/eai/adapter/service/ApiAdapterService.java
@@ -23,7 +23,7 @@ import org.apache.commons.lang3.StringUtils;
import org.apache.commons.lang3.time.StopWatch;
import org.apache.mina.common.ByteBuffer;
import org.json.simple.JSONObject;
-import org.json.simple.JSONValue;
+import org.json.simple.JSONValue;
import org.springframework.http.HttpHeaders;
import org.springframework.http.HttpMethod;
import org.springframework.http.MediaType;
@@ -36,6 +36,19 @@ import javax.servlet.http.HttpServletResponse;
import java.net.URLDecoder;
import java.util.*;
+//for encrypt/decrypt jwhong
+import com.eactive.eai.authserver.service.OAuth2Manager;
+import com.kjbank.encrypt.exchange.crypto.AES256Cipher;
+import com.kjbank.encrypt.exchange.crypto.AESCipher;
+import java.nio.charset.StandardCharsets;
+import java.io.ByteArrayInputStream;
+import java.io.ByteArrayOutputStream;
+import java.io.ObjectOutputStream;
+import java.io.IOException;
+import java.io.ObjectInputStream;
+import org.springframework.security.oauth2.provider.ClientDetails;
+
+
@Service
public class ApiAdapterService extends HttpAdapterServiceSupport {
static Logger logger = Logger.getLogger(Logger.LOGGER_ADAPTER);
From bf0f77838fec2803ce58be35cfd8563dc5d0d8be Mon Sep 17 00:00:00 2001
From: jaewohong
Date: Mon, 13 Oct 2025 16:24:57 +0900
Subject: [PATCH 8/9] =?UTF-8?q?KJBank=20=EC=95=94=ED=98=B8=ED=99=94=20?=
=?UTF-8?q?=EA=B4=80=EB=A0=A8=20=EC=88=98=EC=A0=95?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../adapter/service/ApiAdapterService.java | 140 +++++++++++++++++-
1 file changed, 136 insertions(+), 4 deletions(-)
diff --git a/src/main/java/com/eactive/eai/adapter/service/ApiAdapterService.java b/src/main/java/com/eactive/eai/adapter/service/ApiAdapterService.java
index f527741..77b80b4 100644
--- a/src/main/java/com/eactive/eai/adapter/service/ApiAdapterService.java
+++ b/src/main/java/com/eactive/eai/adapter/service/ApiAdapterService.java
@@ -48,7 +48,6 @@ import java.io.IOException;
import java.io.ObjectInputStream;
import org.springframework.security.oauth2.provider.ClientDetails;
-
@Service
public class ApiAdapterService extends HttpAdapterServiceSupport {
static Logger logger = Logger.getLogger(Logger.LOGGER_ADAPTER);
@@ -62,7 +61,7 @@ public class ApiAdapterService extends HttpAdapterServiceSupport {
private static final String JSON_FIELD_NAME = "json-body";
private static final String FILE_GROUP_NAME = "image-file";
private static final String UPLOAD_ROOT_PATH = "UPLOAD_ROOT_PATH";
-
+
public String callApi(HttpServletRequest request, HttpServletResponse response, Properties httpProp, AdapterGroupVO adapterGroupVO, AdapterVO adapterVO, Properties transactionProp) throws Exception {
int traceLevel = 0;
@@ -83,7 +82,7 @@ public class ApiAdapterService extends HttpAdapterServiceSupport {
String paramValue = null;
String adptMsgType = null;
-
+
transactionProp.put(INBOUND_METHOD, request.getMethod());
transactionProp.put(INBOUND_URI, request.getRequestURI());
transactionProp.put(INBOUND_HEADER, getHeaders(request));
@@ -93,7 +92,7 @@ public class ApiAdapterService extends HttpAdapterServiceSupport {
String extUrl = StringUtils.removeStart(request.getRequestURI(), request.getContextPath());
transactionProp.put(INBOUND_EXTURI, extUrl);
} else {
- transactionProp.put(INBOUND_EXTURI, getExtUri(request));
+ transactionProp.put(INBOUND_EXTURI, getExtUri(request));
}
transactionProp.put(INBOUND_CLIENT_IP, getClientIp(request)); // Client IP 추가
transactionProp.put(Processor.REQUEST_ACTION, adapterVO.getAdapterGroupVO().getRefClass());
@@ -105,6 +104,13 @@ public class ApiAdapterService extends HttpAdapterServiceSupport {
transactionProp.put(ENC_PATHS, httpProp.getProperty(ENC_PATHS, ""));
+ transactionProp.put(ENCRYPT_ALGORITHM, httpProp.getProperty(ENCRYPT_ALGORITHM, "")); //jwhong
+ transactionProp.put(HEADER_NAME_CLIENT_ID, getHeaders(request).get(HEADER_NAME_CLIENT_ID)); // jwhong
+ transactionProp.put(ENCRYPT_BASE_TYPE, httpProp.getProperty(ENCRYPT_BASE_TYPE, "")); //jwhong
+ //transactionProp.put(INBOUND_TOKEN, getHeaders(request).get(INBOUND_TOKEN)); // jwhong
+ transactionProp.put(INBOUND_TOKEN, getHeaders(request).get(INBOUND_TOKEN) != null ? getHeaders(request).get(INBOUND_TOKEN) : ""); //jwhong , null 이면 default로 "" put
+
+
try {
traceLevel = Integer.parseInt(traceLevelTemp);
} catch (Exception e) {
@@ -210,6 +216,9 @@ public class ApiAdapterService extends HttpAdapterServiceSupport {
if (paramValue == null) { // parameter가 없는 경우때문에 처리
paramValue = "";
+ }
+ else { // jwhong decrypt
+ paramValue = doPreDecryption(paramValue, transactionProp);
}
if ("Y".equals(urlDecodeYn) && isParameterType) {
@@ -292,6 +301,129 @@ public class ApiAdapterService extends HttpAdapterServiceSupport {
return result;
}
+
+
+ // jwhong encrypt
+
+ private String doPreDecryption(String eaiBody, Properties transactionProp) {
+ String decryptAlgorithm = transactionProp.getProperty(ENCRYPT_ALGORITHM, "");
+ String xElinkClientId = transactionProp.getProperty(HEADER_NAME_CLIENT_ID, ""); // 이 값이 OAuth의 client id 값이다 . http header 에 포함되어 온다. jwhong
+ String encryptBaseKeyType = transactionProp.getProperty(ENCRYPT_BASE_TYPE);
+ String inboundToken = transactionProp.getProperty(INBOUND_TOKEN, "");
+
+ if ( decryptAlgorithm == "" ) { // 복호화 대상이 아님
+ return eaiBody;
+ }
+
+ // 암호화 key를 token 내용으로 할지 client secret 내용으로 할지 결정함. adapter property에 정의함
+ // ENCRYPT_ALGORITHM 을 설정했는데 ENCRYPT_BASE_TYPE을 설정안하면 Decrypt 수행시 Exception 발생함
+ String clientSecret = "";
+ if ("TOKEN".equalsIgnoreCase(encryptBaseKeyType)) {
+ clientSecret = inboundToken;
+ } else if ( "SECRETKEY".equalsIgnoreCase(encryptBaseKeyType)) {
+ OAuth2Manager manager = OAuth2Manager.getInstance();
+ ClientDetails clientDetail = manager.getClientDeatilsStore().get(xElinkClientId);
+
+ if ( clientDetail != null ) {
+ clientSecret = clientDetail.getClientSecret();
+ }
+ }
+
+ byte[] decryptedMessage = null;
+ decryptedMessage = doInboundPreDecrypt(eaiBody, decryptAlgorithm,clientSecret);
+
+ String resultMessage = new String(decryptedMessage, StandardCharsets.UTF_8 );
+ return resultMessage;
+ //return new String(decryptedMessage, StandardCharsets.UTF_8 );
+ }
+
+
+ private byte[] convertObjectToBytes(Object obj) throws IOException {
+ ByteArrayOutputStream bos = new ByteArrayOutputStream();
+ ObjectOutputStream oos = new ObjectOutputStream(bos);
+ oos.writeObject(obj);
+ oos.flush();
+ return bos.toByteArray();
+ }
+
+ private byte[] convertObjectToBase64Bytes(Object obj) throws IOException {
+ ByteArrayOutputStream bos = new ByteArrayOutputStream();
+ ObjectOutputStream oos = new ObjectOutputStream(bos);
+ oos.writeObject(obj);
+ oos.flush();
+ oos.close();
+
+ // 직렬화된 byte[] → Base64 문자열 → 다시 byte[]로 변환
+ String base64String = Base64.getEncoder().encodeToString(bos.toByteArray());
+ return base64String.getBytes(StandardCharsets.UTF_8);
+ }
+
+ public static Object convertBytesToObject(byte[] bytes) throws IOException, ClassNotFoundException {
+ try (ByteArrayInputStream bis = new ByteArrayInputStream(bytes);
+ ObjectInputStream ois = new ObjectInputStream(bis)) {
+ return ois.readObject();
+ }
+ }
+
+
+ private byte[] doInboundPreDecrypt(String eaiStringBody, String decryptAlgorithm, String clientSecretKey) {
+
+ byte[] decryptedMessage = null;
+ //String eaiStringBody = new String(eaiBody, StandardCharsets.UTF_8);
+
+ //test source
+ //System.out.println("eaiBody 바이트 배열 길이: " + eaiBody.length);
+ System.out.println("Base64 문자열: " + eaiStringBody);
+ System.out.println("Base64 문자열 길이: " + eaiStringBody.length());
+ System.out.println("Base64 문자열 끝: " + eaiStringBody.substring(eaiStringBody.length() - 10));
+
+ // Base64 디코딩 테스트
+ try {
+ byte[] decoded = Base64.getDecoder().decode(eaiStringBody);
+ System.out.println("디코딩 성공, 길이: " + decoded.length);
+ } catch (IllegalArgumentException e) {
+ System.out.println("Base64 디코딩 실패: " + e.getMessage());
+ }
+ // end test source
+
+ switch (decryptAlgorithm) {
+ case "AES128":
+
+ String key128 = clientSecretKey.substring(22,38); //togetherEncoder 경우는 substring(44,60) 이네??
+ try {
+ //String decryptedStrMessage = AESCipher.decrypt(eaiStringBody, key128);
+ String decryptedStrMessage = AESCipher.decryptExistException(eaiStringBody, key128);
+ decryptedMessage = decryptedStrMessage.getBytes(StandardCharsets.UTF_8);
+ } catch (Exception e) {
+ e.printStackTrace();
+ logger.error("HttpClientAdapterServiceRest] AES128 Decryption error=" + e.getMessage());
+ }
+ break;
+ case "AES256":
+ String key = clientSecretKey.substring(10,42);
+ try {
+ String decryptedStrMessage = AES256Cipher.decrypt(eaiStringBody, key);
+ decryptedMessage = decryptedStrMessage.getBytes(StandardCharsets.UTF_8);
+ } catch (Exception e) {
+ e.printStackTrace();
+ logger.error("HttpClientAdapterServiceRest] AES256 Decryption error=" + e.getMessage());
+ }
+ break;
+ default:
+ try {
+ //decryptedMessage = Arrays.copyOf(eaiBody, eaiBody.length);
+ decryptedMessage = eaiStringBody.getBytes();
+ } catch (Exception e) {
+ e.printStackTrace();
+ logger.error("HttpClientAdapterServiceRest] doOutboundPostFilter Array copy error=" + e.getMessage());
+ }
+ break;
+ }
+
+ return decryptedMessage;
+ }
+
+ // jwhong until here
private Map assignParameterMap(HttpServletRequest request, String adptGrpName, String adptName,
From 4c4a22a2a58e847541162a671d745a7731e7bad4 Mon Sep 17 00:00:00 2001
From: jaewohong
Date: Mon, 13 Oct 2025 16:31:54 +0900
Subject: [PATCH 9/9] =?UTF-8?q?=EC=88=98=EC=A0=95?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
WebContent/META-INF/context.xml | 7 -------
1 file changed, 7 deletions(-)
diff --git a/WebContent/META-INF/context.xml b/WebContent/META-INF/context.xml
index e2156df..385912e 100644
--- a/WebContent/META-INF/context.xml
+++ b/WebContent/META-INF/context.xml
@@ -25,12 +25,6 @@
-<<<<<<< HEAD
-
-=======