Commit Graph

145 Commits

Author SHA1 Message Date
curry772 831dc9fc48 EZDATA 없는데, Ref필드에는 'ERP'로 되어 있는 경우, flat 전문 파싱 오류 처리 2026-09-07 14:39:47 +09:00
curry772 ec6b51f2a8 정상 응답 MSG 코드/메시지를 레이아웃 기본값 대신 명시적으로 설정
outp_msg_cd(NCMM00001) / outp_msg_ctnt(정상처리되었습니다.) 가 표준전문 레이아웃의
기본값으로 붙어 있어서, "아무도 채우지 않은 상태" 와 "정상이라고 판정한 상태" 가
값만으로 구분되지 않았다. 2026-09 사고에서 MSG 부 파싱이 통째로 스킵됐는데도
오류가 "정상처리되었습니다." 로 보고된 것이 이 때문이다.

레이아웃 기본값을 없애고, StandardMessageCoordinatorDJB.coordinateBeforeResponse 에서
정상 응답일 때만 채운다. 이 메서드는 모든 동기 응답이 거치는 마지막 관문이라
(RequestProcessor 에서 호출) 경로를 빠짐없이 덮는다.

두 조건을 함께 본다.
 - 정상 응답(procs_rslt_dvcd=S) 일 때만. 오류 응답에 정상 메시지를 채우면 사고 재현이다.
 - 값이 비어 있을 때만(setIfBlank). 대외계가 표준응답으로 보낸 MSG 가 우선이며
   덮어쓰면 JsonReader 의 MSG 부 보존 수정이 무의미해진다.

테스트: 기존 3건이 coordinateAfterRecvNonStdSyncResponse 직후에 단정하고 있었으나
값은 이제 마지막 관문에서 채워지므로, 실제 흐름대로 coordinateBeforeResponse 까지
거치도록 고치고 단정도 "공백 아님" 에서 상수 일치로 강화했다.
설계 조건을 지키는 회귀 테스트 2건을 추가했다.
 - 오류응답에는_정상메시지가_채워지지_않는다
 - 대외계가_보낸_MSG_값은_덮어쓰지_않는다

주의: 이 CSV 는 layout.file.type=CSV 인 테스트 설정에서만 쓰인다. 운영은 DB 레이아웃을
읽으므로 DB 의 두 항목 기본값도 함께 비워야 실제 효과가 있다. 비우기 전까지는
setIfBlank 가 아무것도 하지 않아 기존과 동일하게 동작한다.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01UnybKuxcuPafGhVGh4wqkZ
2026-09-03 10:20:13 +09:00
curry772 50c08d7813 KakaopayAdapterErrorMsgHandler: 제어문자 정규화 후 파싱
상대 응답에 이스케이프되지 않은 제어문자가 섞여 오면
"Illegal unquoted character ((CTRL-CHAR, code 10))" 로 실패한다.
readTree() 전에 JacksonUtil.escapeControlChars() 로 표준 JSON 으로 맞춘다.

검증: gradlew compileJava BUILD SUCCESSFUL
2026-08-28 14:28:12 +09:00
curry772 c5bf45cad9 custom 어댑터/변환함수의 Jackson mapper 를 number-safe 로 통일
기본 ObjectMapper 는 JSON 숫자 왕복에서 값을 변형한다
(100000000.00 -> 1.0E8, 0.00000012 -> 1.2E-7). payload 를 다루는
지점을 JacksonUtil.newNumberSafeMapper() 로 맞춘다.

- KakaopayAdapterErrorMsgHandler: 응답 JSON 파싱/왕복 지점 전환
- HttpClient5AdapterServiceBigTechAddFilter: JsonNode 직렬화 지점 전환
- KakaopayFilter: JacksonUtil.readTree(message, OBJECT_MAPPER) 로 plain mapper 를
  넘기고 있어 유틸을 써도 파싱이 깨졌다. 인자 1개 오버로드(number-safe 싱글턴)를
  쓰도록 바꾸고 plain 필드 제거
