xmlUtil 获取 DocumentBuilderFactory 设置值加锁

3.2.4.44
wyb 2 years ago
parent 1942e8fce3
commit 466a07a0be

@ -245,7 +245,11 @@ public class XmlUtil {
private static DocumentBuilderFactory getDocumentBuilderFactory() throws ParserConfigurationException { private static DocumentBuilderFactory getDocumentBuilderFactory() throws ParserConfigurationException {
DocumentBuilderFactory dbf = XmlHelperHolder.documentBuilderFactory; DocumentBuilderFactory dbf = XmlHelperHolder.documentBuilderFactory;
if (!preventedXXE) { if (!preventedXXE) {
preventXXE(dbf); synchronized (XmlUtil.class) {
if (!preventedXXE) {
preventXXE(dbf);
}
}
} }
return dbf; return dbf;
} }

@ -19,7 +19,10 @@ package com.docus.server.report.util;
import com.docus.core.util.Exceptions; import com.docus.core.util.Exceptions;
import com.docus.core.util.IoUtil; import com.docus.core.util.IoUtil;
import org.springframework.lang.Nullable; 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.InputSource;
import org.xml.sax.SAXException; import org.xml.sax.SAXException;
@ -245,7 +248,11 @@ public class XmlUtil {
private static DocumentBuilderFactory getDocumentBuilderFactory() throws ParserConfigurationException { private static DocumentBuilderFactory getDocumentBuilderFactory() throws ParserConfigurationException {
DocumentBuilderFactory dbf = XmlHelperHolder.documentBuilderFactory; DocumentBuilderFactory dbf = XmlHelperHolder.documentBuilderFactory;
if (!preventedXXE) { if (!preventedXXE) {
preventXXE(dbf); synchronized (XmlUtil.class) {
if (!preventedXXE) {
preventXXE(dbf);
}
}
} }
return dbf; return dbf;
} }

Loading…
Cancel
Save