Commit Graph

64 Commits

Author SHA1 Message Date
curry772 8701f5d459 보안성심의 오픈소스 조치 2026-09-07 16:08:48 +09:00
curry772 eaf1416e13 JSONMessage 파서에 선행 0 숫자 허용 옵션 추가
비표준(N) 경로도 표준(K) 경로와 같은 입력에서 실패한다.
JSONMessage 는 ALLOW_UNESCAPED_CONTROL_CHARS 만 켜고 있어 제어문자는
통과했지만, 선행 0 은 별개 옵션이라 함께 거부됐다.

transformer 는 의존 방향(common -> transformer)상 JacksonUtil 을 참조할 수
없어 common 의 newNumberSafeMapper() 와 같은 설정을 직접 켠다.

주의: 이 옵션은 00001 을 숫자 1 로 만든다(선행 0 미보존).

Jackson 2.12.7 실측: 생성자와 동일한 4개 설정 조합에서 선행 0 파싱,
제어문자 옵션 유지, 두 옵션 동시 동작, 숫자 정밀도 왕복 모두 확인.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Phh6MSGvgHM3rPgGUU3dzR
2026-08-28 16:41:31 +09:00
curry772 c0c1544350 test: 전체 테스트 스위트 통과하도록 격리/기대값 수정 (115/115)
전체 스위트 실행 시 115개 중 28개가 실패하던 문제 처리.

1. 클래스별 JVM 격리 (25건)
   TransformEngine/LayoutManager/MessageFactory 는 ApplicationContextProvider
   기반의 JVM 전역 싱글턴이라, 한 JVM 에서 여러 테스트 클래스를 돌리면 마지막에
   뜬 스프링 컨텍스트가 앞선 컨텍스트를 덮어쓴다. 그 결과 뒤 클래스가 앞 클래스의
   레이아웃을 보게 되어 "cannot create message" 로 실패했다.
   (각 클래스는 단독 실행 시에는 모두 통과)
   → build.gradle test 태스크에 forkEvery = 1 추가.
     느려지는 부분은 maxParallelForks 로 상쇄 (7분 → 4분 28초).

2. GetTrinomialFunctionTest 기대값 정정 (2건)
   JEP addStandardConstants() 에는 true/false 가 없고 Parser 가 이를 Boolean 으로
   등록한다(Parser.addBooleanConstants). 테스트 setUp 도 Boolean 을 바인딩해 놓고
   결과를 Number 로 단언하고 있어 자기모순이었음 → Boolean 기대로 정정.

3. LayoutRepositoryTest 시드 ID 수정 (1건)
   시드 SQL 어디에도 없는 TST_TTST00000002_RES 를 조회하고 있었음
   → init_tseaitr07/08 에 존재하는 TST_TOSSTEST1_TGT 로 변경.

운영 코드 변경 없음 (build.gradle 테스트 설정 + 테스트 코드만).
2026-08-28 12:48:40 +09:00
curry772 d20ac6290b jackson-dataformat-xml 을 jackson-databind 2.12.7 로 치환
XmlMapper 사용처는 0건이지만 transformer 의 유일한 jackson 공급원이라 제거가 아닌
치환이 필요하다. compileOnly 라 컴파일은 2.13.1 / 런타임은 2.12.7 인 skew 가 있었고,
이 때문에 2.13 전용 API 가 컴파일만 통과했다
(JacksonUtil.setValue 의 ArrayNode.set(int, String) -> 런타임 NoSuchMethodError).
2026-08-28 09:26:50 +09:00
curry772 0c048a88fe fix: 변환매핑 item이 하나도 없는 변환매핑 로딩 안되는 문제 처리 2026-08-27 12:03:10 +09:00
curry772 b1e7883d41 fix: target validation 오류 발생 시 item path 정보 출력 안되는 문제 처리 2026-08-27 09:18:49 +09:00
curry772 09ac7f4ca5 printStackTrace() 주석 처리 2026-08-13 15:07:39 +09:00
curry772 90ccf59b25 변환 표현식 내에 true, false가 있을 경우, warning 출력 부분 제거 2026-08-12 17:57:42 +09:00
curry772 051305ac55 숫자형 validation 로직 원복 100.12 -> 5,2 로 설정하는 방식 2026-08-05 16:33:25 +09:00
curry772 375f0e0f15 JSONMessage 불필요한 로직 제거 2026-08-05 13:04:02 +09:00
curry772 027ec4fcea isValid 함수에서 전체 길이는 '.'를 포함하지 않는 정수부 + 소수부 길이로 함 2026-08-04 18:18:44 +09:00
curry772 229156d51d 프러퍼티그룹 이용 함수 개발 20260731_개발배포 2026-07-27 09:56:24 +09:00
curry772 f9e6522b8f JJB masking 룰 적용 20260724_개발배포 2026-07-23 11:32:57 +09:00
curry772 cd5cb4c0b5 JSON grid가 아닌 필드배열 처리 패치 20260708_개발배포 20260713_개발배포 20260722_개발배포 2026-07-06 09:23:22 +09:00
curry772 a1d822c2d7 DJB 함수 개발 20260618_개발배포 2026-06-18 08:53:53 +09:00
curry772 05e887f7f1 Merge branch 'feature/bytes-decimal-validation' 2026-05-20 15:10:04 +09:00
curry772 4653d6a50b BytesMessage decimal 필드 숫자형 validation 추가 및 단위테스트 작성
- BytesMessage.setDataBytes(): decimal>0 필드에 비숫자 bytes 입력 시
  validation=true이면 MessageSetDataException 발생하도록 수정
