KakaopayAdapterErrorMsgHandler: 제어문자 정규화 후 파싱
상대 응답에 이스케이프되지 않은 제어문자가 섞여 오면 "Illegal unquoted character ((CTRL-CHAR, code 10))" 로 실패한다. readTree() 전에 JacksonUtil.escapeControlChars() 로 표준 JSON 으로 맞춘다. 검증: gradlew compileJava BUILD SUCCESSFUL
This commit is contained in:
+3
-2
@@ -45,7 +45,8 @@ public class KakaopayAdapterErrorMsgHandler extends TemplateCodeConvertAdapterEr
|
|||||||
return responseMsessage;
|
return responseMsessage;
|
||||||
}
|
}
|
||||||
|
|
||||||
JsonNode rootNode = OBJECT_MAPPER.readTree(jsonStr);
|
// 제어문자를 이스케이프하지 않고 보내는 상대 시스템 대응 (JacksonUtil.escapeControlChars 주석 참조)
|
||||||
|
JsonNode rootNode = OBJECT_MAPPER.readTree(JacksonUtil.escapeControlChars(jsonStr));
|
||||||
|
|
||||||
boolean modified = false;
|
boolean modified = false;
|
||||||
|
|
||||||
@@ -74,7 +75,7 @@ public class KakaopayAdapterErrorMsgHandler extends TemplateCodeConvertAdapterEr
|
|||||||
if (responseBody instanceof String) {
|
if (responseBody instanceof String) {
|
||||||
String jsonStr = (String) responseBody;
|
String jsonStr = (String) responseBody;
|
||||||
if (!StringUtils.isBlank(jsonStr)) {
|
if (!StringUtils.isBlank(jsonStr)) {
|
||||||
JsonNode rootNode = OBJECT_MAPPER.readTree(jsonStr);
|
JsonNode rootNode = OBJECT_MAPPER.readTree(JacksonUtil.escapeControlChars(jsonStr));
|
||||||
StringBuffer sb = new StringBuffer();
|
StringBuffer sb = new StringBuffer();
|
||||||
JsonNode errorCode = rootNode.get("error_code");
|
JsonNode errorCode = rootNode.get("error_code");
|
||||||
if(errorCode != null)
|
if(errorCode != null)
|
||||||
|
|||||||
Reference in New Issue
Block a user