From 466a07a0be3fac1127803b0fd9fa5dbb17410ed4 Mon Sep 17 00:00:00 2001 From: wyb <1977763549@qq.com> Date: Wed, 22 Mar 2023 13:20:18 +0800 Subject: [PATCH] =?UTF-8?q?xmlUtil=20=E8=8E=B7=E5=8F=96=20DocumentBuilderF?= =?UTF-8?q?actory=20=E8=AE=BE=E7=BD=AE=E5=80=BC=E5=8A=A0=E9=94=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/docus/server/collection/util/XmlUtil.java | 6 +++++- .../java/com/docus/server/report/util/XmlUtil.java | 11 +++++++++-- 2 files changed, 14 insertions(+), 3 deletions(-) diff --git a/src/main/java/com/docus/server/collection/util/XmlUtil.java b/src/main/java/com/docus/server/collection/util/XmlUtil.java index a10dcef..17f60ce 100644 --- a/src/main/java/com/docus/server/collection/util/XmlUtil.java +++ b/src/main/java/com/docus/server/collection/util/XmlUtil.java @@ -245,7 +245,11 @@ public class XmlUtil { private static DocumentBuilderFactory getDocumentBuilderFactory() throws ParserConfigurationException { DocumentBuilderFactory dbf = XmlHelperHolder.documentBuilderFactory; if (!preventedXXE) { - preventXXE(dbf); + synchronized (XmlUtil.class) { + if (!preventedXXE) { + preventXXE(dbf); + } + } } return dbf; } diff --git a/src/main/java/com/docus/server/report/util/XmlUtil.java b/src/main/java/com/docus/server/report/util/XmlUtil.java index e199e2e..6402465 100644 --- a/src/main/java/com/docus/server/report/util/XmlUtil.java +++ b/src/main/java/com/docus/server/report/util/XmlUtil.java @@ -19,7 +19,10 @@ package com.docus.server.report.util; import com.docus.core.util.Exceptions; import com.docus.core.util.IoUtil; import org.springframework.lang.Nullable; -import org.w3c.dom.*; +import org.w3c.dom.Document; +import org.w3c.dom.Element; +import org.w3c.dom.Node; +import org.w3c.dom.NodeList; import org.xml.sax.InputSource; import org.xml.sax.SAXException; @@ -245,7 +248,11 @@ public class XmlUtil { private static DocumentBuilderFactory getDocumentBuilderFactory() throws ParserConfigurationException { DocumentBuilderFactory dbf = XmlHelperHolder.documentBuilderFactory; if (!preventedXXE) { - preventXXE(dbf); + synchronized (XmlUtil.class) { + if (!preventedXXE) { + preventXXE(dbf); + } + } } return dbf; }