- BytesMessageValidationTest: C섹션(C-1/C-2/C-3) 추가,
  tearDown을 clearProperty로 변경하여 SystemKeys 기본값(true) 올바르게 복원,
  B-4 DisplayName/메서드명을 setString이 decimal 검증 경로 밖임을 명시하도록 수정
2026-05-20 15:08:59 +09:00
curry772 858d72c4de XMLMessage BIGDECIMAL validation 추가 및 isValid() 공통화
- Converter.isValid(): JSONMessage의 private isValid()를 static 공통 메서드로 이동
  (지수형 정규화 포함, 빈 문자열은 검증 대상 아님)
- JSONMessage: Converter.isValid() 위임, private isValid() 제거
- XMLMessage: doSetValue()에서 TYPE_BIGDECIMAL 필드 validation 추가
  (try-catch 예외 삼킴 블록 앞에 위치시켜 예외가 전파되도록 함)
- BytesMessageValidationTest: VALID_RAW 길이 오류 수정(32→35바이트),
  TYPE_BYTEARRAY isolation 검증
- XMLMessageValidationTest: validation 정상/오류/경계 케이스 10개 추가
  (C-1 assertThrows 포함)
2026-05-20 13:15:32 +09:00
curry772 9860f31d83 Merge branch 'feature/json-scientific-normalize' 2026-05-20 10:10:45 +09:00
curry772 ac71355e05 지수형 부동소수점 validation 정규화 flag 추가 (transformer.scientific.normalize)
- SystemKeys: TRANSFROMER_SCIENTIFIC_NORMALIZE 키 및
isScientificNormalizeEnabled() 추가
- JSONMessage.isValid(): flag ON 시 toPlainString()으로 정규화 후 검증
- false positive 방지: 1.23e5(=123000)가 자릿수 제한을 우회하는 문제 차단
- false negative 방지: pointLength=0 필드에서 유효한 지수형 값이 거부되는 문제 해결
- JSONMessageValidationTest: 지수형 시나리오 4개 추가 (정규화 ON/OFF 각 케이스)
2026-05-20 10:09:08 +09:00
curry772 e0ea4a4f5d JSON 메시지 validation 기능 수정
- 오류발생위치 출력
- type 오류 validation test 추가
2026-05-18 14:00:28 +09:00
curry772 82c7c2bc8c JSON_VALIDATION_TEST_PLAN.md git 추적 제거 (작업내역_* 패턴으로 rename)
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-08 13:34:33 +09:00
curry772 d469fac2d7 .gitignore에 작업내역 문서 패턴 추가
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-08 13:30:50 +09:00
curry772 2d3f659012 ConcatN 가변 파라미터 문자열 연결 함수 추가 및 단위테스트 작성
- ConcatN: numberOfParameters=-1로 파라미터 수 제한 없이 문자열 연결
- 기존 Concat(2개 고정)을 대체 가능하며 하위 호환성 유지
- ConcatNFunctionTest: JEP 직접 사용, 파라미터 수 변화 검증
- ConcatNParserTest: Parser 클래스 경유, 변수/상수 혼합 표현식 및 성능 검증

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-08 13:25:37 +09:00
curry772 17f6df5068 Merge branch 'feature/json-validation-test'
- JSONMessage BigDecimal 자릿수 검사를 setData() 시점으로 통일
- SystemKeys.isValidationEnabled() 하드코딩 버그 수정
- JSONMessageValidationTest 7개 테스트 추가
- JSON_VALIDATION_TEST_PLAN.md 작업 내역 문서화

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-23 09:48:12 +09:00
curry772 0e40c71a9d BigDecimal 자릿수 검사를 doSetValue() 시점으로 이동
- doSetValue()의 TYPE_BIGDECIMAL case에 isValid() 검사 추가
- 자릿수 초과 오류 발생 시점이 getData()에서 setData()로 통일
- 테스트: 자릿수 초과 3건 기대 예외를 InvalidDataTypeException → MessageSetDataException으로 변경
- JSON_VALIDATION_TEST_PLAN.md 내용 최신화

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-23 09:47:04 +09:00
curry772 ae629d51e6 JSONMessage validation 단위테스트 추가 및 SystemKeys 버그 수정
- SystemKeys.isValidationEnabled() 하드코딩 버그 수정 (return false → return validationEnabled)
- init_json_validation.sql: EAI_UJSONTYPE_REQ1 레이아웃 전용 테스트 데이터 추가
- JSONMessageValidationTest: @DataJpaTest + H2 기반 JUnit 5 단위테스트 7개
  - 타입 불일치(INT/LONG/BIGDECIMAL 필드에 비숫자 입력) → MessageSetDataException 검증
  - BigDecimal 정수부/소수부 자릿수 초과 → InvalidDataTypeException 검증

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-22 18:13:35 +09:00
curry772 c8a58fdf5b Merge branch 'jenkins_with_weblogic' into master 2026-03-11 10:34:29 +09:00
cho 35b90c391c Merge branch 'jenkins_with_weblogic' of http://192.168.240.178:18080/eapim/elink-online-transformer.git into jenkins_with_weblogic 2026-03-03 14:33:09 +09:00
cho 947d1f223c system_out_제거 2026-03-03 14:00:19 +09:00
daekuk 4133f73af5 - 요구사항 반영, XML 선언부(encoding) 제거 2026-02-25 10:34:45 +09:00
cho a3c12e2694 BytesMessage(flat)은 EAI연계시만 사용, EAI 표준인코딩은 euc-kr임.
프로젝트에 맞게 변경. 기존 거래 왜 되었었나, 표준메세지여서 utf8이어도 한글깨짐이 없었던듯...
2026-02-10 15:41:21 +09:00
cho c50a58fcaf ifblank추가. 2026-01-19 09:04:03 +09:00
cho 8741a3bb3a 테스트 케이스 정리 및 transform Group to Grid 패치 defualt값 셋팅되는 bugfix 2026-01-15 11:09:31 +09:00
cho 3ebd36d776 테스트 케이스 추가 2026-01-15 09:45:41 +09:00
cho 6b55b51ad6 Merge branch 'jenkins_with_weblogic' into transform_grid_to_group 2026-01-14 14:46:37 +09:00
cho a37fd7c8bd 테스트케이스 2026-01-10 13:48:36 +09:00
cho 190e446b2b Merge branch 'jenkins_with_weblogic' of http://192.168.240.178:18080/eapim/elink-online-transformer.git into jenkins_with_weblogic 2026-01-10 12:46:56 +09:00
cho 2ef8a88262 Merge branch 'transform_grid_to_group' into jenkins_with_weblogic 2026-01-10 12:46:31 +09:00
cho d954388c5a bytemessage 일때, mapping 버그 fix
bytemessage는 각 item항목 초기값 null이 아님, byte[0]임.
2026-01-10 12:46:05 +09:00
jaewohong e95f7aa445 파일 원복 2026-01-09 16:18:50 +09:00
jaewohong dd68924d78 Merge branch 'jenkins_with_weblogic' of ssh://git@192.168.240.178:18081/eapim/elink-online-transformer.git into jenkins_with_weblogic 2026-01-09 16:14:53 +09:00
jaewohong d0b4310388 file online/libs으로 security 이관 2026-01-09 16:14:46 +09:00
cho 26810c6b8e Merge branch 'jenkins_with_weblogic' of http://192.168.240.178:18080/eapim/elink-online-transformer.git into jenkins_with_weblogic 2026-01-09 10:39:41 +09:00
cho 9592ccd6e9 1. 현재 아래 예외처리를 통해 Grid -> Grid만 되도록 cnvsnrsultitempathname 안에 path에
[*]있는지 체크하고 예외 발생, Grid to Group 맵핑 해야할 경우가 생겨, 예외 주석처리.

2.Grid to Group 맵핑 Grid기준 첫번째 항목만 맵핑되도록 원래는 Grid가 count수만큼 반복부 돌며, 덮어씌기가
되어 마지막 항목의 값이 맵핑됨.
값맵핑할 타겟 아이템이 이미 값이 설정되어있으면 앞에서 맵핑처리가 이미되었단 뜻이니, return 하도록 처리.
2026-01-09 10:39:01 +09:00
jaewohong ea0bfd0afc seed libaray 추가 2026-01-08 13:44:39 +09:00
jaewohong e947a0ca7a partner code를 key사용 2026-01-08 09:48:27 +09:00
jaewohong bfa74e5d7e 수정 2026-01-08 09:46:33 +09:00
jaewohong 173d99e947 Merge branch 'jenkins_with_weblogic' of ssh://git@192.168.240.178:18081/eapim/elink-online-transformer.git into jenkins_with_weblogic 2026-01-08 09:45:56 +09:00
jaewohong bf1b03061b 수정 2026-01-08 09:45:47 +09:00