- JsonPathExtractRequestMessage: 미사용으로 보였던 objectMapper 필드는 사실
  연결이 빠진 것이었다. JsonPath 의 기본 JacksonJsonNodeJsonProvider() 가 내부적으로
  plain ObjectMapper 를 쓰기 때문에 JSON 실수가 DoubleNode 로 파싱되어
  resultNode.asText() 가 "1.0E8" 을 반환했다. 프로바이더에 number-safe mapper 를
  주입해 해결
- NaverpayAdapterErrorMsgHandler: Kakaopay 판을 복사하며 딸려온 미사용 필드/import 제거.
  이 핸들러는 JSON 을 파싱하지 않고 StandardMessage 로만 응답을 만든다

검증: gradlew compileJava BUILD SUCCESSFUL
2026-08-28 09:26:43 +09:00
curry772 57f4847e21 어댑터 에러 핸들러 orgRspErrCd 설정 추가
-현재까지 미사용
2026-08-26 16:34:49 +09:00
curry772 a6e41150cd 거래로그의 오류 출력 부분 수정
- 오류 발생 시 AdapterErrorMessageHandler가 처리하여도 400 오류로 출력되도록 수정
- 업무 오류 발생 시 AdapterErrorMessageHandler가 처리하여도 에러 RECEAIINA001 출력
2026-08-26 09:47:33 +09:00
curry772 f0a36a5365 보안성 소스코드 점검 조치 2026-08-20 10:40:50 +09:00
curry772 0263e97640 주석 변경 2026-08-13 10:36:59 +09:00
curry772 540ebdaf1f 어댑터 에러 핸들러 추가 2026-08-12 09:41:52 +09:00
curry772 e9261c55ad headerGroupName null 체크 추가 2026-08-07 15:14:26 +09:00
curry772 464ed59a3d 주석 변경 2026-08-06 16:46:01 +09:00
curry772 5486489985 HttpAdapterServiceVirtualAccount online -> common 이동 2026-08-06 14:23:35 +09:00
curry772 1b37fc5e1b GUID 생성 시 node 번호를 -Dinst.Name값을 이용하도록 변경 2026-07-24 17:02:36 +09:00
curry772 9a730dc0b7 Test Filter 수신 메시지 JsonNode 지원 2026-07-24 17:01:54 +09:00
curry772 c44b331a32 DJBErpNsmapiAccessTokenService 토큰 만료시간 및 HTTP 클라이언트 재사용 수정
- 하드코딩된 30초 만료를 제거하고 oAuthCredentialVo.getIntervalSec() 기준으로
  복원 (미설정 시 24시간 폴백), 스케줄러 주기와 불일치하던 문제 해결
- execute() 호출마다 PoolingHttpClientConnectionManager/CloseableHttpClient를
  새로 만들고 즉시 닫던 것을, mTLS 여부+clientId 조합별로 1회만 생성해 재사용하도록
  변경. 이 서비스는 HttpClientAccessTokenServiceFactoryByDB에 싱글턴으로 캐시되어
  재사용되므로 인스턴스 필드로 안전하게 캐시 가능
