diff --git a/src/main/java/com/eactive/eai/adapter/service/ApiAdapterService.java b/src/main/java/com/eactive/eai/adapter/service/ApiAdapterService.java index a70dbd5..1f7be85 100644 --- a/src/main/java/com/eactive/eai/adapter/service/ApiAdapterService.java +++ b/src/main/java/com/eactive/eai/adapter/service/ApiAdapterService.java @@ -346,7 +346,7 @@ public class ApiAdapterService extends HttpAdapterServiceSupport { // jwhong decrypt - private String doPreDecryption(String eaiBody, Properties transactionProp, HttpServletRequest request) { + private String doPreDecryption(String eaiBody, Properties transactionProp, HttpServletRequest request) throws Exception { String decryptAlgorithm = transactionProp.getProperty(ENCRYPT_ALGORITHM, ""); String xElinkClientId = transactionProp.getProperty(HEADER_NAME_CLIENT_ID, ""); // 이 값이 OAuth의 client id 값이다 . http header 에 포함되어 온다. jwhong String encryptBaseKeyType = transactionProp.getProperty(ENCRYPT_BASE_TYPE); @@ -381,6 +381,11 @@ public class ApiAdapterService extends HttpAdapterServiceSupport { byte[] decryptedMessage = null; decryptedMessage = doInboundPreDecrypt(eaiBody, decryptAlgorithm,clientSecret,secretAES256Iv, secretAES256Key ); + if (decryptedMessage == null) { + throw new Exception("[HttpClient5AdapterServiceRest] Decrypt Error : Invalid encrypted message"); + } + + String resultMessage = new String(decryptedMessage, StandardCharsets.UTF_8 ); return resultMessage; //return new String(decryptedMessage, StandardCharsets.UTF_8 ); @@ -453,25 +458,28 @@ public class ApiAdapterService extends HttpAdapterServiceSupport { } - private byte[] doInboundPreDecrypt(String eaiStringBody, String decryptAlgorithm, String clientSecretKey, String secretAES256Iv, String secretAES256Key) { + private byte[] doInboundPreDecrypt(String eaiStringBody, String decryptAlgorithm, String clientSecretKey, String secretAES256Iv, String secretAES256Key) throws Exception { byte[] decryptedMessage = null; //String eaiStringBody = new String(eaiBody, StandardCharsets.UTF_8); eaiStringBody = extractBodyMsg(decryptAlgorithm, eaiStringBody); + if (eaiStringBody == null) { + throw new Exception("[HttpClient5AdapterServiceRest] Cannot decrypt Error : input is plain text"); + } + //test source - //System.out.println("eaiBody 바이트 배열 길이: " + eaiBody.length); - System.out.println("Base64 문자열: " + eaiStringBody); - System.out.println("Base64 문자열 길이: " + eaiStringBody.length()); - System.out.println("Base64 문자열 끝: " + eaiStringBody.substring(eaiStringBody.length() - 10)); + logger.debug("Base64 문자열: " + eaiStringBody); + logger.debug("Base64 문자열 길이: " + eaiStringBody.length()); + logger.debug("Base64 문자열 끝: " + eaiStringBody.substring(eaiStringBody.length() - 10)); // Base64 디코딩 테스트 try { byte[] decoded = Base64.getDecoder().decode(eaiStringBody); - System.out.println("디코딩 성공, 길이: " + decoded.length); + logger.debug("디코딩 성공, 길이: " + decoded.length); } catch (IllegalArgumentException e) { - System.out.println("Base64 디코딩 실패: " + e.getMessage()); + logger.debug("Base64 디코딩 실패: " + e.getMessage()); } // end test source @@ -586,12 +594,12 @@ public class ApiAdapterService extends HttpAdapterServiceSupport { try { JSONParser parser = new JSONParser(); JSONObject jsonObject = (JSONObject) parser.parse(eaiStringBody); - decryptedBodyMessage = (String) jsonObject.get(decryptedJsonKey); + decryptedBodyMessage = (String) jsonObject.get(decryptedJsonKey); } catch (Exception e) { e.printStackTrace(); logger.error("HttpClient5AdapterServiceRest] extractBodyMsg error : " + e.getMessage()); } - + return decryptedBodyMessage; } @@ -602,17 +610,16 @@ public class ApiAdapterService extends HttpAdapterServiceSupport { //String eaiStringBody = new String(eaiBody, StandardCharsets.UTF_8); //test source - //System.out.println("eaiBody 바이트 배열 길이: " + eaiBody.length); - System.out.println("Base64 문자열: " + eaiStringBody); - System.out.println("Base64 문자열 길이: " + eaiStringBody.length()); - System.out.println("Base64 문자열 끝: " + eaiStringBody.substring(eaiStringBody.length() - 10)); + logger.debug("Base64 문자열: " + eaiStringBody); + logger.debug("Base64 문자열 길이: " + eaiStringBody.length()); + logger.debug("Base64 문자열 끝: " + eaiStringBody.substring(eaiStringBody.length() - 10)); // Base64 디코딩 테스트 try { byte[] decoded = Base64.getDecoder().decode(eaiStringBody); - System.out.println("디코딩 성공, 길이: " + decoded.length); + logger.debug("디코딩 성공, 길이: " + decoded.length); } catch (IllegalArgumentException e) { - System.out.println("Base64 디코딩 실패: " + e.getMessage()); + logger.debug("Base64 디코딩 실패: " + e.getMessage()); } // end test source @@ -705,7 +712,7 @@ public class ApiAdapterService extends HttpAdapterServiceSupport { logger.error(e.getMessage()); } - System.out.println("Token is: " + Token); + logger.debug("Token is: " + Token); return Token; } @@ -721,7 +728,7 @@ public class ApiAdapterService extends HttpAdapterServiceSupport { tokenClientId = ""; } - System.out.println("Token Client ID: " + tokenClientId); + logger.debug("Token Client ID: " + tokenClientId); return tokenClientId; }