diff --git a/elink-online-common b/elink-online-common index 444b7ad..e208a2d 160000 --- a/elink-online-common +++ b/elink-online-common @@ -1 +1 @@ -Subproject commit 444b7ad595c2c8bc6f2cdf57e33c8d76d9d68edd +Subproject commit e208a2d64b035202f1f1c94dc5251820e1e1170c diff --git a/elink-online-transformer b/elink-online-transformer index 17f6df5..82c7c2b 160000 --- a/elink-online-transformer +++ b/elink-online-transformer @@ -1 +1 @@ -Subproject commit 17f6df50688bde6b2adff48c4e914841314fd517 +Subproject commit 82c7c2bc8cb1029f3a6abf6d65d5edb57e4f4d83 diff --git a/src/main/java/com/eactive/eai/adapter/service/DJErpApiAdapterService.java b/src/main/java/com/eactive/eai/adapter/service/DJErpApiAdapterService.java index 2fde9ef..2a313e4 100644 --- a/src/main/java/com/eactive/eai/adapter/service/DJErpApiAdapterService.java +++ b/src/main/java/com/eactive/eai/adapter/service/DJErpApiAdapterService.java @@ -7,6 +7,7 @@ import com.eactive.eai.adapter.Keys; import com.eactive.eai.adapter.http.HttpMemoryLogger; import com.eactive.eai.adapter.http.HttpMethodType; import com.eactive.eai.adapter.http.dynamic.HttpAdapterServiceSupport; +import com.eactive.eai.adapter.http.dynamic.filter.CryptoFilter; import com.eactive.eai.adapter.http.dynamic.filter.JwtAuthFilter; import com.eactive.eai.common.exception.ExceptionUtil; import com.eactive.eai.common.message.MessageType; @@ -142,7 +143,8 @@ public class DJErpApiAdapterService extends HttpAdapterServiceSupport { transactionProp.put(INBOUND_TOKEN, inboundToken); transactionProp.put(ENCRYPT_AES256_IV, httpProp.getProperty(ENCRYPT_AES256_IV, "")); //jwhong transactionProp.put(ENCRYPT_AES256_KEY, httpProp.getProperty(ENCRYPT_AES256_KEY, "")); //jwhong - + + transactionProp.put(CryptoFilter.PROP_MODULE_NAME, httpProp.getProperty(CryptoFilter.PROP_MODULE_NAME, "")); // SEED 컬럼암호하 시 Key로 사용함 String seedkey = getHeaders(request).getOrDefault("x-obp-partnercode", "").toString(); diff --git a/src/main/java/com/eactive/eai/custom/adapter/http/dynamic/filter/EncFieldCryptoFilter.java b/src/main/java/com/eactive/eai/custom/adapter/http/dynamic/filter/EncFieldCryptoFilter.java new file mode 100644 index 0000000..8664b1b --- /dev/null +++ b/src/main/java/com/eactive/eai/custom/adapter/http/dynamic/filter/EncFieldCryptoFilter.java @@ -0,0 +1,40 @@ +package com.eactive.eai.custom.adapter.http.dynamic.filter; + +import java.util.Properties; + +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; + +import com.eactive.eai.adapter.http.dynamic.filter.BaseCryptoFilter; +import com.eactive.eai.adapter.http.dynamic.filter.HttpAdapterFilter; + +/** + * CryptoFilter 프로퍼티를 멤버변수로 관리하는 HttpAdapterFilter 구현체. + * + * 멤버변수에 세팅된 값을 Properties로 변환하여 {@link BaseCryptoFilter}에 위임한다. + * 값이 blank인 멤버변수는 Properties에 포함하지 않으며, CryptoFilter의 기본값이 적용된다. + */ +public class EncFieldCryptoFilter implements HttpAdapterFilter { + + private final BaseCryptoFilter filter = new BaseCryptoFilter(); + + @Override + public Object doPreFilter(String adptGrpName, String adptName, Object message, Properties prop, + HttpServletRequest request, HttpServletResponse response) throws Exception { + return filter.doPreFilter(adptGrpName, adptName, message, setProp(prop), request, response); + } + + @Override + public Object doPostFilter(String adptGrpName, String adptName, Object resultMessage, Properties prop, + HttpServletRequest request, HttpServletResponse response) throws Exception { + return filter.doPostFilter(adptGrpName, adptName, resultMessage, setProp(prop), request, response); + } + + private Properties setProp(Properties p) { + p.setProperty(BaseCryptoFilter.PROP_DEC_FROM_PATH, "/encryptedData"); + p.setProperty(BaseCryptoFilter.PROP_ENC_TO_PATH, "/encryptedData"); + return p; + } + + +}