From 50c08d7813020cd2cd278083edaf4ddbe4ddda0d Mon Sep 17 00:00:00 2001 From: curry772 Date: Fri, 28 Aug 2026 14:28:12 +0900 Subject: [PATCH] =?UTF-8?q?KakaopayAdapterErrorMsgHandler:=20=EC=A0=9C?= =?UTF-8?q?=EC=96=B4=EB=AC=B8=EC=9E=90=20=EC=A0=95=EA=B7=9C=ED=99=94=20?= =?UTF-8?q?=ED=9B=84=20=ED=8C=8C=EC=8B=B1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 상대 응답에 이스케이프되지 않은 제어문자가 섞여 오면 "Illegal unquoted character ((CTRL-CHAR, code 10))" 로 실패한다. readTree() 전에 JacksonUtil.escapeControlChars() 로 표준 JSON 으로 맞춘다. 검증: gradlew compileJava BUILD SUCCESSFUL --- .../adapter/handler/KakaopayAdapterErrorMsgHandler.java | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/main/java/com/eactive/eai/custom/adapter/handler/KakaopayAdapterErrorMsgHandler.java b/src/main/java/com/eactive/eai/custom/adapter/handler/KakaopayAdapterErrorMsgHandler.java index 735d06b..7d58ef2 100644 --- a/src/main/java/com/eactive/eai/custom/adapter/handler/KakaopayAdapterErrorMsgHandler.java +++ b/src/main/java/com/eactive/eai/custom/adapter/handler/KakaopayAdapterErrorMsgHandler.java @@ -45,7 +45,8 @@ public class KakaopayAdapterErrorMsgHandler extends TemplateCodeConvertAdapterEr return responseMsessage; } - JsonNode rootNode = OBJECT_MAPPER.readTree(jsonStr); + // 제어문자를 이스케이프하지 않고 보내는 상대 시스템 대응 (JacksonUtil.escapeControlChars 주석 참조) + JsonNode rootNode = OBJECT_MAPPER.readTree(JacksonUtil.escapeControlChars(jsonStr)); boolean modified = false; @@ -74,7 +75,7 @@ public class KakaopayAdapterErrorMsgHandler extends TemplateCodeConvertAdapterEr if (responseBody instanceof String) { String jsonStr = (String) responseBody; if (!StringUtils.isBlank(jsonStr)) { - JsonNode rootNode = OBJECT_MAPPER.readTree(jsonStr); + JsonNode rootNode = OBJECT_MAPPER.readTree(JacksonUtil.escapeControlChars(jsonStr)); StringBuffer sb = new StringBuffer(); JsonNode errorCode = rootNode.get("error_code"); if(errorCode != null)