Compare commits
1 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| f4e806fa08 |
+4
-18
@@ -51,28 +51,13 @@ dependencies {
|
||||
|
||||
api 'commons-collections:commons-collections:3.2.2'
|
||||
|
||||
// poi-excelant -> poi-ooxml -> dom4j:dom4j:1.6.1 (구 groupId) 전이 차단.
|
||||
// 1.6.1 은 XXE(CVE-2020-10683) / XML 인젝션(CVE-2018-1000632) 대상이고,
|
||||
// 소스의 org.dom4j 사용처(HttpClient*AdapterServiceRest 등의 SAXReader)는
|
||||
// hibernate-envers 가 가져오는 org.dom4j:dom4j:2.1.3 과 패키지가 같아 그대로 동작한다.
|
||||
// 두 jar 가 공존하면 WEB-INF/lib 로딩 순서에 따라 1.6.1 이 선택될 수 있으므로 제거한다.
|
||||
api ('org.apache.poi:poi-excelant:3.9') {
|
||||
exclude group: 'dom4j', module: 'dom4j'
|
||||
}
|
||||
api 'org.apache.poi:poi-excelant:3.9'
|
||||
|
||||
api group: 'org.apache.commons', name: 'commons-pool2', version: '2.11.1'
|
||||
api 'commons-codec:commons-codec:1.15'
|
||||
|
||||
// jackson-dataformat-xml(2.13.1) 을 jackson-databind 로 치환 (2026-08-27)
|
||||
//
|
||||
// XmlMapper/JacksonXml* 사용처는 전 소스에 0건이지만, 이 아티팩트가 transformer 의
|
||||
// 유일한 jackson 공급원이었다(전이로 jackson-core/databind 2.13.1 을 끌고 옴).
|
||||
// 그런데 compileOnly 라 WAR 에는 안 들어가고, 런타임은 Ignite 가 끌고 오는 2.12.7 이다.
|
||||
// 이 컴파일(2.13.1)/런타임(2.12.7) skew 때문에 2.13 전용 API 가 컴파일을 통과했고,
|
||||
// 실제로 JacksonUtil.setValue() 가 ArrayNode.set(int, String)(2.13 신규)을 써서
|
||||
// 배열 경로 setText() 시 NoSuchMethodError 가 나는 상태였다.
|
||||
// 런타임에 실제 존재하는 버전을 명시해 컴파일/런타임을 일치시킨다.
|
||||
api group: 'com.fasterxml.jackson.core', name: 'jackson-databind', version: '2.12.7'
|
||||
//api group: 'com.fasterxml.jackson.dataformat', name: 'jackson-dataformat-xml', version: '2.13.1'
|
||||
compileOnly group: 'com.fasterxml.jackson.dataformat', name: 'jackson-dataformat-xml', version: '2.13.1'
|
||||
|
||||
|
||||
compileOnly group: 'xalan', name: 'xalan', version: '2.6.0'
|
||||
@@ -93,6 +78,7 @@ dependencies {
|
||||
//testImplementation files("libs/json-simple-1.1.1-custom-1.2.jar")
|
||||
//testImplementation files("libs/jep-4.j18-md-1.0.jar")
|
||||
testImplementation fileTree(dir: 'libs', include: ['*.jar'])
|
||||
testImplementation group: 'com.fasterxml.jackson.dataformat', name: 'jackson-dataformat-xml', version: '2.13.1'
|
||||
testImplementation 'junit:junit:4.4'
|
||||
|
||||
}
|
||||
|
||||
@@ -50,12 +50,6 @@ public class JSONMessage extends Message {
|
||||
|
||||
factory = mapper.getFactory();
|
||||
factory.configure(JsonReadFeature.ALLOW_UNESCAPED_CONTROL_CHARS.mappedFeature(), true);
|
||||
// 상대가 0 패딩된 코드값을 따옴표 없이(=JSON 숫자로) 보내면 표준 파서는
|
||||
// "Invalid numeric value: Leading zeroes not allowed" 로 거부한다.
|
||||
// 전문 자체를 못 읽는 것보다 받아들이는 쪽이 낫다고 판단해 허용한다.
|
||||
// ⚠ 이 옵션은 00001 을 숫자 1 로 만든다(선행 0 미보존).
|
||||
// 표준전문 경로(common JacksonUtil.newNumberSafeMapper)와 동일한 설정이다.
|
||||
factory.configure(JsonReadFeature.ALLOW_LEADING_ZEROS_FOR_NUMBERS.mappedFeature(), true);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
Reference in New Issue
Block a user