From 28b233aeff41a8f2f3a92e05bec45295b38117ba Mon Sep 17 00:00:00 2001 From: curry772 Date: Wed, 13 May 2026 15:58:32 +0900 Subject: [PATCH] =?UTF-8?q?refactor:=20HttpClient5=20=EC=96=B4=EB=8C=91?= =?UTF-8?q?=ED=84=B0=20=ED=95=84=ED=84=B0=20=ED=8C=A8=ED=82=A4=EC=A7=80?= =?UTF-8?q?=EB=A5=BC=20elink-online-common=EC=9C=BC=EB=A1=9C=20=EC=9D=B4?= =?UTF-8?q?=EB=8F=99?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - custom/kjb/adapter/http/client/filter/ 패키지 삭제 (elink-online-common으로 이동) - custom/kjb/adapter/http/client/impl/HttpClient5AdapterServiceRestAddFilter.java 삭제 - elink-online-common 서브모듈 업데이트 Co-Authored-By: Claude Sonnet 4.6 --- elink-online-common | 2 +- .../http/client/filter/AllHeaderFilter.java | 123 ---------- .../client/filter/AsyncReponseFilter.java | 118 ---------- .../HttpClient5AdapterFilterFactory.java | 115 --------- .../filter/HttpClient5AdapterFilterType.java | 27 --- .../filter/HttpClientAdapterBaseFilter.java | 62 ----- .../HttpClientAdapterExceptionFilter.java | 10 - .../filter/HttpClientAdapterFilter.java | 12 - .../HttpClientAdapterFilterException.java | 35 --- .../http/client/filter/JBOBPFilter.java | 106 --------- .../http/client/filter/KAKAOBankFilter.java | 135 ----------- .../http/client/filter/KFTCFaceFilter.java | 154 ------------ .../http/client/filter/KFTCP2PFilter.java | 122 ---------- .../http/client/filter/NAVERFinFilter.java | 107 --------- .../http/client/filter/NICECreditFilter.java | 138 ----------- .../client/filter/SimpleFrameworkFilter.java | 109 --------- .../filter/SimpleframeworkBodyFilter.java | 28 --- .../http/client/filter/TOSSBankFilter.java | 97 -------- .../http/client/filter/TraceBodyFilter.java | 71 ------ ...ttpClient5AdapterServiceRestAddFilter.java | 222 ------------------ 20 files changed, 1 insertion(+), 1792 deletions(-) delete mode 100644 src/main/java/com/eactive/eai/custom/kjb/adapter/http/client/filter/AllHeaderFilter.java delete mode 100644 src/main/java/com/eactive/eai/custom/kjb/adapter/http/client/filter/AsyncReponseFilter.java delete mode 100644 src/main/java/com/eactive/eai/custom/kjb/adapter/http/client/filter/HttpClient5AdapterFilterFactory.java delete mode 100644 src/main/java/com/eactive/eai/custom/kjb/adapter/http/client/filter/HttpClient5AdapterFilterType.java delete mode 100644 src/main/java/com/eactive/eai/custom/kjb/adapter/http/client/filter/HttpClientAdapterBaseFilter.java delete mode 100644 src/main/java/com/eactive/eai/custom/kjb/adapter/http/client/filter/HttpClientAdapterExceptionFilter.java delete mode 100644 src/main/java/com/eactive/eai/custom/kjb/adapter/http/client/filter/HttpClientAdapterFilter.java delete mode 100644 src/main/java/com/eactive/eai/custom/kjb/adapter/http/client/filter/HttpClientAdapterFilterException.java delete mode 100644 src/main/java/com/eactive/eai/custom/kjb/adapter/http/client/filter/JBOBPFilter.java delete mode 100644 src/main/java/com/eactive/eai/custom/kjb/adapter/http/client/filter/KAKAOBankFilter.java delete mode 100644 src/main/java/com/eactive/eai/custom/kjb/adapter/http/client/filter/KFTCFaceFilter.java delete mode 100644 src/main/java/com/eactive/eai/custom/kjb/adapter/http/client/filter/KFTCP2PFilter.java delete mode 100644 src/main/java/com/eactive/eai/custom/kjb/adapter/http/client/filter/NAVERFinFilter.java delete mode 100644 src/main/java/com/eactive/eai/custom/kjb/adapter/http/client/filter/NICECreditFilter.java delete mode 100644 src/main/java/com/eactive/eai/custom/kjb/adapter/http/client/filter/SimpleFrameworkFilter.java delete mode 100644 src/main/java/com/eactive/eai/custom/kjb/adapter/http/client/filter/SimpleframeworkBodyFilter.java delete mode 100644 src/main/java/com/eactive/eai/custom/kjb/adapter/http/client/filter/TOSSBankFilter.java delete mode 100644 src/main/java/com/eactive/eai/custom/kjb/adapter/http/client/filter/TraceBodyFilter.java delete mode 100644 src/main/java/com/eactive/eai/custom/kjb/adapter/http/client/impl/HttpClient5AdapterServiceRestAddFilter.java diff --git a/elink-online-common b/elink-online-common index 813bb99..db7a728 160000 --- a/elink-online-common +++ b/elink-online-common @@ -1 +1 @@ -Subproject commit 813bb99952634740ad5d9c088fc564439127403b +Subproject commit db7a728344408b3edac53644df6f986b5885c440 diff --git a/src/main/java/com/eactive/eai/custom/kjb/adapter/http/client/filter/AllHeaderFilter.java b/src/main/java/com/eactive/eai/custom/kjb/adapter/http/client/filter/AllHeaderFilter.java deleted file mode 100644 index 7663bda..0000000 --- a/src/main/java/com/eactive/eai/custom/kjb/adapter/http/client/filter/AllHeaderFilter.java +++ /dev/null @@ -1,123 +0,0 @@ -package com.eactive.eai.custom.kjb.adapter.http.client.filter; - -import java.util.Arrays; -import java.util.Map; -import java.util.Properties; -import java.util.TreeMap; -import java.util.stream.Stream; - -import org.apache.commons.lang3.StringUtils; - -import com.eactive.eai.adapter.http.dynamic.HttpAdapterServiceKey; -import com.eactive.eai.adapter.http.dynamic.HttpAdapterServiceSupport; -import com.eactive.eai.common.TransactionContextKeys; -import com.eactive.eai.common.property.PropManager; -import com.eactive.eai.common.util.Logger; - -public class AllHeaderFilter implements HttpClientAdapterFilter, HttpAdapterServiceKey { - protected static Logger logger = Logger.getLogger(Logger.LOGGER_ADAPTER); - - public static final String PROPERTIES_GROUP_NAME = "HttpHeaderFilter"; - public static final String HEADER_KEY_NAMES = "AllHeaderFilter.blackList"; - - - String[] HttpHeaderRelayBlackList = { - "Content-Length", - "Transfer-Encoding", - "Host", - "Authorization", - "Accept", - "Host", - "Cookie", - "Connection", - "Keep-Alive", - "Proxy-Authenticate", - "Proxy-Authorization", - "TE", - "Trailer", - "Transfer-Encoding", - "Upgrade", - "Content-Type", - "Content-Encoding", - "Content-Language", - "Content-Location", - "Content-MD5", - "Expect", - }; - - @Override - public Object doPreFilter(String adptGrpName, String adptName, Properties prop, Object message, Properties tempProp) - throws Exception { - - logger.debug("doPreFilter Processing Start."); - - Properties filterHeaders = (Properties) tempProp.get("FILTERHEADER"); - if (filterHeaders == null) { - filterHeaders = new Properties(); - tempProp.put("FILTERHEADER", filterHeaders); - } - - Map inboundHeaderMap = getInboundHeaderProp(tempProp); - - String propValue = PropManager.getInstance().getProperty(PROPERTIES_GROUP_NAME, HEADER_KEY_NAMES, "").trim(); - - String[] userSettingBlackList = propValue.split(","); - - if( userSettingBlackList.length > 0 ) { - HttpHeaderRelayBlackList = Stream - .concat(Arrays.stream(HttpHeaderRelayBlackList), Arrays.stream(userSettingBlackList)) - .toArray(String[]::new); - } - - - for(String keyName : inboundHeaderMap.keySet() ) { - - if( StringUtils.equalsAnyIgnoreCase( keyName, HttpHeaderRelayBlackList ) ) { - logger.debug("Skip Processing Key ["+keyName+"], value ["+inboundHeaderMap.get(keyName)+"] in HttpHeaderRelayBlackList"); - continue; - } - - filterHeaders.put(keyName, inboundHeaderMap.get(keyName)); - logger.debug("Processing Key ["+keyName+"], value ["+inboundHeaderMap.get(keyName)+"]"); - } - - logger.debug("doPreFilter Processing End."); - - 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 - public Object doPostFilter(String adptGrpName, String adptName, Properties prop, Object message, - Properties tempProp) throws Exception { - return message; - } - -} diff --git a/src/main/java/com/eactive/eai/custom/kjb/adapter/http/client/filter/AsyncReponseFilter.java b/src/main/java/com/eactive/eai/custom/kjb/adapter/http/client/filter/AsyncReponseFilter.java deleted file mode 100644 index 5fe0988..0000000 --- a/src/main/java/com/eactive/eai/custom/kjb/adapter/http/client/filter/AsyncReponseFilter.java +++ /dev/null @@ -1,118 +0,0 @@ -package com.eactive.eai.custom.kjb.adapter.http.client.filter; - -import java.util.Arrays; -import java.util.Map; -import java.util.Properties; -import java.util.TreeMap; - -import org.apache.commons.lang3.StringUtils; - -import com.eactive.eai.adapter.http.dynamic.HttpAdapterServiceKey; -import com.eactive.eai.common.TransactionContextKeys; -import com.eactive.eai.common.property.PropManager; -import com.eactive.eai.common.util.Logger; - - -public class AsyncReponseFilter implements HttpClientAdapterFilter, HttpAdapterServiceKey { - protected static Logger logger = Logger.getLogger(Logger.LOGGER_ADAPTER); - - public static final String X_TRACE_ID = "partnerTraceId"; - public static final String TRACE_ID = "traceId"; - - public static final String PROPERTIES_GROUP_NAME = "HttpHeaderFilter"; - public static final String HEADER_KEY_NAMES = "AsyncReponseFilter"; - - - @Override - public Object doPreFilter(String adptGrpName, String adptName, Properties prop, Object message, Properties tempProp) - throws Exception { - - logger.debug("AsyncReponseFilter] PreFilter Processing Start!!"); - String traceId = tempProp.getProperty(TransactionContextKeys.TRANSACTION_UUID, ""); - - Properties filterHeaders = (Properties) tempProp.get("FILTERHEADER"); - if (filterHeaders == null) { - filterHeaders = new Properties(); - tempProp.put("FILTERHEADER", filterHeaders); - } - - String propValue = PropManager.getInstance().getProperty(PROPERTIES_GROUP_NAME, HEADER_KEY_NAMES, "").trim(); - - String[] headerKeyNames = propValue.split(","); - - - headerKeyNames = Arrays.stream(headerKeyNames) - .map(String::trim) - .toArray(String[]::new); - - try { - Map inboundHeaderMap = getInboundHeaderProp(tempProp); - - if (!inboundHeaderMap.isEmpty()) { - if (inboundHeaderMap.containsKey(X_TRACE_ID)) { - filterHeaders.put(X_TRACE_ID, inboundHeaderMap.get(X_TRACE_ID)); - logger.debug("AsyncReponseFilter] Processing Key ["+X_TRACE_ID+"], value ["+inboundHeaderMap.get(X_TRACE_ID)+"]"); - } - - if (inboundHeaderMap.containsKey(TransactionContextKeys.X_LOAN_TOKEN)) { - filterHeaders.put(TransactionContextKeys.X_LOAN_TOKEN, inboundHeaderMap.get(TransactionContextKeys.X_LOAN_TOKEN)); - logger.debug("AsyncReponseFilter] Processing Key ["+TransactionContextKeys.X_LOAN_TOKEN+"], value ["+inboundHeaderMap.get(TransactionContextKeys.X_LOAN_TOKEN)+"]"); - } - } - - filterHeaders.setProperty(TRACE_ID, traceId); - logger.debug("AsyncReponseFilter] Processing Key ["+TRACE_ID+"], value ["+traceId+"]"); - - for (String keyName : inboundHeaderMap.keySet()) { - - if (StringUtils.equalsAnyIgnoreCase(keyName, headerKeyNames)) { - String value = inboundHeaderMap.get(keyName); - filterHeaders.put(keyName, value); - logger.debug("AsyncReponseFilter] Processing Key [" + keyName + "], value [" + value + "]"); - } - - } - - } catch (Exception e) { - logger.error(e.getMessage()); - } - - 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 - public Object doPostFilter(String adptGrpName, String adptName, Properties prop, Object message, - Properties tempProp) throws Exception { - return message; - } - -} - diff --git a/src/main/java/com/eactive/eai/custom/kjb/adapter/http/client/filter/HttpClient5AdapterFilterFactory.java b/src/main/java/com/eactive/eai/custom/kjb/adapter/http/client/filter/HttpClient5AdapterFilterFactory.java deleted file mode 100644 index 93cdc7c..0000000 --- a/src/main/java/com/eactive/eai/custom/kjb/adapter/http/client/filter/HttpClient5AdapterFilterFactory.java +++ /dev/null @@ -1,115 +0,0 @@ -package com.eactive.eai.custom.kjb.adapter.http.client.filter; - -import java.util.concurrent.ConcurrentHashMap; - -import com.eactive.eai.common.util.Logger; - -public class HttpClient5AdapterFilterFactory { - static Logger logger = Logger.getLogger(Logger.LOGGER_ADAPTER); - static String basePackage = "com.eactive.eai.custom.kjb.adapter.http.client.filter"; - private static ConcurrentHashMap h = new ConcurrentHashMap<>(); - private static ConcurrentHashMap eh = new ConcurrentHashMap<>(); - - private HttpClient5AdapterFilterFactory() { - throw new IllegalStateException("Utility class"); - } - - public static HttpClientAdapterFilter createFilter(String type) { - if (h.containsKey(type)) { - return h.get(type); - } - - HttpClientAdapterFilter filter = null; - switch (HttpClient5AdapterFilterType.getValue(type)) { - case SIMPLEFRAMEWORK: - filter = new SimpleFrameworkFilter(); - break; - case SIMPLEFRAMEWORKBODY: - filter = new SimpleframeworkBodyFilter(); - break; - case JBOBP: - filter = new JBOBPFilter(); - break; - case KFTCFACE: - filter = new KFTCFaceFilter(); - break; - case KFTCP2P: - filter = new KFTCP2PFilter(); - break; - case KAKAOBANK: - filter = new KAKAOBankFilter(); - break; - case NAVERFIN: - filter = new NAVERFinFilter(); - break; - case NICECREDIT: - filter = new NICECreditFilter(); - break; - case TRACEBODY: - filter = new TraceBodyFilter(); - break; - case TOSSBANK: - filter = new TOSSBankFilter(); - break; - case ASYNCRESPONSE: - filter = new AsyncReponseFilter(); - break; - case ALLHEADER: - filter = new AllHeaderFilter(); - break; - default: - filter = classForName(type); - if (filter == null) { - filter = classForName(basePackage + "." + type); - } - break; - } - - if (filter != null) { - h.put(type, filter); - return filter; - } else { - return null; - } - } - - private static HttpClientAdapterFilter classForName(String type) { - try { - Class cl = Class.forName(type); - return (HttpClientAdapterFilter) cl.newInstance(); - } catch (ClassNotFoundException | IllegalAccessException | InstantiationException e) { - logger.error("Cannot create a HttpClientAdapterFilter. - {}", type); - return null; - } - } - - public static HttpClientAdapterExceptionFilter createExceptionFilter(String type) { - if (eh.containsKey(type)) { - return eh.get(type); - } - - HttpClientAdapterExceptionFilter filter = classForExceptionFilterName(type); - if (filter == null) { - filter = classForExceptionFilterName(basePackage + "." + type); - } - - if (filter != null) { - eh.put(type, filter); - return filter; - } else { - return null; - } - } - - private static HttpClientAdapterExceptionFilter classForExceptionFilterName(String type) { - try { - Class cl = Class.forName(type); - return (HttpClientAdapterExceptionFilter) cl.newInstance(); - } catch (ClassNotFoundException | IllegalAccessException | InstantiationException e) { - logger.error("Cannot create a HttpClientAdapterExceptionFilter. - {}", type); - return null; - } - } - - -} \ No newline at end of file diff --git a/src/main/java/com/eactive/eai/custom/kjb/adapter/http/client/filter/HttpClient5AdapterFilterType.java b/src/main/java/com/eactive/eai/custom/kjb/adapter/http/client/filter/HttpClient5AdapterFilterType.java deleted file mode 100644 index 71af1f4..0000000 --- a/src/main/java/com/eactive/eai/custom/kjb/adapter/http/client/filter/HttpClient5AdapterFilterType.java +++ /dev/null @@ -1,27 +0,0 @@ -package com.eactive.eai.custom.kjb.adapter.http.client.filter; - -public enum HttpClient5AdapterFilterType { - SIMPLEFRAMEWORK, - SIMPLEFRAMEWORKBODY, - JBOBP, - KFTCFACE, - KFTCP2P, - KAKAOBANK, - NAVERFIN, - NICECREDIT, - TOSSBANK, - TRACEBODY, - ASYNCRESPONSE, - ALLHEADER, - UNKNOWN; - - public static HttpClient5AdapterFilterType getValue(String type) { - try { - return valueOf(type.toUpperCase()); - } catch (NullPointerException e) { - return UNKNOWN; - } catch (Exception e) { - return UNKNOWN; - } - } -} diff --git a/src/main/java/com/eactive/eai/custom/kjb/adapter/http/client/filter/HttpClientAdapterBaseFilter.java b/src/main/java/com/eactive/eai/custom/kjb/adapter/http/client/filter/HttpClientAdapterBaseFilter.java deleted file mode 100644 index 25f710a..0000000 --- a/src/main/java/com/eactive/eai/custom/kjb/adapter/http/client/filter/HttpClientAdapterBaseFilter.java +++ /dev/null @@ -1,62 +0,0 @@ -package com.eactive.eai.custom.kjb.adapter.http.client.filter; - -import java.util.ArrayList; -import java.util.List; -import java.util.Properties; - -import com.eactive.eai.common.util.Logger; - -public abstract class HttpClientAdapterBaseFilter implements HttpClientAdapterFilter { - protected static Logger logger = Logger.getLogger(Logger.LOGGER_ADAPTER); - protected String filterName = ""; - protected List filters; - - protected HttpClientAdapterBaseFilter(String filterName) { - this.filterName = filterName; - filters = new ArrayList<>(); - logger.info("{}] filter created.", filterName); - } - - protected void addFilter(HttpClientAdapterFilter filter) { - filters.add(filter); - logger.info("{}] sub filter({}) added. filters= {}", filterName, filter, filters); - } - - @Override - public Object doPreFilter(String adptGrpName, String adptName, Properties prop, Object message, Properties tempProp) - throws Exception { - try { - Object filteredMessage = message; - for(HttpClientAdapterFilter subFilter : filters) { - logger.debug("{}] sub filter({}) doPreFilter start.", filterName, subFilter); - filteredMessage = subFilter.doPreFilter(adptGrpName, adptName, prop, filteredMessage, tempProp); - logger.debug("{}] sub filter({}) doPreFilter end.", filterName, subFilter); - } - - return filteredMessage; - } catch (Exception e) { - logger.error(this.filterName + "] doPreFilter error.", e); - throw e; - } - } - - @Override - public Object doPostFilter(String adptGrpName, String adptName, Properties prop, Object message, - Properties tempProp) throws Exception { - try { - Object filteredMessage = message; - for(HttpClientAdapterFilter subFilter : filters) { - logger.debug("{}] sub filter({}) doPostFilter start.", filterName, subFilter); - filteredMessage = subFilter.doPostFilter(adptGrpName, adptName, prop, filteredMessage, tempProp); - logger.debug("{}] sub filter({}) doPostFilter end.", filterName, subFilter); - } - return filteredMessage; - } catch (Exception e) { - logger.error(this.filterName + "] doPostFilter error.", e); - throw e; - } - } - - - -} diff --git a/src/main/java/com/eactive/eai/custom/kjb/adapter/http/client/filter/HttpClientAdapterExceptionFilter.java b/src/main/java/com/eactive/eai/custom/kjb/adapter/http/client/filter/HttpClientAdapterExceptionFilter.java deleted file mode 100644 index 6c809f3..0000000 --- a/src/main/java/com/eactive/eai/custom/kjb/adapter/http/client/filter/HttpClientAdapterExceptionFilter.java +++ /dev/null @@ -1,10 +0,0 @@ -package com.eactive.eai.custom.kjb.adapter.http.client.filter; - -import java.util.Properties; - -public interface HttpClientAdapterExceptionFilter { - - public Object doExceptionFilter(String adptGrpName, String adptName, Properties prop, Object message, - Properties tempProp, Exception e) throws Exception; - -} diff --git a/src/main/java/com/eactive/eai/custom/kjb/adapter/http/client/filter/HttpClientAdapterFilter.java b/src/main/java/com/eactive/eai/custom/kjb/adapter/http/client/filter/HttpClientAdapterFilter.java deleted file mode 100644 index 47c5682..0000000 --- a/src/main/java/com/eactive/eai/custom/kjb/adapter/http/client/filter/HttpClientAdapterFilter.java +++ /dev/null @@ -1,12 +0,0 @@ -package com.eactive.eai.custom.kjb.adapter.http.client.filter; - -import java.util.Properties; - -public interface HttpClientAdapterFilter { - - public Object doPreFilter(String adptGrpName, String adptName, Properties prop, Object message, Properties tempProp) - throws Exception; - - 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/HttpClientAdapterFilterException.java b/src/main/java/com/eactive/eai/custom/kjb/adapter/http/client/filter/HttpClientAdapterFilterException.java deleted file mode 100644 index 691f050..0000000 --- a/src/main/java/com/eactive/eai/custom/kjb/adapter/http/client/filter/HttpClientAdapterFilterException.java +++ /dev/null @@ -1,35 +0,0 @@ -package com.eactive.eai.custom.kjb.adapter.http.client.filter; - -import java.util.Properties; - -import lombok.Getter; - -public class HttpClientAdapterFilterException extends RuntimeException { - private static final long serialVersionUID = -1208983360831093751L; - @Getter - private final String code; - @Getter - private final Properties prop; - @Getter - private final Properties tempProp; - - public HttpClientAdapterFilterException(String code, String msg, Properties prop, Properties tmepProp) { - super(msg); - this.code = code; - this.prop = prop; - this.tempProp = tmepProp; - } - - public HttpClientAdapterFilterException(String code, String msg, Properties prop, Properties tempProp, Throwable cause) { - super(msg, cause); - this.code = code; - this.prop = prop; - this.tempProp = tempProp; - } - - @Override - public String toString() { - return "HttpClientAdapterFilterException [code=" + code + ", prop=" + prop + ", tempProp=" + tempProp + ", parent=" + super.toString() + "]"; - } - -} 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 deleted file mode 100644 index 792e0cc..0000000 --- a/src/main/java/com/eactive/eai/custom/kjb/adapter/http/client/filter/JBOBPFilter.java +++ /dev/null @@ -1,106 +0,0 @@ -package com.eactive.eai.custom.kjb.adapter.http.client.filter; - -import java.util.Map; -import java.util.Properties; -import java.util.TreeMap; - -import org.apache.commons.lang3.StringUtils; - -import com.eactive.eai.adapter.http.dynamic.HttpAdapterServiceKey; -import com.eactive.eai.common.TransactionContextKeys; -import com.eactive.eai.common.property.PropGroupVO; -import com.eactive.eai.common.property.PropManager; -import com.eactive.eai.common.util.Logger; - - -public class JBOBPFilter implements HttpClientAdapterFilter, HttpAdapterServiceKey { - protected static Logger logger = Logger.getLogger(Logger.LOGGER_ADAPTER); - - public static final String KJB_HEADER = "KJB_Header"; - public static final String X_OBP_PARTNERCODE = "x-obp-partnercode"; - public static final String X_OBP_TXID = "x-obp-txid"; - public static final String X_OBP_TRUST_SYSTEM = "x-obp-trust-system"; - String systemTrustKey = "APIMGW-0001-QVBJTUdXLTAwMDE="; - - @Override - public Object doPreFilter(String adptGrpName, String adptName, Properties prop, Object message, Properties tempProp) - throws Exception { - - logger.debug("JBOBPFilter] PreFilter Processing Start!!"); - PropGroupVO propGroupVo = PropManager.getInstance().getPropGroupVO(KJB_HEADER); - if (propGroupVo != null) systemTrustKey = propGroupVo.getProperty(X_OBP_TRUST_SYSTEM, systemTrustKey); - - Properties filterHeaders = (Properties) tempProp.get("FILTERHEADER"); - if (filterHeaders == null) { - filterHeaders = new Properties(); - tempProp.put("FILTERHEADER", filterHeaders); - } - try { - String obpPartnerCode = "000000-00"; - Map inboundHeaderMap = getInboundHeaderProp(tempProp); - - if (!inboundHeaderMap.isEmpty()) { - if (inboundHeaderMap.containsKey(X_OBP_PARTNERCODE)) { - filterHeaders.put(X_OBP_PARTNERCODE, inboundHeaderMap.get(X_OBP_PARTNERCODE)); - logger.debug("JBOBPFilter] Processing Key ["+X_OBP_PARTNERCODE+"], value ["+inboundHeaderMap.get(X_OBP_PARTNERCODE)+"]"); - } else { - filterHeaders.put(X_OBP_PARTNERCODE, obpPartnerCode); - logger.debug("JBOBPFilter] Processing Key ["+X_OBP_PARTNERCODE+"], value ["+obpPartnerCode+"]"); - } - } else { - filterHeaders.put(X_OBP_PARTNERCODE, obpPartnerCode); - logger.debug("JBOBPFilter] Processing Key ["+X_OBP_PARTNERCODE+"], value ["+obpPartnerCode+"]"); - } - - String uuid = tempProp.getProperty(TransactionContextKeys.TRANSACTION_UUID, ""); - if (StringUtils.isNotBlank(uuid)) { - filterHeaders.setProperty(X_OBP_TXID, uuid); // JB OBP Framework용 - logger.debug("JBOBPFilter] Processing Key ["+X_OBP_TXID+"], value ["+uuid+"]"); - } - if (StringUtils.isNotBlank(systemTrustKey)) { - filterHeaders.setProperty(X_OBP_TRUST_SYSTEM, systemTrustKey); // JB OBP Framework용 - logger.debug("JBOBPFilter] Processing Key ["+X_OBP_TRUST_SYSTEM+"], value ["+systemTrustKey+"]"); - } - } catch (Exception e) { - logger.error(e.getMessage()); - } - - 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 - public Object doPostFilter(String adptGrpName, String adptName, Properties prop, Object message, - Properties tempProp) throws Exception { - return 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 deleted file mode 100644 index f1bf44b..0000000 --- a/src/main/java/com/eactive/eai/custom/kjb/adapter/http/client/filter/KAKAOBankFilter.java +++ /dev/null @@ -1,135 +0,0 @@ -package com.eactive.eai.custom.kjb.adapter.http.client.filter; - -import java.text.SimpleDateFormat; -import java.util.Date; -import java.util.Map; -import java.util.Properties; -import java.util.TreeMap; - -import com.eactive.eai.adapter.http.dynamic.HttpAdapterServiceKey; -import com.eactive.eai.common.property.PropGroupVO; -import com.eactive.eai.common.property.PropManager; -import com.eactive.eai.common.util.Logger; - - -public class KAKAOBankFilter implements HttpClientAdapterFilter, HttpAdapterServiceKey { - protected static Logger logger = Logger.getLogger(Logger.LOGGER_ADAPTER); - - public static final String KJB_HEADER = "KJB_Header"; - public static final String PROP_PREFIX = "kakaobank"; - public static final String X_KKB_PARTNER_CODE = "X-KKB-PARTNER-CODE"; - public static final String X_KKB_API_NAME = "X-KKB-API-NAME"; - public static final String X_KKB_API_TX_ID = "X-KKB-API-TX-ID"; - public static final String X_KKB_TX_TIME = "X-KKB-TX-TIME"; - public static final String X_KKB_CMPR_MGMT_NO = "X-KKB-CMPR-MGMT-NO"; - - @Override - public Object doPreFilter(String adptGrpName, String adptName, Properties prop, Object message, Properties tempProp) - throws Exception { - - logger.debug("KAKAOBankFilter] PreFilter Processing Start!!"); - Object returnMessage = message; - String partnerCode = "KJB"; - String apiName = "status_change"; - String apiTxId = "0"; - String txTime = new SimpleDateFormat("yyyyMMddHHmmss").format(new Date()); - String cmprMgmtNo = "0"; - - PropGroupVO propGroupVo = PropManager.getInstance().getPropGroupVO(KJB_HEADER); - if (propGroupVo != null) { - partnerCode = propGroupVo.getProperty(PROP_PREFIX + "." + X_KKB_PARTNER_CODE); - apiName = propGroupVo.getProperty(PROP_PREFIX + "." + X_KKB_API_NAME); - apiTxId = propGroupVo.getProperty(PROP_PREFIX + "." + X_KKB_API_TX_ID); - cmprMgmtNo = propGroupVo.getProperty(PROP_PREFIX + "." + X_KKB_CMPR_MGMT_NO); - } - - Properties filterHeaders = (Properties) tempProp.get("FILTERHEADER"); - if (filterHeaders == null) { - filterHeaders = new Properties(); - tempProp.put("FILTERHEADER", filterHeaders); - } - try { - Map inboundHeaderMap = getInboundHeaderProp(tempProp); - - if (!inboundHeaderMap.isEmpty()) { - if (inboundHeaderMap.containsKey(X_KKB_PARTNER_CODE)) { - filterHeaders.put(X_KKB_PARTNER_CODE, inboundHeaderMap.get(X_KKB_PARTNER_CODE)); - } else { - filterHeaders.put(X_KKB_PARTNER_CODE, partnerCode); - } - if (inboundHeaderMap.containsKey(X_KKB_API_NAME)) { - filterHeaders.put(X_KKB_API_NAME, inboundHeaderMap.get(X_KKB_API_NAME)); - } else { - filterHeaders.put(X_KKB_API_NAME, apiName); - } - if (inboundHeaderMap.containsKey(X_KKB_API_TX_ID)) { - filterHeaders.put(X_KKB_API_TX_ID, inboundHeaderMap.get(X_KKB_API_TX_ID)); - } else { - filterHeaders.put(X_KKB_API_TX_ID, apiTxId); - } - if (inboundHeaderMap.containsKey(X_KKB_TX_TIME)) { - filterHeaders.put(X_KKB_TX_TIME, inboundHeaderMap.get(X_KKB_TX_TIME)); - } else { - filterHeaders.put(X_KKB_TX_TIME, txTime); - } - if (inboundHeaderMap.containsKey(X_KKB_CMPR_MGMT_NO)) { - filterHeaders.put(X_KKB_CMPR_MGMT_NO, inboundHeaderMap.get(X_KKB_CMPR_MGMT_NO)); - } else { - filterHeaders.put(X_KKB_CMPR_MGMT_NO, cmprMgmtNo); - } - } else { - filterHeaders.put(X_KKB_PARTNER_CODE, partnerCode); - filterHeaders.put(X_KKB_API_NAME, apiName); - filterHeaders.put(X_KKB_API_TX_ID, apiTxId); - filterHeaders.put(X_KKB_TX_TIME, txTime); - filterHeaders.put(X_KKB_CMPR_MGMT_NO, cmprMgmtNo); - } - logger.debug("KAKAOBankFilter] Processing Key ["+X_KKB_PARTNER_CODE+"], value ["+filterHeaders.getProperty(X_KKB_PARTNER_CODE)+"]"); - logger.debug("KAKAOBankFilter] Processing Key ["+X_KKB_API_NAME+"], value ["+filterHeaders.getProperty(X_KKB_API_NAME)+"]"); - logger.debug("KAKAOBankFilter] Processing Key ["+X_KKB_API_TX_ID+"], value ["+filterHeaders.getProperty(X_KKB_API_TX_ID)+"]"); - logger.debug("KAKAOBankFilter] Processing Key ["+X_KKB_TX_TIME+"], value ["+filterHeaders.getProperty(X_KKB_TX_TIME)+"]"); - logger.debug("KAKAOBankFilter] Processing Key ["+X_KKB_CMPR_MGMT_NO+"], value ["+filterHeaders.getProperty(X_KKB_CMPR_MGMT_NO)+"]"); - - } catch (Exception e) { - logger.error(e.getMessage()); - } - - 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 { - return message; - } - -} - 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 deleted file mode 100644 index 78e3c70..0000000 --- a/src/main/java/com/eactive/eai/custom/kjb/adapter/http/client/filter/KFTCFaceFilter.java +++ /dev/null @@ -1,154 +0,0 @@ -package com.eactive.eai.custom.kjb.adapter.http.client.filter; - -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.RandomStringUtils; -import org.apache.commons.lang3.StringUtils; -import org.json.simple.JSONObject; -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.common.property.PropGroupVO; -import com.eactive.eai.common.property.PropManager; -import com.eactive.eai.common.server.EAIServerManager; -import com.eactive.eai.common.util.Logger; - - -public class KFTCFaceFilter implements HttpClientAdapterFilter, HttpAdapterServiceKey { - protected static Logger logger = Logger.getLogger(Logger.LOGGER_ADAPTER); - - public static final String KJB_HEADER = "KJB_Header"; - public static final String PROP_PREFIX = "kftcface"; - public static final String H_CLIENT_ID = "Client-Id"; - 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"; - public static String instId = null; - - static { - EAIServerManager eaiServerManager = EAIServerManager.getInstance(); - instId = eaiServerManager.getInstId(); - } - - @SuppressWarnings({ "unchecked" }) - @Override - public Object doPreFilter(String adptGrpName, String adptName, Properties prop, Object message, Properties tempProp) - throws Exception { - - logger.debug("KFTCFaceFilter] PreFilter Processing Start!!"); - JSONObject returnMessage = null; - String clientId = ""; - String orgCode = "034"; // 광주은행 행코드 - - PropGroupVO propGroupVo = PropManager.getInstance().getPropGroupVO(KJB_HEADER); - if (propGroupVo != null) { - if (StringUtils.isEmpty(clientId)) - clientId = propGroupVo.getProperty(PROP_PREFIX + "." + H_CLIENT_ID); - orgCode = propGroupVo.getProperty(PROP_PREFIX + "." + B_ORG_CODE); - } - - String request_datetime = new SimpleDateFormat("yyyyMMddHHmmss").format(new Date()); - String reqDate = new SimpleDateFormat("yyMMdd").format(new Date()); - String reqTime = new SimpleDateFormat("HHmmss").format(new Date()); - // 기관코드(3) + 요청일자(6) -- 금결원 표준화 항목, 고정 9자리. - // 요청시간(6) + 인스턴스ID(2) + RandomString(3) -- 기관별 생성 거래고유번호(11자리) - // 기관코드(3) + 요청일자(6) + 요청시간(6) + 인스턴스ID(2) + RandomString(3) -- 20자리. - String transaction_id = orgCode + reqDate + reqTime + instId + RandomStringUtils.random(3, true, true).toUpperCase(); - - Properties filterHeaders = (Properties) tempProp.get("FILTERHEADER"); - if (filterHeaders == null) { - filterHeaders = new Properties(); - tempProp.put("FILTERHEADER", filterHeaders); - } - try { - Map inboundHeaderMap = getInboundHeaderProp(tempProp); - - if (!inboundHeaderMap.isEmpty()) { - if (inboundHeaderMap.containsKey(H_CLIENT_ID)) { - filterHeaders.put(H_CLIENT_ID, inboundHeaderMap.get(H_CLIENT_ID)); - logger.debug("KFTCFaceFilter] Processing Key ["+H_CLIENT_ID+"], value ["+inboundHeaderMap.get(H_CLIENT_ID)+"]"); - } else { - filterHeaders.put(H_CLIENT_ID, clientId); - logger.debug("KFTCFaceFilter] Processing Key ["+H_CLIENT_ID+"], value ["+clientId+"]"); - } - } else { - filterHeaders.setProperty(H_CLIENT_ID, clientId); - logger.debug("KFTCFaceFilter] Processing Key ["+H_CLIENT_ID+"], value ["+clientId+"]"); - } - - } catch (Exception e) { - logger.error(e.getMessage()); - } - - AdapterManager adapterManager = AdapterManager.getInstance(); - AdapterGroupVO adptGrpVO = adapterManager.getAdapterGroupVO(adptGrpName); - String encode = adptGrpVO.getMessageEncode(); - if (message == null) { - returnMessage = new JSONObject(); - } else { - if (message instanceof JSONObject) { - returnMessage = (JSONObject) message; - } else if (message instanceof String) { - returnMessage = parseJson((String) message); - } else if (message instanceof byte[]) { - returnMessage = parseJson(new String((byte[]) message, encode)); - } - } - - returnMessage.put(B_ORG_CODE, orgCode); - returnMessage.put(B_TRANSACTION_ID, transaction_id); - returnMessage.put(B_REQUEST_DATETIME, request_datetime); - - return returnMessage.toJSONString(); - } - - private JSONObject parseJson(String message) throws Exception { - if (message == null) { - return null; - } - - 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 { - return message; - } - -} - 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 deleted file mode 100644 index 270b2e6..0000000 --- a/src/main/java/com/eactive/eai/custom/kjb/adapter/http/client/filter/KFTCP2PFilter.java +++ /dev/null @@ -1,122 +0,0 @@ -package com.eactive.eai.custom.kjb.adapter.http.client.filter; - -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.RandomStringUtils; - -import com.eactive.eai.adapter.http.dynamic.HttpAdapterServiceKey; -import com.eactive.eai.common.property.PropGroupVO; -import com.eactive.eai.common.property.PropManager; -import com.eactive.eai.common.server.EAIServerManager; -import com.eactive.eai.common.util.Logger; - - -public class KFTCP2PFilter implements HttpClientAdapterFilter, HttpAdapterServiceKey { - protected static Logger logger = Logger.getLogger(Logger.LOGGER_ADAPTER); - - public static final String KJB_HEADER = "KJB_Header"; - public static final String PROP_PREFIX = "kftcp2p"; - public static final String H_ORG_CODE = "org_code"; - public static final String H_TRX_NO = "api_trx_no"; - public static final String H_TRX_DTM = "api_trx_dtm"; - public static String instId = null; - - static { - EAIServerManager eaiServerManager = EAIServerManager.getInstance(); - instId = eaiServerManager.getInstId(); - } - - @Override - public Object doPreFilter(String adptGrpName, String adptName, Properties prop, Object message, Properties tempProp) - throws Exception { - - logger.debug("KFTCP2PFilter] PreFilter Processing Start!!"); - String orgCode = "D210400012"; // 광주은행 개발 기관코드(운영: K210800020) - - PropGroupVO propGroupVo = PropManager.getInstance().getPropGroupVO(KJB_HEADER); - if (propGroupVo != null) { - orgCode = propGroupVo.getProperty(PROP_PREFIX + "." + H_ORG_CODE); - } - - String apiTrxDtm = new SimpleDateFormat("yyyyMMddHHmmssSSS").format(new Date()); - String apiTrxTm = new SimpleDateFormat("HHmmss").format(new Date()); - // 기관코드(10) + 인스턴스ID(2) + 일시(6) + RandomString(2) -- 총 20자리 - String apiTrxNo = orgCode + instId + apiTrxTm + RandomStringUtils.random(2, true, true).toUpperCase(); - - Properties filterHeaders = (Properties) tempProp.get("FILTERHEADER"); - if (filterHeaders == null) { - filterHeaders = new Properties(); - tempProp.put("FILTERHEADER", filterHeaders); - } - try { - Map inboundHeaderMap = getInboundHeaderProp(tempProp); - - if (!inboundHeaderMap.isEmpty()) { - if (inboundHeaderMap.containsKey(H_TRX_NO)) { - filterHeaders.put(H_TRX_NO, inboundHeaderMap.get(H_TRX_NO)); - logger.debug("KFTCP2PFilter] Processing Key ["+H_TRX_NO+"], value ["+inboundHeaderMap.get(H_TRX_NO)+"]"); - } else { - filterHeaders.put(H_TRX_NO, apiTrxNo); - logger.debug("KFTCP2PFilter] Processing Key ["+H_TRX_NO+"], value ["+apiTrxNo+"]"); - } - if (inboundHeaderMap.containsKey(H_TRX_DTM)) { - filterHeaders.put(H_TRX_DTM, inboundHeaderMap.get(H_TRX_DTM)); - logger.debug("KFTCP2PFilter] Processing Key ["+H_TRX_DTM+"], value ["+inboundHeaderMap.get(H_TRX_DTM)+"]"); - } else { - filterHeaders.put(H_TRX_DTM, apiTrxDtm); - logger.debug("KFTCP2PFilter] Processing Key ["+H_TRX_DTM+"], value ["+apiTrxDtm+"]"); - } - } else { - filterHeaders.put(H_TRX_NO, apiTrxNo); - filterHeaders.put(H_TRX_DTM, apiTrxDtm); - } - logger.debug("KFTCP2PFilter] Processing Key ["+H_TRX_NO+"], value ["+filterHeaders.getProperty(H_TRX_NO)+"]"); - logger.debug("KFTCP2PFilter] Processing Key ["+H_TRX_DTM+"], value ["+filterHeaders.getProperty(H_TRX_DTM)+"]"); - - } catch (Exception e) { - logger.error(e.getMessage()); - } - - 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 - public Object doPostFilter(String adptGrpName, String adptName, Properties prop, Object message, - Properties tempProp) throws Exception { - return message; - } - -} - 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 deleted file mode 100644 index b420a32..0000000 --- a/src/main/java/com/eactive/eai/custom/kjb/adapter/http/client/filter/NAVERFinFilter.java +++ /dev/null @@ -1,107 +0,0 @@ -package com.eactive.eai.custom.kjb.adapter.http.client.filter; - -import java.util.Map; -import java.util.Properties; -import java.util.TreeMap; - -import com.eactive.eai.adapter.http.dynamic.HttpAdapterServiceKey; -import com.eactive.eai.common.property.PropGroupVO; -import com.eactive.eai.common.property.PropManager; -import com.eactive.eai.common.util.Logger; - - -public class NAVERFinFilter implements HttpClientAdapterFilter, HttpAdapterServiceKey { - protected static Logger logger = Logger.getLogger(Logger.LOGGER_ADAPTER); - - public static final String KJB_HEADER = "KJB_Header"; - public static final String PROP_PREFIX = "naverfin"; - public static final String X_PARTNER_ID = "X-Partner-Id"; - public static final String X_FINTECH_ID = "X-Fintech-Id"; - - @Override - public Object doPreFilter(String adptGrpName, String adptName, Properties prop, Object message, Properties tempProp) - throws Exception { - - logger.debug("NAVERFinFilter] PreFilter Processing Start!!"); - String partnerID = "r0jtqwC9gAW5"; - String fintechId = "NF"; - - 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"); - if (filterHeaders == null) { - filterHeaders = new Properties(); - tempProp.put("FILTERHEADER", filterHeaders); - } - try { - Map inboundHeaderMap = getInboundHeaderProp(tempProp); - - if (!inboundHeaderMap.isEmpty()) { - if (inboundHeaderMap.containsKey(X_PARTNER_ID)) { - filterHeaders.put(X_PARTNER_ID, inboundHeaderMap.get(X_PARTNER_ID)); - logger.debug("NAVERFinFilter] Processing Key ["+X_PARTNER_ID+"], value ["+inboundHeaderMap.get(X_PARTNER_ID)+"]"); - } else { - filterHeaders.put(X_PARTNER_ID, partnerID); - logger.debug("NAVERFinFilter] Processing Key ["+X_PARTNER_ID+"], value ["+partnerID+"]"); - } - if (inboundHeaderMap.containsKey(X_FINTECH_ID)) { - filterHeaders.put(X_FINTECH_ID, inboundHeaderMap.get(X_FINTECH_ID)); - logger.debug("NAVERFinFilter] Processing Key ["+X_FINTECH_ID+"], value ["+inboundHeaderMap.get(X_FINTECH_ID)+"]"); - } else { - filterHeaders.put(X_FINTECH_ID, fintechId); - logger.debug("NAVERFinFilter] Processing Key ["+X_FINTECH_ID+"], value ["+fintechId+"]"); - } - } else { - filterHeaders.put(X_PARTNER_ID, partnerID); - filterHeaders.put(X_FINTECH_ID, fintechId); - } - logger.debug("NAVERFinFilter] Processing Key ["+X_PARTNER_ID+"], value ["+filterHeaders.getProperty(X_PARTNER_ID)+"]"); - logger.debug("NAVERFinFilter] Processing Key ["+X_FINTECH_ID+"], value ["+filterHeaders.getProperty(X_FINTECH_ID)+"]"); - - } catch (Exception e) { - logger.error(e.getMessage()); - } - - 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 - public Object doPostFilter(String adptGrpName, String adptName, Properties prop, Object message, - Properties tempProp) throws Exception { - return message; - } - -} - 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 deleted file mode 100644 index 54a8753..0000000 --- a/src/main/java/com/eactive/eai/custom/kjb/adapter/http/client/filter/NICECreditFilter.java +++ /dev/null @@ -1,138 +0,0 @@ -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; -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.common.property.PropGroupVO; -import com.eactive.eai.common.property.PropManager; -import com.eactive.eai.common.util.Logger; - - -public class NICECreditFilter implements HttpClientAdapterFilter, HttpAdapterServiceKey { - protected static Logger logger = Logger.getLogger(Logger.LOGGER_ADAPTER); - - public static final String KJB_HEADER = "KJB_Header"; - public static final String PROP_PREFIX = "nicecredit"; - public static final String H_PRODUCTID = "ProductID"; - public static final String B_REQ_DTM = "req_dtm"; - public static final String B_GOODS_CLS = "goods_cls"; - - @SuppressWarnings({ "unchecked" }) - @Override - public Object doPreFilter(String adptGrpName, String adptName, Properties prop, Object message, Properties tempProp) - throws Exception { - - JSONObject returnMessage = null; - String productId = "2303102120"; - String reqDtm = new SimpleDateFormat("yyyyMMddHHmmss").format(new Date()); - String goodsCls = "KJBAPI0001"; - - PropGroupVO propGroupVo = PropManager.getInstance().getPropGroupVO(KJB_HEADER); - if (propGroupVo != null) { - productId = propGroupVo.getProperty(PROP_PREFIX + "." + H_PRODUCTID); - goodsCls = propGroupVo.getProperty(PROP_PREFIX + "." + B_GOODS_CLS); - } - - Properties filterHeaders = (Properties) tempProp.get("FILTERHEADER"); - if (filterHeaders == null) { - filterHeaders = new Properties(); - tempProp.put("FILTERHEADER", filterHeaders); - } - try { - 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(); - - if (StringUtils.equalsIgnoreCase(key, H_PRODUCTID)) { - filterHeaders.setProperty(key, value); - } - if (logger.isDebugEnabled()) { - logger.debug("Request Header :" + key + "=[" + value + "]"); - } - } - } else { - filterHeaders.setProperty(H_PRODUCTID, productId); - } - - } catch (Exception e) { - logger.error(e.getMessage()); - } - - AdapterManager adapterManager = AdapterManager.getInstance(); - AdapterGroupVO adptGrpVO = adapterManager.getAdapterGroupVO(adptGrpName); - String encode = adptGrpVO.getMessageEncode(); - if (message == null) { - returnMessage = new JSONObject(); - } else { - if (message instanceof JSONObject) { - returnMessage = (JSONObject) message; - } else if (message instanceof String) { - returnMessage = parseJson((String) message); - } else if (message instanceof byte[]) { - returnMessage = parseJson(new String((byte[]) message, encode)); - } - } - - returnMessage.put(B_REQ_DTM, reqDtm); - returnMessage.put(B_GOODS_CLS, goodsCls); - - return returnMessage.toJSONString(); - } - - private JSONObject parseJson(String message) throws Exception { - if (message == null) { - return null; - } - - 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 { - return message; - } - -} - 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 deleted file mode 100644 index 6af88ac..0000000 --- a/src/main/java/com/eactive/eai/custom/kjb/adapter/http/client/filter/SimpleFrameworkFilter.java +++ /dev/null @@ -1,109 +0,0 @@ -package com.eactive.eai.custom.kjb.adapter.http.client.filter; - -import java.util.Map; -import java.util.Properties; -import java.util.TreeMap; - -import org.apache.commons.lang3.StringUtils; - -import com.eactive.eai.adapter.http.dynamic.HttpAdapterServiceKey; -import com.eactive.eai.adapter.http.dynamic.HttpAdapterServiceSupport; -import com.eactive.eai.common.TransactionContextKeys; -import com.eactive.eai.common.util.Logger; - -public class SimpleFrameworkFilter implements HttpClientAdapterFilter, HttpAdapterServiceKey { - protected static Logger logger = Logger.getLogger(Logger.LOGGER_ADAPTER); - - public static final String CLIENTID = "clientId"; - public static final String TRACEID = "traceId"; - public static final String GUID = "guid"; - public static final String RECEIVEDTIMESTAMP = "receivedTimestamp"; - public static final String PARTNER_TRACE_ID = "partnerTraceId"; - - @Override - public Object doPreFilter(String adptGrpName, String adptName, Properties prop, Object message, Properties tempProp) - throws Exception { - - logger.debug("SimpleFrameworkFilter] PreFilter Processing Start!!"); - - Properties filterHeaders = (Properties) tempProp.get("FILTERHEADER"); - if (filterHeaders == null) { - filterHeaders = new Properties(); - tempProp.put("FILTERHEADER", filterHeaders); - } - - Map inboundHeaderMap = getInboundHeaderProp(tempProp); - - try { - /* 업체정보 */ - String clientId = tempProp.getProperty(HttpAdapterServiceSupport.PROPERTIES_NAME_CLIENT_ID); - if (StringUtils.isEmpty(clientId)) clientId = ""; - filterHeaders.put(CLIENTID, clientId); - logger.debug("SimpleFrameworkFilter] Processing Key ["+CLIENTID+"], value ["+clientId+"]"); - - /* APIM 거래추적자 */ - String uuid = tempProp.getProperty(TransactionContextKeys.TRANSACTION_UUID, ""); - filterHeaders.put(TRACEID, uuid); - logger.debug("SimpleFrameworkFilter] Processing Key ["+TRACEID+"], value ["+uuid+"]"); - - /* GUID */ - String guid = tempProp.getProperty(TransactionContextKeys.GUID, ""); - filterHeaders.put(GUID, guid); - logger.debug("SimpleFrameworkFilter] Processing Key ["+GUID+"], value ["+guid+"]"); - - /* 최초요청시간 */ - String receivedTimestamp = tempProp.getProperty(HttpAdapterServiceKey.INBOUND_REQUESTED_TIME, ""); - filterHeaders.put(RECEIVEDTIMESTAMP, receivedTimestamp); - logger.debug("SimpleFrameworkFilter] Processing Key ["+RECEIVEDTIMESTAMP+"], value ["+receivedTimestamp+"]"); - - String partnerTraceId = inboundHeaderMap.getOrDefault(PARTNER_TRACE_ID, ""); - filterHeaders.put(PARTNER_TRACE_ID, partnerTraceId); - logger.debug("SimpleFrameworkFilter] Processing Key ["+PARTNER_TRACE_ID+"], value ["+partnerTraceId+"]"); - - String x_loan_token = inboundHeaderMap.getOrDefault(TransactionContextKeys.X_LOAN_TOKEN, ""); - filterHeaders.put(TransactionContextKeys.X_LOAN_TOKEN, x_loan_token); - logger.debug("SimpleFrameworkFilter] Processing Key ["+TransactionContextKeys.X_LOAN_TOKEN+"], value ["+x_loan_token+"]"); - - - } catch (Exception e) { - logger.error(e.getMessage()); - } - - 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 - public Object doPostFilter(String adptGrpName, String adptName, Properties prop, Object message, - Properties tempProp) throws Exception { - return message; - } - -} diff --git a/src/main/java/com/eactive/eai/custom/kjb/adapter/http/client/filter/SimpleframeworkBodyFilter.java b/src/main/java/com/eactive/eai/custom/kjb/adapter/http/client/filter/SimpleframeworkBodyFilter.java deleted file mode 100644 index 3515035..0000000 --- a/src/main/java/com/eactive/eai/custom/kjb/adapter/http/client/filter/SimpleframeworkBodyFilter.java +++ /dev/null @@ -1,28 +0,0 @@ -package com.eactive.eai.custom.kjb.adapter.http.client.filter; - -import java.util.Properties; - -import org.json.simple.JSONObject; -import org.json.simple.JSONValue; - -import com.eactive.eai.common.TransactionContextKeys; - -public class SimpleframeworkBodyFilter extends SimpleFrameworkFilter { - @Override - public Object doPreFilter(String adptGrpName, String adptName, Properties prop, Object message, Properties tempProp) - throws Exception { - - Object returnMessage = super.doPreFilter(adptGrpName, adptName, prop, message, tempProp); - - JSONObject bizJsonStr = null; - - if ( returnMessage instanceof String ) { - bizJsonStr = (JSONObject) JSONValue.parse( (String)returnMessage); - if( bizJsonStr != null ) { - bizJsonStr.put("GUID", tempProp.getOrDefault(TransactionContextKeys.GUID, "") ); - } - } - - return bizJsonStr != null ? bizJsonStr.toJSONString() : returnMessage; - } -} 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 deleted file mode 100644 index c4b9125..0000000 --- a/src/main/java/com/eactive/eai/custom/kjb/adapter/http/client/filter/TOSSBankFilter.java +++ /dev/null @@ -1,97 +0,0 @@ -package com.eactive.eai.custom.kjb.adapter.http.client.filter; - -import java.util.Map; -import java.util.Properties; -import java.util.TreeMap; - -import com.eactive.eai.adapter.http.dynamic.HttpAdapterServiceKey; -import com.eactive.eai.common.TransactionContextKeys; -import com.eactive.eai.common.property.PropGroupVO; -import com.eactive.eai.common.property.PropManager; -import com.eactive.eai.common.util.Logger; - - -public class TOSSBankFilter implements HttpClientAdapterFilter, HttpAdapterServiceKey { - protected static Logger logger = Logger.getLogger(Logger.LOGGER_ADAPTER); - - public static final String KJB_HEADER = "KJB_Header"; - public static final String PROP_PREFIX = "tossbank"; - public static final String X_TOSSBANK_LOAN_TRACE_ID = "X-TOSSBANK-LOAN-TRACE-ID"; - - @Override - public Object doPreFilter(String adptGrpName, String adptName, Properties prop, Object message, Properties tempProp) - throws Exception { - - logger.debug("TOSSBankFilter] PreFilter Processing Start!!"); - String traceId = tempProp.getProperty(TransactionContextKeys.TRANSACTION_UUID, ""); - - PropGroupVO propGroupVo = PropManager.getInstance().getPropGroupVO(KJB_HEADER); - if (propGroupVo != null) { - } - - Properties filterHeaders = (Properties) tempProp.get("FILTERHEADER"); - if (filterHeaders == null) { - filterHeaders = new Properties(); - tempProp.put("FILTERHEADER", filterHeaders); - } - try { - Map inboundHeaderMap = getInboundHeaderProp(tempProp); - - if (!inboundHeaderMap.isEmpty()) { - if (inboundHeaderMap.containsKey(X_TOSSBANK_LOAN_TRACE_ID)) { - filterHeaders.put(X_TOSSBANK_LOAN_TRACE_ID, inboundHeaderMap.get(X_TOSSBANK_LOAN_TRACE_ID)); - logger.debug("TOSSBankFilter] Processing Key ["+X_TOSSBANK_LOAN_TRACE_ID+"], value ["+inboundHeaderMap.get(X_TOSSBANK_LOAN_TRACE_ID)+"]"); - } else { - filterHeaders.put(X_TOSSBANK_LOAN_TRACE_ID, traceId); - logger.debug("TOSSBankFilter] Processing Key ["+X_TOSSBANK_LOAN_TRACE_ID+"], value ["+traceId+"]"); - } - } else { - /* APIM 거래추적자 */ - filterHeaders.setProperty(X_TOSSBANK_LOAN_TRACE_ID, traceId); - logger.debug("TOSSBankFilter] Processing Key ["+X_TOSSBANK_LOAN_TRACE_ID+"], value ["+traceId+"]"); - } - logger.debug("TOSSBankFilter] Processing Key ["+X_TOSSBANK_LOAN_TRACE_ID+"], value ["+filterHeaders.getProperty(X_TOSSBANK_LOAN_TRACE_ID)+"]"); - - } catch (Exception e) { - logger.error(e.getMessage()); - } - - 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 - public Object doPostFilter(String adptGrpName, String adptName, Properties prop, Object message, - Properties tempProp) throws Exception { - return message; - } - -} - diff --git a/src/main/java/com/eactive/eai/custom/kjb/adapter/http/client/filter/TraceBodyFilter.java b/src/main/java/com/eactive/eai/custom/kjb/adapter/http/client/filter/TraceBodyFilter.java deleted file mode 100644 index 3d69c94..0000000 --- a/src/main/java/com/eactive/eai/custom/kjb/adapter/http/client/filter/TraceBodyFilter.java +++ /dev/null @@ -1,71 +0,0 @@ -package com.eactive.eai.custom.kjb.adapter.http.client.filter; - -import java.util.Properties; - -import org.json.simple.JSONObject; -import org.json.simple.JSONValue; - -import com.eactive.eai.adapter.http.dynamic.HttpAdapterServiceKey; -import com.eactive.eai.common.TransactionContextKeys; -import com.eactive.eai.common.util.Logger; -import com.nimbusds.jose.shaded.gson.JsonObject; - -public class TraceBodyFilter implements HttpClientAdapterFilter, HttpAdapterServiceKey { - - protected static Logger logger = Logger.getLogger(Logger.LOGGER_ADAPTER); - - public static final String BIZ_HEADER = "header"; - public static final String GUID = "guid"; - public static final String TRACEID = "traceId"; - - @Override - public Object doPreFilter(String adptGrpName, String adptName, Properties prop, Object message, Properties tempProp) - throws Exception { - - JSONObject bizJsonStr = null; - - if (message instanceof String) { - - bizJsonStr = (JSONObject) JSONValue.parse((String) message); - - if ( bizJsonStr == null ) return message; //json string이 아님. - - if (bizJsonStr.containsKey(BIZ_HEADER)) { - JSONObject bizHeader = (JSONObject) bizJsonStr.get(BIZ_HEADER); - - putBizHeaderData(bizHeader, tempProp); - - }else { - - JSONObject bizHeader = new JSONObject(); - bizJsonStr.put(BIZ_HEADER, bizHeader); - putBizHeaderData(bizHeader, tempProp); - - } - - } - - return bizJsonStr != null ? bizJsonStr.toJSONString() : message; - } - - static private void putBizHeaderData(JSONObject bizHeader, Properties tempProp) { - - String traceId = tempProp.getProperty(TransactionContextKeys.TRANSACTION_UUID, ""); - - String guid = tempProp.getProperty(TransactionContextKeys.GUID, ""); - - bizHeader.put(GUID, guid); - logger.debug("Processing Key [" + GUID + "], value [" + guid + "]"); - - bizHeader.put(TRACEID, traceId); - logger.debug("Processing Key [" + TRACEID + "], value [" + traceId + "]"); - } - - @Override - public Object doPostFilter(String adptGrpName, String adptName, Properties prop, Object message, - Properties tempProp) throws Exception { - // TODO Auto-generated method stub - return message; - } - -} diff --git a/src/main/java/com/eactive/eai/custom/kjb/adapter/http/client/impl/HttpClient5AdapterServiceRestAddFilter.java b/src/main/java/com/eactive/eai/custom/kjb/adapter/http/client/impl/HttpClient5AdapterServiceRestAddFilter.java deleted file mode 100644 index 30fbca3..0000000 --- a/src/main/java/com/eactive/eai/custom/kjb/adapter/http/client/impl/HttpClient5AdapterServiceRestAddFilter.java +++ /dev/null @@ -1,222 +0,0 @@ -package com.eactive.eai.custom.kjb.adapter.http.client.impl; - -import java.util.Properties; -//import java.util.concurrent.Callable; - -import org.apache.commons.lang3.StringUtils; -import org.dom4j.Node; -import org.json.simple.JSONObject; - -import com.eactive.eai.adapter.http.client.HttpClientAdapterServiceKey; -import com.eactive.eai.adapter.http.client.impl.HttpClient5AdapterServiceRest; -import com.eactive.eai.custom.kjb.adapter.http.client.filter.HttpClient5AdapterFilterFactory; -//import com.eactive.eai.custom.kjb.adapter.http.client.filter.HttpClientAdapterExceptionFilter; -import com.eactive.eai.custom.kjb.adapter.http.client.filter.HttpClientAdapterFilter; -//import com.eactive.eai.custom.kjb.adapter.http.client.filter.IBKOutCommonFilter; -//import com.eactive.eai.custom.kjb.adapter.http.client.filter.IBKOutExceptionFilter; -//import com.fasterxml.jackson.databind.ObjectMapper; -//import com.fasterxml.jackson.databind.node.ObjectNode; -//import com.ibk.eai.common.circuitbreaker.url.UrlCircuitBreakerManager; - -//import io.github.resilience4j.circuitbreaker.CircuitBreaker; - -/** - * 1. 기능 : HttpClient5AdapterServiceRest 호출 전후 Filter 적용할 수 있는 기능을 제공한다.
- * 2. 처리 개요 :
- * 3. 주의사항
- * - * @author : - * @version : v 1.0.0 - * @see : HttpClientAdapterServiceFactory.java, - * HttpClientAdapterServiceSupport.java, HttpClient5AdapterServiceRest.java - * @since : - * - */ -public class HttpClient5AdapterServiceRestAddFilter extends HttpClient5AdapterServiceRest - implements HttpClientAdapterServiceKey { - - // 요청전 수행할 필터(쉼표(,)로 구분) - static final String PRE_FILTERS = "PRE_FILTERS"; - - // 요청후 수행할 필터(쉼표(,)로 구분) - static final String POST_FILTERS = "POST_FILTERS"; - -// // Adapter에서 Exception이 발생한 경우, 처리할 필터 -// static final String EXCEPTION_FILTER = "EXCEPTION_FILTER"; - - /** - * 1. 기능 : HttpClient 호출 전후 Filter 적용용 2. 처리 개요 :
- * 3. 주의사항
- * - * @param prop Http Adapter 속성 정보 - * @return 반환 된 Object - * @exception Exception 수동 시스템 간 통신 중 발생 - */ - public Object execute(Properties prop, Object data, Properties tempProp) throws Exception { - - String adptGrpName = tempProp.getProperty(ADAPTER_GROUP_NAME); - String adptName = tempProp.getProperty(ADAPTER_NAME); - - data = doPreFilters(adptGrpName, adptName, prop, data, tempProp); - - Object adapterResponse = super.execute(prop, data, tempProp); - -// //원본 url를 찾아서 있으면, 그것을 사용한다. -// String url = tempProp.getProperty("URL_ORG"); -// if(StringUtils.isEmpty(url)) -// url = tempProp.getProperty(HttpClientAdapterServiceKey.URL); -// -// UrlCircuitBreakerManager cManager = UrlCircuitBreakerManager.getInstance(); -// CircuitBreaker circuitBreaker = cManager.getCircuitBreaker(url); -// try { -// if (circuitBreaker != null) { -// if (logger.isDebugEnabled()) { -// // ObjectMapper 인스턴스 생성 -// ObjectMapper objectMapper = new ObjectMapper(); -// // 서킷 브레이커의 메트릭 정보와 상태 정보를 직접 Node로 변환 -// ObjectNode combinedNode = objectMapper.createObjectNode(); -// combinedNode.put("state", circuitBreaker.getState().toString()); -// combinedNode.set("metrics", objectMapper.valueToTree(circuitBreaker.getMetrics())); -// logger.debug("CircuitBreaker state [" + circuitBreaker.getName() + "] - " + combinedNode.toString()); -// } -// adapterResponse = circuitBreaker.executeCallable(new HttpClientAdapterCallable(prop, data, tempProp, this)); -// } else { -// adapterResponse = super.execute(prop, data, tempProp); -// } -// } catch (Exception e) { -// adapterResponse = doExceptionFilters(adptGrpName, adptName, prop, adapterResponse, tempProp, e); -// -// if (adapterResponse instanceof JSONObject) -// adapterResponse = ((JSONObject) adapterResponse).toJSONString(); -// -// if (adapterResponse instanceof Node) -// adapterResponse = ((Node) adapterResponse).asXML(); -// -// return adapterResponse; -// } - - adapterResponse = doPostFilters(adptGrpName, adptName, prop, adapterResponse, tempProp); - if (adapterResponse instanceof JSONObject) - adapterResponse = ((JSONObject) adapterResponse).toJSONString(); - - if (adapterResponse instanceof Node) - adapterResponse = ((Node) adapterResponse).asXML(); - - return adapterResponse; - } - -// protected Object callSuper(Properties prop, Object data, Properties tempProp) throws Exception { -// return super.execute(prop, data, tempProp); -// } - -// private class HttpClientAdapterCallable implements Callable { -// Properties prop; -// Object data; -// Properties tempProp; -// HttpClient5AdapterServiceRestAddFilter clientService; -// -// public HttpClientAdapterCallable(Properties prop, Object data, Properties tempProp, -// HttpClient5AdapterServiceRestAddFilter clientService) { -// this.prop = prop; -// this.data = data; -// this.tempProp = tempProp; -// this.clientService = clientService; -// } -// -// @Override -// public Object call() throws Exception { -// return clientService.callSuper(prop, data, tempProp); -// } -// -// } - - protected Object doPreFilters(String adptGrpName, String adptName, Properties prop, Object message, - Properties tempProp) throws Exception { - -// boolean isSetCommonFilterInAdapterProp = false; - // 1. adapter에 설정된 필터 수행 - String preFiltersStr = prop.getProperty(PRE_FILTERS); - if (StringUtils.isNotEmpty(preFiltersStr)) { - String[] preFilters = StringUtils.split(preFiltersStr, ","); - for (String filterName : preFilters) { - if (StringUtils.isBlank(filterName)) { - continue; - } - - logger.debug("HttpClient5AdapterServiceRestAddFilter] Processing Start [" + filterName + "]"); - HttpClientAdapterFilter adapterFilter = HttpClient5AdapterFilterFactory.createFilter(filterName.trim()); - - if (adapterFilter != null) { -// if (adapterFilter instanceof IBKOutCommonFilter) -// isSetCommonFilterInAdapterProp = true; - - message = adapterFilter.doPreFilter(adptGrpName, adptName, prop, message, tempProp); - } else { - throw new Exception("Failed get Filter Class: " + filterName); - } - } - } - -// // 2. IBKOutCommonFilter 필터 수행(adapter 필터에서 수행하지 않을 때만) -// if (!isSetCommonFilterInAdapterProp) { -// HttpClientAdapterFilter ibkFilter = HttpClient5AdapterFilterFactory -// .createFilter(IBKOutCommonFilter.class.getName()); -// if (ibkFilter != null) { -// message = ibkFilter.doPreFilter(adptGrpName, adptName, prop, message, tempProp); -// } -// } else { -// logger.debug("IBKOutCommonFilter isSetCommonFilterInAdapterProp 'POST_FILTERS'. already in adapter filters"); -// } - - return message; - } - - protected Object doPostFilters(String adptGrpName, String adptName, Properties prop, Object message, - Properties tempProp) throws Exception { - -// boolean isSetCommonFilterInAdapterProp = false; - // 1. adapter에 설정된 필터 수행 - String postFiltersStr = prop.getProperty(POST_FILTERS); - if (StringUtils.isNotEmpty(postFiltersStr)) { - String[] postFilters = StringUtils.split(postFiltersStr, ","); - for (String filterName : postFilters) { - if (StringUtils.isBlank(filterName)) { - continue; - } - - HttpClientAdapterFilter adapterFilter = HttpClient5AdapterFilterFactory.createFilter(filterName.trim()); - if (adapterFilter != null) { -// if (adapterFilter instanceof IBKOutCommonFilter) -// isSetCommonFilterInAdapterProp = true; - message = adapterFilter.doPostFilter(adptGrpName, adptName, prop, message, tempProp); - } else { - throw new Exception("Failed get Filter Class: " + filterName); - } - } - } - -// // 2. IBKOutCommonFilter 필터 수행 -// if (!isSetCommonFilterInAdapterProp) { -// HttpClientAdapterFilter ibkFilter = HttpClient5AdapterFilterFactory -// .createFilter(IBKOutCommonFilter.class.getName()); -// if (ibkFilter != null) { -// message = ibkFilter.doPostFilter(adptGrpName, adptName, prop, message, tempProp); -// } -// } else { -// logger.debug("IBKOutCommonFilter isSetCommonFilterInAdapterProp 'PRE_FILTERS'. already in adapter filters"); -// } - return message; - } - -// protected Object doExceptionFilters(String adptGrpName, String adptName, Properties prop, Object message, -// Properties tempProp, Exception e) throws Exception { -// String exceptionFilterName = prop.getProperty(EXCEPTION_FILTER); -// if (StringUtils.isEmpty(exceptionFilterName)) -// exceptionFilterName = IBKOutExceptionFilter.class.getSimpleName(); -// -// HttpClientAdapterExceptionFilter exceptionFilter = HttpClient5AdapterFilterFactory.createExceptionFilter(exceptionFilterName.trim()); -// return exceptionFilter.doExceptionFilter(adptGrpName, adptName, prop, message, tempProp, e); -// -// } - -} \ No newline at end of file