2026-07-22 09:11:20 +09:00
curry772 88f774e6b5 더존 NSM API 토큰 발급 응답 데이터 필드 이름 수정 token -> access_token 2026-07-21 15:32:00 +09:00
curry772 a77f4d4ef0 message 타입 ObjectNode 대응 2026-07-21 10:49:39 +09:00
curry772 15ac0fa2a2 BigTech 어댑터 로그 출력 부분 수정 2026-07-10 10:11:46 +09:00
curry772 e0039aca81 BigTech signature 생성 파라미터(UR) 로그 추가 2026-07-10 10:10:33 +09:00
curry772 3772805301 BigTech 커스텀 어댑터 개발(커스텀 헤더 추가) 2026-07-10 09:46:33 +09:00
curry772 f91b50a121 빅테크 Out Rest Adapter 생성 2026-07-09 14:15:35 +09:00
curry772 9cf16c9f49 일부 수정 2026-07-09 14:15:15 +09:00
curry772 7e83c36a79 로그 메시지 수정 2026-07-08 12:26:44 +09:00
curry772 6597464515 암복호화 JacksonUtil 사용으로 변경 2026-07-03 09:01:40 +09:00
curry772 4094058745 토큰 발급 시 trust 체크 하지 않도록 변경 2026-07-01 11:43:40 +09:00
curry772 0a692f8a07 암복호화 기능 수정 2026-06-30 16:24:15 +09:00
curry772 e5fe9b853f 사용하지 않는 클래스 제거 2026-06-30 09:44:00 +09:00
curry772 918c4b5c3e HSM 암복화 테스트 중 추가 기능 수정 2026-06-29 13:18:02 +09:00
curry772 133c482ef8 더존 암호화 파라미터 이름 변경 - 관리포털에서서 contextKey이름과도 맞추어야 함 2026-06-25 09:59:00 +09:00
curry772 f72348ae67 카카오페이 isagreed 필드 체크 로직 필터 개발 2026-06-25 09:57:52 +09:00
curry772 704a9ff90e Erp nsmapi 토큰발급 개발 2026-06-25 09:57:11 +09:00
curry772 e4851999ba HSM key 가져오는 필터 개발 2026-06-19 17:58:03 +09:00
curry772 1ab25d634e DJB 표준 전문 관련 수정 2026-06-17 19:22:39 +09:00
curry772 984be8b1ee KJB 소스 정리 2026-06-17 19:22:10 +09:00
curry772 cc315f2ad0 에러응답 처리 수정 2026-06-17 13:53:46 +09:00
curry772 7b9862e34b DJB 요건에 맞춤
- EZDATA_SVR_TX_SEQNO 생성 로직 변경
- 환경구분 변경이 운영환경인 경우, P로 설정되도록 수정
2026-06-17 09:25:05 +09:00
curry772 ec9c6d8553 KJB 필터 및 Util 정리 2026-06-15 15:02:47 +09:00
curry772 a01ee024c0 djbank에 커스텀 될 AdapterErrorMsgHandler 추가 2026-06-15 14:47:01 +09:00
curry772 7346c3070d eaiSvcCd 추출 로직 변경
- StandarMessage에 이미 eaiSvcCd가 설정되어 있으면 그것을 이용(비표준)
- 표준전문에서 조합하도록 수정(표준)
2026-06-12 09:07:40 +09:00
curry772 9a597a52ac afterFoundEaiMessage 함수에 프러퍼티 이용 헤더매핑 로직 추가
- DJB_IN_HTTHEAD_STDHEAD_MAPPING 프러퍼티 그룹 이용
2026-06-12 09:05:50 +09:00
curry772 5653a183eb GUID 생성 시 시스템코드 OPA 사용으로 변경 2026-06-12 09:01:27 +09:00
curry772 0e3a612bc0 TemplateAdapterErrorMsgHandler 를 이용하여 오류메시지 생성할 수 있도록 변경 2026-06-09 13:49:32 +09:00
curry772 68c29b962e feat: StandardMessageCoordinatorDJB에 callProp refValue 값 주입 기능 추가
- coordinateAfterCreateMessageByRule에서 StandardItem의 refValue가
   \${callProp.키} 패턴이면 Properties에서 값을 꺼내 setValue로 설정한다.
- \${callProp.키:기본값} 구문으로 기본값 지정 가능
- 점(.) 구분으로 Properties/Map 중첩 구조 탐색 지원
- GROUP 타입 재귀 순회, GRID/FARRAY는 건너뜀
2026-06-05 17:20:09 +09:00
curry772 90464ee33f 성능 튜닝 2026-06-02 18:06:29 +09:00
curry772 7109c56623 DJBank에 필요없는 클래스 정리
- 타 사이트 설정파일 및 표준전문 클래스
2026-06-01 09:57:06 +09:00
curry772 eff7b31490 암복호화 함수 이름 변경 및 단위테스트 추가
- 클래스이름 오타 수정
- Parser 단위 테스트 추가
2026-06-01 08:58:08 +09:00
curry772 01e4e36345 HsmContextSha256KeyDerivationStrategy 추가
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-28 13:30:37 +09:00
curry772 c74d1777df Dynamic IV 도출 지원 — DerivedKey iv 필드 추가, HsmKeyAndIvDerivationStrategy 구현 2026-05-27 13:48:23 +09:00
curry772 c95307901e DJBErp -> DJB 클래스 이름 첨자 변경 2026-05-27 10:49:22 +09:00
curry772 82998b475c DJBRequestProcessor Override 메소드 시그니쳐 변경 2026-05-27 10:32:08 +09:00