From c55738c26b7ed93d3c2cb90827a81446df5987e2 Mon Sep 17 00:00:00 2001 From: "Yunsam.Eo" Date: Mon, 5 Jan 2026 14:41:26 +0900 Subject: [PATCH] =?UTF-8?q?=EC=86=8C=EC=8A=A4=EC=BD=94=EB=93=9C(=EC=A3=BC?= =?UTF-8?q?=EC=84=9D)=20=EC=A0=95=EB=A6=AC,=20Properties=EC=B2=98=EB=A6=AC?= =?UTF-8?q?=20=EB=B3=80=EA=B2=BD.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../http/client/filter/JBOBPFilter.java | 104 +++++------------- .../http/client/filter/KAKAOBankFilter.java | 36 ++++-- .../http/client/filter/KFTCFaceFilter.java | 62 +++++------ .../http/client/filter/KFTCP2PFilter.java | 50 +++++---- .../http/client/filter/NAVERFinFilter.java | 50 +++++---- .../http/client/filter/NICECreditFilter.java | 36 +++++- .../client/filter/SimpleFrameworkFilter.java | 5 +- .../http/client/filter/TOSSBankFilter.java | 47 +++++--- 8 files changed, 212 insertions(+), 178 deletions(-) diff --git a/src/main/java/com/eactive/eai/custom/kjb/adapter/http/client/filter/JBOBPFilter.java b/src/main/java/com/eactive/eai/custom/kjb/adapter/http/client/filter/JBOBPFilter.java index 7f72d00..792e0cc 100644 --- a/src/main/java/com/eactive/eai/custom/kjb/adapter/http/client/filter/JBOBPFilter.java +++ b/src/main/java/com/eactive/eai/custom/kjb/adapter/http/client/filter/JBOBPFilter.java @@ -1,6 +1,5 @@ package com.eactive.eai.custom.kjb.adapter.http.client.filter; -import java.util.Map.Entry; import java.util.Map; import java.util.Properties; import java.util.TreeMap; @@ -28,46 +27,9 @@ public class JBOBPFilter implements HttpClientAdapterFilter, HttpAdapterServiceK throws Exception { logger.debug("JBOBPFilter] PreFilter Processing Start!!"); - Object returnMessage = message; PropGroupVO propGroupVo = PropManager.getInstance().getPropGroupVO(KJB_HEADER); if (propGroupVo != null) systemTrustKey = propGroupVo.getProperty(X_OBP_TRUST_SYSTEM, systemTrustKey); -// Properties inboundHeaders; -// String obp_partnercode; -// try { -// Object headerObj = tempProp.get(HttpAdapterServiceKey.INBOUND_HEADER); -// if (headerObj instanceof Properties) { //tomcat -// inboundHeaders = (Properties) headerObj; -// for ( String key : inboundHeaders.stringPropertyNames()) { -// if(key.equalsIgnoreCase(X_OBP_PARTNERCODE)) { -// obp_partnercode = inboundHeaders.getProperty(key); -// break; -// } -// } -// } else if (headerObj instanceof String) { //weblogic -// String str = (String) headerObj; -// str = str.substring(1, str.length() - 1); -// // 2. key=value 쌍 분리 -// String[] entries = str.split(","); -// // map에 담기 -// Map map = new HashMap<>(); -// for (String entry : entries) { -// String[] kv = entry.split("=", 2); -// if (kv.length == 2) { -// map.put(kv[0].trim(), kv[1].trim()); -// } -// } -// for (String k : map.keySet()) { -// if (k.equalsIgnoreCase(X_OBP_PARTNERCODE)) { -// obp_partnercode = map.get(k); -// break; -// } -// } -// } -// } catch (Exception e) { -// e.printStackTrace(); -// } - Properties filterHeaders = (Properties) tempProp.get("FILTERHEADER"); if (filterHeaders == null) { filterHeaders = new Properties(); @@ -75,13 +37,7 @@ public class JBOBPFilter implements HttpClientAdapterFilter, HttpAdapterServiceK } try { String obpPartnerCode = "000000-00"; - Properties inboundHeader = (Properties)tempProp.get(INBOUND_HEADER); - Map inboundHeaderMap = new TreeMap<>(String.CASE_INSENSITIVE_ORDER); - - // Properties 내용을 모두 복사 - for (String name : inboundHeader.stringPropertyNames()) { - inboundHeaderMap.put(name, inboundHeader.getProperty(name)); - } + Map inboundHeaderMap = getInboundHeaderProp(tempProp); if (!inboundHeaderMap.isEmpty()) { if (inboundHeaderMap.containsKey(X_OBP_PARTNERCODE)) { @@ -94,19 +50,6 @@ public class JBOBPFilter implements HttpClientAdapterFilter, HttpAdapterServiceK } else { filterHeaders.put(X_OBP_PARTNERCODE, obpPartnerCode); logger.debug("JBOBPFilter] Processing Key ["+X_OBP_PARTNERCODE+"], value ["+obpPartnerCode+"]"); -// if (inboundHeader != null){ -// for (Entry e : inboundHeader.entrySet()) { -// String key = (String) e.getKey(); -// String value = (String) e.getValue(); -// -// if (StringUtils.equalsIgnoreCase(key, X_OBP_PARTNERCODE)) { -// filterHeaders.setProperty(key, value); -// logger.debug("JBOBPFilter] Processing Key ["+X_OBP_PARTNERCODE+"], value ["+value+"]"); -// } -// if (logger.isDebugEnabled()) { -// logger.debug("Request Header :" + key + "=[" + value + "]"); -// } -// } } String uuid = tempProp.getProperty(TransactionContextKeys.TRANSACTION_UUID, ""); @@ -122,25 +65,36 @@ public class JBOBPFilter implements HttpClientAdapterFilter, HttpAdapterServiceK logger.error(e.getMessage()); } -// Properties rquestHeaderProp = assignHeaderProp(tempProp, filterHeaders); -// tempProp.put("FILTERHEADER", filterHeaders); - - return returnMessage; + return message; } -// private Properties assignHeaderProp(Properties prop, HashMap filterHeaders) { -// Properties headerProp = new Properties(); -// if (filterHeaders.isEmpty()) { -// return headerProp; -// } -// -// for (String key : filterHeaders.keySet()) { -// String value = filterHeaders.get(key); -// headerProp.put(key, value); -// } -// -// return headerProp; -// } + public Map getInboundHeaderProp(Properties prop) { + Properties header = new Properties(); + Map inboundHeaderMap = new TreeMap<>(String.CASE_INSENSITIVE_ORDER); + try { + Object headerObj = prop.get(HttpAdapterServiceKey.INBOUND_HEADER); + if (headerObj instanceof Properties) { //tomcat + header = (Properties) headerObj; + for (String name : header.stringPropertyNames()) { + inboundHeaderMap.put(name, header.getProperty(name)); + } + } else if (headerObj instanceof String) { //weblogic + String str = (String) headerObj; + str = str.substring(1, str.length() - 1); + // key=value 쌍 분리 + String[] entries = str.split(","); + for (String entry : entries) { + String[] kv = entry.split("=", 2); + if (kv.length == 2) { + inboundHeaderMap.put(kv[0].trim(), kv[1].trim()); + } + } + } + } catch (Exception e) { + e.printStackTrace(); + } + return inboundHeaderMap; + } @Override public Object doPostFilter(String adptGrpName, String adptName, Properties prop, Object message, diff --git a/src/main/java/com/eactive/eai/custom/kjb/adapter/http/client/filter/KAKAOBankFilter.java b/src/main/java/com/eactive/eai/custom/kjb/adapter/http/client/filter/KAKAOBankFilter.java index 1228f34..f1bf44b 100644 --- a/src/main/java/com/eactive/eai/custom/kjb/adapter/http/client/filter/KAKAOBankFilter.java +++ b/src/main/java/com/eactive/eai/custom/kjb/adapter/http/client/filter/KAKAOBankFilter.java @@ -49,13 +49,7 @@ public class KAKAOBankFilter implements HttpClientAdapterFilter, HttpAdapterServ tempProp.put("FILTERHEADER", filterHeaders); } try { - Properties inboundHeader = (Properties)tempProp.get(INBOUND_HEADER); - Map inboundHeaderMap = new TreeMap<>(String.CASE_INSENSITIVE_ORDER); - - // Properties 내용을 모두 복사 - for (String name : inboundHeader.stringPropertyNames()) { - inboundHeaderMap.put(name, inboundHeader.getProperty(name)); - } + Map inboundHeaderMap = getInboundHeaderProp(tempProp); if (!inboundHeaderMap.isEmpty()) { if (inboundHeaderMap.containsKey(X_KKB_PARTNER_CODE)) { @@ -103,6 +97,34 @@ public class KAKAOBankFilter implements HttpClientAdapterFilter, HttpAdapterServ return returnMessage; } + public Map getInboundHeaderProp(Properties prop) { + Properties header = new Properties(); + Map inboundHeaderMap = new TreeMap<>(String.CASE_INSENSITIVE_ORDER); + try { + Object headerObj = prop.get(HttpAdapterServiceKey.INBOUND_HEADER); + if (headerObj instanceof Properties) { //tomcat + header = (Properties) headerObj; + for (String name : header.stringPropertyNames()) { + inboundHeaderMap.put(name, header.getProperty(name)); + } + } else if (headerObj instanceof String) { //weblogic + String str = (String) headerObj; + str = str.substring(1, str.length() - 1); + // key=value 쌍 분리 + String[] entries = str.split(","); + for (String entry : entries) { + String[] kv = entry.split("=", 2); + if (kv.length == 2) { + inboundHeaderMap.put(kv[0].trim(), kv[1].trim()); + } + } + } + } catch (Exception e) { + e.printStackTrace(); + } + return inboundHeaderMap; + } + @Override public Object doPostFilter(String adptGrpName, String adptName, Properties prop, Object message, Properties tempProp) throws Exception { diff --git a/src/main/java/com/eactive/eai/custom/kjb/adapter/http/client/filter/KFTCFaceFilter.java b/src/main/java/com/eactive/eai/custom/kjb/adapter/http/client/filter/KFTCFaceFilter.java index 5ab6f2c..d2b7d4f 100644 --- a/src/main/java/com/eactive/eai/custom/kjb/adapter/http/client/filter/KFTCFaceFilter.java +++ b/src/main/java/com/eactive/eai/custom/kjb/adapter/http/client/filter/KFTCFaceFilter.java @@ -1,6 +1,5 @@ package com.eactive.eai.custom.kjb.adapter.http.client.filter; -import java.util.Map.Entry; import java.text.SimpleDateFormat; import java.util.Date; import java.util.Map; @@ -15,7 +14,6 @@ import org.json.simple.JSONValue; import com.eactive.eai.adapter.AdapterGroupVO; import com.eactive.eai.adapter.AdapterManager; import com.eactive.eai.adapter.http.dynamic.HttpAdapterServiceKey; -//import com.eactive.eai.authoutbound.OutboundOAuthCredentialDao; import com.eactive.eai.common.property.PropGroupVO; import com.eactive.eai.common.property.PropManager; import com.eactive.eai.common.util.Logger; @@ -30,14 +28,8 @@ public class KFTCFaceFilter implements HttpClientAdapterFilter, HttpAdapterServi public static final String B_ORG_CODE = "org_code"; public static final String B_TRANSACTION_ID = "transaction_id"; public static final String B_REQUEST_DATETIME = "request_datetime"; -// private final OutboundOAuthCredentialDao credentialDao; -// public KFTCFaceFilter() { -// this.credentialDao = new OutboundOAuthCredentialDao(); - // TODO Auto-generated constructor stub -// } - - @SuppressWarnings({ "null", "unchecked" }) + @SuppressWarnings({ "unchecked" }) @Override public Object doPreFilter(String adptGrpName, String adptName, Properties prop, Object message, Properties tempProp) throws Exception { @@ -47,9 +39,6 @@ public class KFTCFaceFilter implements HttpClientAdapterFilter, HttpAdapterServi String clientId = ""; String orgCode = "034"; // 광주은행 행코드 -// OutboundOAuthCredentialVo outboundOAuthCredentialVo = credentialDao.getClientId(adptGrpName);//credentialDao.getOutboundOAuthCredential(adptGrpName); -// clientId = credentialDao.getClientId(adptGrpName);//outboundOAuthCredentialVo.getClientId(); - PropGroupVO propGroupVo = PropManager.getInstance().getPropGroupVO(KJB_HEADER); if (propGroupVo != null) { if (StringUtils.isEmpty(clientId)) @@ -66,13 +55,7 @@ public class KFTCFaceFilter implements HttpClientAdapterFilter, HttpAdapterServi tempProp.put("FILTERHEADER", filterHeaders); } try { - Properties inboundHeader = (Properties)tempProp.get(INBOUND_HEADER); - Map inboundHeaderMap = new TreeMap<>(String.CASE_INSENSITIVE_ORDER); - - // Properties 내용을 모두 복사 - for (String name : inboundHeader.stringPropertyNames()) { - inboundHeaderMap.put(name, inboundHeader.getProperty(name)); - } + Map inboundHeaderMap = getInboundHeaderProp(tempProp); if (!inboundHeaderMap.isEmpty()) { if (inboundHeaderMap.containsKey(H_CLIENT_ID)) { @@ -82,19 +65,6 @@ public class KFTCFaceFilter implements HttpClientAdapterFilter, HttpAdapterServi filterHeaders.put(H_CLIENT_ID, clientId); logger.debug("KFTCFaceFilter] Processing Key ["+H_CLIENT_ID+"], value ["+clientId+"]"); } -// if (inboundHeader != null && inboundHeader.containsKey(H_CLIENT_ID)) { -// for (Entry e : inboundHeader.entrySet()) { -// String key = (String) e.getKey(); -// String value = (String) e.getValue(); -// -// if (StringUtils.equalsIgnoreCase(key, H_CLIENT_ID)) { -// filterHeaders.setProperty(key, value); -// logger.debug("KFTCFaceFilter] Processing Key ["+H_CLIENT_ID+"], value ["+value+"]"); -// } -// if (logger.isDebugEnabled()) { -// logger.debug("Request Header :" + key + "=[" + value + "]"); -// } -// } } else { filterHeaders.setProperty(H_CLIENT_ID, clientId); logger.debug("KFTCFaceFilter] Processing Key ["+H_CLIENT_ID+"], value ["+clientId+"]"); @@ -134,6 +104,34 @@ public class KFTCFaceFilter implements HttpClientAdapterFilter, HttpAdapterServi return (JSONObject) JSONValue.parse(message); } + public Map getInboundHeaderProp(Properties prop) { + Properties header = new Properties(); + Map inboundHeaderMap = new TreeMap<>(String.CASE_INSENSITIVE_ORDER); + try { + Object headerObj = prop.get(HttpAdapterServiceKey.INBOUND_HEADER); + if (headerObj instanceof Properties) { //tomcat + header = (Properties) headerObj; + for (String name : header.stringPropertyNames()) { + inboundHeaderMap.put(name, header.getProperty(name)); + } + } else if (headerObj instanceof String) { //weblogic + String str = (String) headerObj; + str = str.substring(1, str.length() - 1); + // key=value 쌍 분리 + String[] entries = str.split(","); + for (String entry : entries) { + String[] kv = entry.split("=", 2); + if (kv.length == 2) { + inboundHeaderMap.put(kv[0].trim(), kv[1].trim()); + } + } + } + } catch (Exception e) { + e.printStackTrace(); + } + return inboundHeaderMap; + } + @Override public Object doPostFilter(String adptGrpName, String adptName, Properties prop, Object message, Properties tempProp) throws Exception { diff --git a/src/main/java/com/eactive/eai/custom/kjb/adapter/http/client/filter/KFTCP2PFilter.java b/src/main/java/com/eactive/eai/custom/kjb/adapter/http/client/filter/KFTCP2PFilter.java index 0434270..92c0f36 100644 --- a/src/main/java/com/eactive/eai/custom/kjb/adapter/http/client/filter/KFTCP2PFilter.java +++ b/src/main/java/com/eactive/eai/custom/kjb/adapter/http/client/filter/KFTCP2PFilter.java @@ -28,7 +28,6 @@ public class KFTCP2PFilter implements HttpClientAdapterFilter, HttpAdapterServic throws Exception { logger.debug("KFTCP2PFilter] PreFilter Processing Start!!"); - Object returnMessage = message; String orgCode = "034"; // 광주은행 행코드 PropGroupVO propGroupVo = PropManager.getInstance().getPropGroupVO(KJB_HEADER); @@ -45,13 +44,7 @@ public class KFTCP2PFilter implements HttpClientAdapterFilter, HttpAdapterServic tempProp.put("FILTERHEADER", filterHeaders); } try { - Properties inboundHeader = (Properties)tempProp.get(INBOUND_HEADER); - Map inboundHeaderMap = new TreeMap<>(String.CASE_INSENSITIVE_ORDER); - - // Properties 내용을 모두 복사 - for (String name : inboundHeader.stringPropertyNames()) { - inboundHeaderMap.put(name, inboundHeader.getProperty(name)); - } + Map inboundHeaderMap = getInboundHeaderProp(tempProp); if (!inboundHeaderMap.isEmpty()) { if (inboundHeaderMap.containsKey(H_TRX_NO)) { @@ -68,17 +61,6 @@ public class KFTCP2PFilter implements HttpClientAdapterFilter, HttpAdapterServic filterHeaders.put(H_TRX_DTM, apiTrxDtm); logger.debug("KFTCP2PFilter] Processing Key ["+H_TRX_DTM+"], value ["+apiTrxDtm+"]"); } -// if (inboundHeader != null) { -// if (inboundHeader.containsKey(H_TRX_NO)) { -// filterHeaders.put(H_TRX_NO, inboundHeader.get(H_TRX_NO)); -// } else { -// filterHeaders.put(H_TRX_NO, apiTrxNo); -// } -// if (inboundHeader.containsKey(H_TRX_DTM)) { -// filterHeaders.put(H_TRX_DTM, inboundHeader.get(H_TRX_DTM)); -// } else { -// filterHeaders.put(H_TRX_DTM, apiTrxDtm); -// } } else { filterHeaders.put(H_TRX_NO, apiTrxNo); filterHeaders.put(H_TRX_DTM, apiTrxDtm); @@ -90,7 +72,35 @@ public class KFTCP2PFilter implements HttpClientAdapterFilter, HttpAdapterServic logger.error(e.getMessage()); } - return returnMessage; + return message; + } + + public Map getInboundHeaderProp(Properties prop) { + Properties header = new Properties(); + Map inboundHeaderMap = new TreeMap<>(String.CASE_INSENSITIVE_ORDER); + try { + Object headerObj = prop.get(HttpAdapterServiceKey.INBOUND_HEADER); + if (headerObj instanceof Properties) { //tomcat + header = (Properties) headerObj; + for (String name : header.stringPropertyNames()) { + inboundHeaderMap.put(name, header.getProperty(name)); + } + } else if (headerObj instanceof String) { //weblogic + String str = (String) headerObj; + str = str.substring(1, str.length() - 1); + // key=value 쌍 분리 + String[] entries = str.split(","); + for (String entry : entries) { + String[] kv = entry.split("=", 2); + if (kv.length == 2) { + inboundHeaderMap.put(kv[0].trim(), kv[1].trim()); + } + } + } + } catch (Exception e) { + e.printStackTrace(); + } + return inboundHeaderMap; } @Override diff --git a/src/main/java/com/eactive/eai/custom/kjb/adapter/http/client/filter/NAVERFinFilter.java b/src/main/java/com/eactive/eai/custom/kjb/adapter/http/client/filter/NAVERFinFilter.java index 390426b..b420a32 100644 --- a/src/main/java/com/eactive/eai/custom/kjb/adapter/http/client/filter/NAVERFinFilter.java +++ b/src/main/java/com/eactive/eai/custom/kjb/adapter/http/client/filter/NAVERFinFilter.java @@ -23,7 +23,6 @@ public class NAVERFinFilter implements HttpClientAdapterFilter, HttpAdapterServi throws Exception { logger.debug("NAVERFinFilter] PreFilter Processing Start!!"); - Object returnMessage = message; String partnerID = "r0jtqwC9gAW5"; String fintechId = "NF"; @@ -39,13 +38,7 @@ public class NAVERFinFilter implements HttpClientAdapterFilter, HttpAdapterServi tempProp.put("FILTERHEADER", filterHeaders); } try { - Properties inboundHeader = (Properties)tempProp.get(INBOUND_HEADER); - Map inboundHeaderMap = new TreeMap<>(String.CASE_INSENSITIVE_ORDER); - - // Properties 내용을 모두 복사 - for (String name : inboundHeader.stringPropertyNames()) { - inboundHeaderMap.put(name, inboundHeader.getProperty(name)); - } + Map inboundHeaderMap = getInboundHeaderProp(tempProp); if (!inboundHeaderMap.isEmpty()) { if (inboundHeaderMap.containsKey(X_PARTNER_ID)) { @@ -62,17 +55,6 @@ public class NAVERFinFilter implements HttpClientAdapterFilter, HttpAdapterServi filterHeaders.put(X_FINTECH_ID, fintechId); logger.debug("NAVERFinFilter] Processing Key ["+X_FINTECH_ID+"], value ["+fintechId+"]"); } -// if (inboundHeader != null) { -// if (inboundHeader.containsKey(X_PARTNER_ID)) { -// filterHeaders.put(X_PARTNER_ID, inboundHeader.get(X_PARTNER_ID)); -// } else { -// filterHeaders.put(X_PARTNER_ID, partnerID); -// } -// if (inboundHeader.containsKey(X_FINTECH_ID)) { -// filterHeaders.put(X_FINTECH_ID, inboundHeader.get(X_FINTECH_ID)); -// } else { -// filterHeaders.put(X_FINTECH_ID, fintechId); -// } } else { filterHeaders.put(X_PARTNER_ID, partnerID); filterHeaders.put(X_FINTECH_ID, fintechId); @@ -84,7 +66,35 @@ public class NAVERFinFilter implements HttpClientAdapterFilter, HttpAdapterServi logger.error(e.getMessage()); } - return returnMessage; + return message; + } + + public Map getInboundHeaderProp(Properties prop) { + Properties header = new Properties(); + Map inboundHeaderMap = new TreeMap<>(String.CASE_INSENSITIVE_ORDER); + try { + Object headerObj = prop.get(HttpAdapterServiceKey.INBOUND_HEADER); + if (headerObj instanceof Properties) { //tomcat + header = (Properties) headerObj; + for (String name : header.stringPropertyNames()) { + inboundHeaderMap.put(name, header.getProperty(name)); + } + } else if (headerObj instanceof String) { //weblogic + String str = (String) headerObj; + str = str.substring(1, str.length() - 1); + // key=value 쌍 분리 + String[] entries = str.split(","); + for (String entry : entries) { + String[] kv = entry.split("=", 2); + if (kv.length == 2) { + inboundHeaderMap.put(kv[0].trim(), kv[1].trim()); + } + } + } + } catch (Exception e) { + e.printStackTrace(); + } + return inboundHeaderMap; } @Override diff --git a/src/main/java/com/eactive/eai/custom/kjb/adapter/http/client/filter/NICECreditFilter.java b/src/main/java/com/eactive/eai/custom/kjb/adapter/http/client/filter/NICECreditFilter.java index 1d3802c..54a8753 100644 --- a/src/main/java/com/eactive/eai/custom/kjb/adapter/http/client/filter/NICECreditFilter.java +++ b/src/main/java/com/eactive/eai/custom/kjb/adapter/http/client/filter/NICECreditFilter.java @@ -3,7 +3,9 @@ package com.eactive.eai.custom.kjb.adapter.http.client.filter; import java.util.Map.Entry; import java.text.SimpleDateFormat; import java.util.Date; +import java.util.Map; import java.util.Properties; +import java.util.TreeMap; import org.apache.commons.lang3.StringUtils; import org.json.simple.JSONObject; @@ -48,9 +50,9 @@ public class NICECreditFilter implements HttpClientAdapterFilter, HttpAdapterSer tempProp.put("FILTERHEADER", filterHeaders); } try { - Properties inboundHeader = (Properties)tempProp.get(INBOUND_HEADER); - if (inboundHeader != null && inboundHeader.containsKey(H_PRODUCTID)) { - for (Entry e : inboundHeader.entrySet()) { + Map inboundHeaderMap = getInboundHeaderProp(tempProp); + if (inboundHeaderMap != null && inboundHeaderMap.containsKey(H_PRODUCTID)) { + for (Entry e : inboundHeaderMap.entrySet()) { String key = (String) e.getKey(); String value = (String) e.getValue(); @@ -98,6 +100,34 @@ public class NICECreditFilter implements HttpClientAdapterFilter, HttpAdapterSer return (JSONObject) JSONValue.parse(message); } + public Map getInboundHeaderProp(Properties prop) { + Properties header = new Properties(); + Map inboundHeaderMap = new TreeMap<>(String.CASE_INSENSITIVE_ORDER); + try { + Object headerObj = prop.get(HttpAdapterServiceKey.INBOUND_HEADER); + if (headerObj instanceof Properties) { //tomcat + header = (Properties) headerObj; + for (String name : header.stringPropertyNames()) { + inboundHeaderMap.put(name, header.getProperty(name)); + } + } else if (headerObj instanceof String) { //weblogic + String str = (String) headerObj; + str = str.substring(1, str.length() - 1); + // key=value 쌍 분리 + String[] entries = str.split(","); + for (String entry : entries) { + String[] kv = entry.split("=", 2); + if (kv.length == 2) { + inboundHeaderMap.put(kv[0].trim(), kv[1].trim()); + } + } + } + } catch (Exception e) { + e.printStackTrace(); + } + return inboundHeaderMap; + } + @Override public Object doPostFilter(String adptGrpName, String adptName, Properties prop, Object message, Properties tempProp) throws Exception { diff --git a/src/main/java/com/eactive/eai/custom/kjb/adapter/http/client/filter/SimpleFrameworkFilter.java b/src/main/java/com/eactive/eai/custom/kjb/adapter/http/client/filter/SimpleFrameworkFilter.java index f4a6813..b9cf4c1 100644 --- a/src/main/java/com/eactive/eai/custom/kjb/adapter/http/client/filter/SimpleFrameworkFilter.java +++ b/src/main/java/com/eactive/eai/custom/kjb/adapter/http/client/filter/SimpleFrameworkFilter.java @@ -22,7 +22,6 @@ public class SimpleFrameworkFilter implements HttpClientAdapterFilter, HttpAdapt throws Exception { logger.debug("SimpleFrameworkFilter] PreFilter Processing Start!!"); - Object returnMessage = message; Properties filterHeaders = (Properties) tempProp.get("FILTERHEADER"); if (filterHeaders == null) { @@ -54,9 +53,7 @@ public class SimpleFrameworkFilter implements HttpClientAdapterFilter, HttpAdapt logger.error(e.getMessage()); } -// tempProp.put("FILTERHEADER", filterHeaders); - - return returnMessage; + return message; } @Override diff --git a/src/main/java/com/eactive/eai/custom/kjb/adapter/http/client/filter/TOSSBankFilter.java b/src/main/java/com/eactive/eai/custom/kjb/adapter/http/client/filter/TOSSBankFilter.java index c052d09..c4b9125 100644 --- a/src/main/java/com/eactive/eai/custom/kjb/adapter/http/client/filter/TOSSBankFilter.java +++ b/src/main/java/com/eactive/eai/custom/kjb/adapter/http/client/filter/TOSSBankFilter.java @@ -23,13 +23,10 @@ public class TOSSBankFilter implements HttpClientAdapterFilter, HttpAdapterServi throws Exception { logger.debug("TOSSBankFilter] PreFilter Processing Start!!"); - Object returnMessage = message; String traceId = tempProp.getProperty(TransactionContextKeys.TRANSACTION_UUID, ""); PropGroupVO propGroupVo = PropManager.getInstance().getPropGroupVO(KJB_HEADER); if (propGroupVo != null) { -// partnerID = propGroupVo.getProperty(PROP_PREFIX + "." + X_PARTNER_ID); -// fintechId = propGroupVo.getProperty(PROP_PREFIX + "." + X_FINTECH_ID); } Properties filterHeaders = (Properties) tempProp.get("FILTERHEADER"); @@ -38,13 +35,7 @@ public class TOSSBankFilter implements HttpClientAdapterFilter, HttpAdapterServi tempProp.put("FILTERHEADER", filterHeaders); } try { - Properties inboundHeader = (Properties)tempProp.get(INBOUND_HEADER); - Map inboundHeaderMap = new TreeMap<>(String.CASE_INSENSITIVE_ORDER); - - // Properties 내용을 모두 복사 - for (String name : inboundHeader.stringPropertyNames()) { - inboundHeaderMap.put(name, inboundHeader.getProperty(name)); - } + Map inboundHeaderMap = getInboundHeaderProp(tempProp); if (!inboundHeaderMap.isEmpty()) { if (inboundHeaderMap.containsKey(X_TOSSBANK_LOAN_TRACE_ID)) { @@ -54,12 +45,6 @@ public class TOSSBankFilter implements HttpClientAdapterFilter, HttpAdapterServi filterHeaders.put(X_TOSSBANK_LOAN_TRACE_ID, traceId); logger.debug("TOSSBankFilter] Processing Key ["+X_TOSSBANK_LOAN_TRACE_ID+"], value ["+traceId+"]"); } -// if (inboundHeader != null) { -// if (inboundHeader.containsKey(X_TOSSBANK_LOAN_TRACE_ID)) { -// filterHeaders.put(X_TOSSBANK_LOAN_TRACE_ID, inboundHeader.get(X_TOSSBANK_LOAN_TRACE_ID)); -// } else { -// filterHeaders.put(X_TOSSBANK_LOAN_TRACE_ID, traceId); -// } } else { /* APIM 거래추적자 */ filterHeaders.setProperty(X_TOSSBANK_LOAN_TRACE_ID, traceId); @@ -71,7 +56,35 @@ public class TOSSBankFilter implements HttpClientAdapterFilter, HttpAdapterServi logger.error(e.getMessage()); } - return returnMessage; + return message; + } + + public Map getInboundHeaderProp(Properties prop) { + Properties header = new Properties(); + Map inboundHeaderMap = new TreeMap<>(String.CASE_INSENSITIVE_ORDER); + try { + Object headerObj = prop.get(HttpAdapterServiceKey.INBOUND_HEADER); + if (headerObj instanceof Properties) { //tomcat + header = (Properties) headerObj; + for (String name : header.stringPropertyNames()) { + inboundHeaderMap.put(name, header.getProperty(name)); + } + } else if (headerObj instanceof String) { //weblogic + String str = (String) headerObj; + str = str.substring(1, str.length() - 1); + // key=value 쌍 분리 + String[] entries = str.split(","); + for (String entry : entries) { + String[] kv = entry.split("=", 2); + if (kv.length == 2) { + inboundHeaderMap.put(kv[0].trim(), kv[1].trim()); + } + } + } + } catch (Exception e) { + e.printStackTrace(); + } + return inboundHeaderMap; } @Override