From d78e422368206b87854396d5e0102445bc74490d Mon Sep 17 00:00:00 2001 From: curry772 Date: Thu, 25 Jun 2026 09:56:23 +0900 Subject: [PATCH] =?UTF-8?q?PreFilter=EC=97=90=EC=84=9C=20=ED=97=A4?= =?UTF-8?q?=EB=8D=94=EB=B3=B5=EC=82=AC=ED=95=98=EB=8F=84=EB=A1=9D=20?= =?UTF-8?q?=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../filter/ReflectAllHeaderFilter.java | 46 ++++++++++++++++--- 1 file changed, 39 insertions(+), 7 deletions(-) diff --git a/src/main/java/com/eactive/eai/adapter/http/dynamic/filter/ReflectAllHeaderFilter.java b/src/main/java/com/eactive/eai/adapter/http/dynamic/filter/ReflectAllHeaderFilter.java index ca0633e..652f997 100644 --- a/src/main/java/com/eactive/eai/adapter/http/dynamic/filter/ReflectAllHeaderFilter.java +++ b/src/main/java/com/eactive/eai/adapter/http/dynamic/filter/ReflectAllHeaderFilter.java @@ -51,13 +51,6 @@ public class ReflectAllHeaderFilter implements HttpAdapterFilter { @Override public Object doPreFilter(String adptGrpName, String adptName, Object message, Properties prop, HttpServletRequest request, HttpServletResponse response) throws Exception { - return message; - } - - @Override - public Object doPostFilter(String adptGrpName, String adptName, Object resultMessage, Properties prop, - HttpServletRequest request, HttpServletResponse response) throws Exception { - logger.debug("doPreFilter ReflectAllHeaderFilter Start."); String propValue = PropManager.getInstance().getProperty(PROPERTIES_GROUP_NAME, HEADER_KEY_NAMES, "").trim(); @@ -89,6 +82,45 @@ public class ReflectAllHeaderFilter implements HttpAdapterFilter { } logger.debug("doPreFilter ReflectAllHeaderFilter End."); + + return message; + } + + @Override + public Object doPostFilter(String adptGrpName, String adptName, Object resultMessage, Properties prop, + HttpServletRequest request, HttpServletResponse response) throws Exception { + + logger.debug("doPostFilter ReflectAllHeaderFilter Start."); + + 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); + } + + try { + Enumeration headerNames = request.getHeaderNames(); + while (headerNames.hasMoreElements()) { + + String headerName = headerNames.nextElement(); + String headerValue = request.getHeader(headerName); + + if( StringUtils.equalsAnyIgnoreCase( headerName, HttpHeaderRelayBlackList ) ) { + logger.debug("Skip Processing Key ["+headerName+"], value ["+headerValue+"] in HttpHeaderRelayBlackList"); + continue; + } + + response.setHeader(headerName, headerValue); + } + + } catch (Exception e) { + logger.error(e.getMessage()); + } + + logger.debug("doPostFilter ReflectAllHeaderFilter End."); return resultMessage; }