curry772
2ed893e70d
표준 HTTP inbound adapter 응답 content type을 요청과 동일하게 리턴되도록 수정
2026-06-12 08:57:10 +09:00
curry772
23eaf725b6
표준 전문의 BIZ_DATA(개별부) path를 mapping config properties 파일 설정으로 변경
...
- standard-message-mapping-config-djb.properties 참고
- 배열 형태의 경우, path를 정상적으로 적용 못하는 문제 우회
2026-06-12 08:55:42 +09:00
curry772
2354af516c
eaiSvcCd를 표준헤더 생성시 StandardMessage 객체내에 저장하도록 변경
...
- 비표준은 이 값을 이용(표준은 전문에서 추출)
2026-06-12 08:52:24 +09:00
curry772
209c1ba15d
파라미터 타입 변경
2026-06-12 08:48:32 +09:00
curry772
895d346bb6
표준전문이 JSON MS949인 경우, 한글 깨짐 처리
2026-06-10 15:10:33 +09:00
curry772
940e5bb90c
EAIMessage에 callProp를 추가하고, 동기 거래에 대한 Outbound에서 세팅한 callProp가
...
RequestProcessor, EAIMessage를 통해 접근 가능하도록 변경
2026-06-10 08:53:39 +09:00
curry772
909cda9ffb
JSON 메시지 이원을 위해서, 리턴을 byte[] -> String으로 변경
2026-06-10 08:51:28 +09:00
curry772
a538b9838e
TemplateAdapterErrorMsgHandler 구현 작업 내역
...
-인바운드/아웃바운드/내부 오류 발생 시 어댑터별로 프로퍼티에 등록된 템플릿을 사용하여
커스텀 에러 응답 메시지를 생성하는 TemplateAdapterErrorMsgHandler 구현 및 연동 작업.
- ExceptionHandler 변경
인바운드 어댑터에 ERR_MSG_HANDLER 프로퍼티가 설정된 경우 우선 실행
- ApiController에서 사용할 수 있는
generateNonStandardInboundErrorResponseMessage 추가, Controller에서도
Adapter가 식별되면 설정된 핸들러에 의해 에러메시지 행성 가능
2026-06-09 13:47:25 +09:00
curry772
d15b2d563e
AdapterName이 null이어서 NullPointerException 발생하는 문제 처리
2026-06-05 17:17:41 +09:00
curry772
037fcd6302
feat: TxSiftContext 추가 및 HttpAdapterServiceSupport 적용
...
- TxSiftContext 클래스 추가: SIFT MDC 등록/해제 및 appender close 공통 처리
- begin(): isSiftEnabled() 확인 후 MDC 등록, 이미 설정된 경우 스킵
- end(): appender 즉시 close 후 MDC 제거 (UUID 등 1회성 key 용도)
- HttpAdapterServiceSupport: MDC 직접 제어 코드를 TxSiftContext.begin/end로
교체
2026-06-05 14:05:10 +09:00
curry772
d9ff1fa40b
잘못된 주석 제거
2026-06-05 13:00:15 +09:00
curry772
4ce22937af
미확인(unkown) 로그 파일 로그 추가
...
- EAIDBLogControl.isEnable() DB 정상 확인
- DB 비정상일 시 파일 로그 출력
2026-06-05 10:35:17 +09:00
curry772
e1e2353139
거래데이터 DB 암호화 DAMO 모듈 적용
...
- DB 거래로그 : EAILogDAO.java
- FILE 거래로그 : EAIFileLogger.java
- 미확인(Unkown) 로그 : InboundErrorInfoDAO.java
2026-06-05 09:47:31 +09:00
curry772
bc16dbcf13
Outbound HTTP 거래에 대해 Simulation거래도 Rest와 동일하게 변경
2026-06-04 16:14:24 +09:00
curry772
176c9845d7
api id, eai svc cd 추출 필터 추가
2026-06-02 18:04:51 +09:00
curry772
3ee53c469c
디버그 로그 추가
2026-06-02 18:03:44 +09:00
curry772
6776153582
KJB_ROOTLESS_ARRAY -> DJB_ROOTLESS_ARRAY 변경
2026-06-02 08:31:47 +09:00
curry772
ea09113dbe
XML 메시지 지원 개발
2026-06-02 08:29:11 +09:00
curry772
113b9227c9
DJB에 사용하지 않는 resource 파일 정리
2026-06-01 16:54:24 +09:00
curry772
f3c2e64191
JWT 서명 알고리즘 RS256 → PS256 교체 — PssJwtAccessTokenConverter, RsaPssSigner,
...
RsaPssVerifier 추가
- RsaPssSigner: spring-security-jwt Signer 구현,
RSASSA-PSS(SHA-256/MGF1/salt=32) 서명
- RsaPssVerifier: SignatureVerifier 구현, 동일 PSS 파라미터로 검증
- PssJwtAccessTokenConverter: JwtHelper를 우회하여 PS256 JWT 직접 발급·검증
- encode/decode 오버라이드로 JwtAlgorithms PS256 미등록 문제 해결
- 생성자에서 공개키 PEM을 보관하여 getKey() 엔드포인트 대응
- build.gradle: spring-security-jwt:1.1.1.RELEASE api 의존성 추가
- RsaPssSignerVerifierTest: 단위테스트 13개 (서명/검증/라운드트립/시각확인)
2026-05-28 13:27:34 +09:00
curry772
6809bf66b8
Dynamic IV 도출 지원 — DerivedKey iv 필드 추가, HsmKeyAndIvDerivationStrategy 구현
2026-05-27 13:47:58 +09:00
curry772
29a486bf9b
RequestProcessor 메소드 시그니쳐 변경
2026-05-27 10:32:30 +09:00
curry772
7415828e82
클라이언트 유량제어 관련 단위테스트 eapim-online 이동
2026-05-26 16:36:06 +09:00
curry772
a4dbf4ab27
Client 유량제어 관련 eapim-online으로 이동
2026-05-26 16:32:32 +09:00
curry772
4f18d25a58
CryptoModuleServier 단위테스트 수정
2026-05-26 16:32:12 +09:00
curry772
0e96e9470e
어댑터 암복호화 필터 리팩토링
...
- 커스텀 패키지 지정
- 변수 이동
2026-05-26 09:54:11 +09:00
curry772
a51453a57f
MaskingUtils elink-online-core로 이동
2026-05-20 17:16:37 +09:00
curry772
6eedac51f7
마스킹 유틸리티 추가 (MaskingUtils + 단위테스트)
...
- 보안아키텍처 마스킹 정책에 따라 고유식별정보·금융식별정보·인증정보·신상정보·온라인정보
- 카테고리별 마스킹 처리 유틸 및 JUnit 5 단위테스트(3단계 번호 체계) 신규 작성
2026-05-20 16:33:21 +09:00
curry772
8d63586749
거래파일로그 기능 추가
...
- HTTP Inbound 거래도 출력되도록 수정
- HTTP Header 파일로그 추가
2026-05-19 13:41:35 +09:00
curry772
7b0699fdb9
로그 오타 수정
2026-05-19 11:20:23 +09:00
curry772
b6a5dce74a
거래파일로그(SIFT_LOGGER) 출력기능 개발
...
- UUID별로 거래파일로그 생성
2026-05-19 11:18:59 +09:00
curry772
265a30ccf3
Outbound Client oAuth Token 기능 개선 및 패치
...
- 광주은행 내용 적용
- ignite 사용
2026-05-18 10:58:10 +09:00
curry772
d458d1b008
Merge branch 'feature/cryptofilter'
2026-05-14 15:24:04 +09:00
curry772
29b8b7eaac
perf: encryptField/decryptField JSON 파싱 횟수 절감
...
JsonPathUtil에 JsonNode 기반 저수준 API(toTree/getAt/setAt/fromTree) 추가.
기존 getValueAtPath/setValueAtPath/mergeAtRoot는 내부적으로 이를 위임.
AbstractCryptoFilter.encryptField, decryptField는 파싱된 JsonNode를
재사용하여 JSON 파싱을 기존 2~3회에서 1회로 단축.
- encryptField non-root: 파싱 2회 → 1회
- decryptField non-root: 파싱 2회 → 1회
- decryptField toPath="/": 파싱 3회 → 2회 (body 1회 + mergeJson 1회)
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-05-14 13:55:29 +09:00
curry772
74302df5a2
fix: decryptField toPath='/' 시 기존 필드 보존 - mergeAtRoot 연동
...
toPath='/'일 때 복호화된 텍스트로 body 전체를 교체하던 동작을
JsonPathUtil.mergeAtRoot 를 통해 fromPath 필드만 제거하고
복호화된 JSON을 body에 병합하는 방식으로 수정.
- AbstractCryptoFilter.decryptField: return plainText → mergeAtRoot 호출
- JsonPathUtil.mergeAtRoot: 신규 메서드 추가
- InCryptoFilterTest: 4-4 병합 동작 검증 테스트 추가, 4-2 설명 수정
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-05-14 13:34:55 +09:00
curry772
9a15b5506f
fix: CryptoFilterHsmIntegrationTest - BaseCryptoFilter 잔여 참조 InCryptoFilter로 교체
...
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-05-14 11:28:02 +09:00
curry772
0b68b8166f
feat: InCryptoFilter / OutCryptoFilter 추가 및 암호화 필터 계층 재구성
...
- AbstractCryptoFilter (신규, http.filter 패키지): 공통 암복호화 로직 및 상수 분리
- InCryptoFilter (신규, dynamic.filter): HttpAdapterFilter 구현 - 수신 요청 복호화, 응답 암호화
- OutCryptoFilter (신규, client.impl.filter): HttpClientAdapterFilter 구현 - 송신 요청 암호화, 응답 복호화
- BaseCryptoFilter, CryptoFilter 제거 → InCryptoFilter로 통합
- CryptoFilterHsmIntegrationTest: 새 클래스명으로 업데이트
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-05-14 11:26:36 +09:00
curry772
8db66f8bef
DefaultProcess - 표준전문 오류응답을 수신 응답 설정(setResMsg) 로직 변경
...
- AdapterErrorMessageHandler를 사용하는 경우, BWK_FAILMSG_CODE(RIBEAI999999)를
설정하도록 변경
- AdapterErrorMessageHandler 설정이 없은 경우, Exception 발생 부분 처리
2026-05-14 10:42:12 +09:00
curry772
c4a250db08
refactor: HttpAdapterFilterFactoryKjb 제거 및 HttpAdapterFilterFactory 통합
...
- HttpAdapterFilterFactoryKjb 삭제
- HttpAdapterFilterFactory에 HMAC_SHA256, REFLECTALLHEADER 케이스 추가
- classForName() 헬퍼로 basePackage / customBasePackage 순차 탐색 적용
- HttpAdapterServiceSupport 임포트를 HttpAdapterFilterFactory로 교체
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-05-13 16:09:22 +09:00
curry772
db7a728344
feat: HttpClient5 어댑터 필터 패키지 eapim-online에서 이동
...
- HttpClient5AdapterServiceRestAddFilter 이동
- HttpClientAdapterFilter / HttpClient5AdapterFilterFactory 등 filter 패키지 이동
(AllHeaderFilter, AsyncReponseFilter, JBOBPFilter, KAKAOBankFilter,
KFTCFaceFilter, KFTCP2PFilter, NAVERFinFilter, NICECreditFilter,
SimpleFrameworkFilter, SimpleframeworkBodyFilter, TOSSBankFilter, TraceBodyFilter)
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-05-13 15:58:07 +09:00
curry772
813bb99952
test: CryptoModuleServiceTest DYNAMIC AES/CBC 출력 로그 추가
...
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-05-13 13:53:17 +09:00
curry772
becd8612e8
Merge branch 'feature/crypto-module'
...
CryptoFilter 프로퍼티 키 규격화, HSM 통합 테스트, SoftHSM2 연동 검증 완료
2026-05-13 13:29:14 +09:00
curry772
e208a2d64b
feat: CryptoFilter 프로퍼티 키 규격화 및 HSM 통합 테스트 추가
...
- CryptoFilter prop 키를 UPPER_UNDERSCORE 형식으로 변경 (CRYPTO_MODULE_NAME 등)
- CRYPTO_DEC_ENABLED / CRYPTO_ENC_ENABLED 옵션 제거 (필터 설정 시 항상 암복호화)
- getProp() 빈 문자열도 기본값으로 처리 (StringUtils.isBlank 적용)
- CryptoFilterHsmIntegrationTest 추가: SoftHSM2 연동 전체 흐름 검증 (7개 케이스)
- attributes(*, CKO_SECRET_KEY, CKK_AES): 임포트 키도 CKA_SENSITIVE=false 적용
- HsmKeyDerivationStrategy / HsmContextSha256KeyDerivationStrategy 검증
- HsmKeyRegisterUtil 추가: SoftHSM2 마스터키 등록 유틸리티
- CryptoModuleServiceTest: GCM AAD 관련 테스트 케이스 보강
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-05-13 13:29:02 +09:00
curry772
444b7ad595
feat: CryptoFilter GCM AAD 지원 추가 및 단위테스트 작성
...
- CryptoFilter: crypto.aad.header 프로퍼티 + buildAad() 메서드 추가
- CryptoFilter: 기본 scope SCOPE_BODY → SCOPE_FIELD 변경
- CryptoFilter: decryptBody/decryptField/encryptBody/encryptField aad 파라미터 적용
- BaseCryptoFilterTest: BODY/FIELD scope, buildAad, AAD 헤더 연동 단위테스트 신규 작성
- CryptoModuleServiceTest: STATIC/DYNAMIC GCM AAD 테스트 섹션 추가
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-05-12 18:15:40 +09:00
curry772
085dd024d8
feat: HsmContextSha256KeyDerivationStrategyTest common 패키지로 이동
...
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-05-12 16:37:15 +09:00
curry772
3b6b3f6e4c
Merge branch 'master' into feature/crypto-module
2026-05-12 16:33:59 +09:00
curry772
f4c28e8a27
feat: HSM 키 파생 전략 클래스 추가 (common 패키지로 이동)
...
- BaseHsmKeyDerivationStrategy: HSM 마스터키 조회 공통 로직 추상 기반 클래스
- HsmKeyDerivationStrategy: HSM 마스터키 직접 사용 전략
- HsmSha256KeyDerivationStrategy: HSM 마스터키 SHA-256 해싱 도출 전략
- HsmContextSha256KeyDerivationStrategy: HSM 마스터키 + 컨텍스트 SHA-256 해싱 도출 전략
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-05-12 16:30:26 +09:00
curry772
3cda2873cc
feat: HTTP 어댑터 암복호화 필터 기반 클래스 추가 및 기본 scope 수정
...
- BaseCryptoFilter: 빈 RuntimeContext를 반환하는 기반 클래스 추가
- CryptoFilter: 기본 scope SCOPE_BODY → SCOPE_FIELD로 변경
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-05-12 16:27:21 +09:00
curry772
c0efdd89d4
Merge branch 'feature/template-adapter-error-msg-handler'
2026-05-12 13:06:08 +09:00
curry772
3eac4eeaa6
feat: 모든 변수 표현식에 :기본값 문법 추가 및 JSON 필드 파싱 지원
...
- ${callprop.KEY:default} / ${callprop[path]:default} / ${MSG.path:default} 기본값 문법
- ${DATA.BIZDATA.acctNo} : StandardMessage String 값이 JSON이면 Gson으로 필드 추출
(중첩 경로 지원, 없는 필드는 빈 문자열 또는 기본값)
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-05-12 13:05:33 +09:00