diff --git a/fine-itext-old/src/main/java/com/fr/third/com/lowagie/text/SafeEmptyEntityResolver.java b/fine-itext-old/src/main/java/com/fr/third/com/lowagie/text/SafeEmptyEntityResolver.java new file mode 100644 index 000000000..dd4c359ce --- /dev/null +++ b/fine-itext-old/src/main/java/com/fr/third/com/lowagie/text/SafeEmptyEntityResolver.java @@ -0,0 +1,18 @@ +package com.fr.third.com.lowagie.text; + +import java.io.IOException; +import java.io.StringReader; +import org.xml.sax.EntityResolver; +import org.xml.sax.InputSource; +import org.xml.sax.SAXException; + +/** + * @author Hugh.C + * @version 1.0 + * Created by Hugh.C on 2021/4/26 + */ +public class SafeEmptyEntityResolver implements EntityResolver { + public InputSource resolveEntity(String publicId, String systemId) throws SAXException, IOException { + return new InputSource(new StringReader("")); + } +} diff --git a/fine-itext-old/src/main/java/com/fr/third/com/lowagie/text/pdf/XfaForm.java b/fine-itext-old/src/main/java/com/fr/third/com/lowagie/text/pdf/XfaForm.java index 20cdde052..5677fbc38 100644 --- a/fine-itext-old/src/main/java/com/fr/third/com/lowagie/text/pdf/XfaForm.java +++ b/fine-itext-old/src/main/java/com/fr/third/com/lowagie/text/pdf/XfaForm.java @@ -49,6 +49,7 @@ package com.fr.third.com.lowagie.text.pdf; +import com.fr.third.com.lowagie.text.SafeEmptyEntityResolver; import java.io.ByteArrayInputStream; import java.io.ByteArrayOutputStream; import java.io.IOException; @@ -140,6 +141,7 @@ public class XfaForm { DocumentBuilderFactory fact = DocumentBuilderFactory.newInstance(); fact.setNamespaceAware(true); DocumentBuilder db = fact.newDocumentBuilder(); + db.setEntityResolver(new SafeEmptyEntityResolver()); domDocument = db.parse(new ByteArrayInputStream(bout.toByteArray())); extractNodes(); } diff --git a/fine-itext-old/src/main/java/com/fr/third/com/lowagie/text/xml/xmp/XmpReader.java b/fine-itext-old/src/main/java/com/fr/third/com/lowagie/text/xml/xmp/XmpReader.java index 37eaee16d..c3bae5426 100644 --- a/fine-itext-old/src/main/java/com/fr/third/com/lowagie/text/xml/xmp/XmpReader.java +++ b/fine-itext-old/src/main/java/com/fr/third/com/lowagie/text/xml/xmp/XmpReader.java @@ -46,6 +46,7 @@ */ package com.fr.third.com.lowagie.text.xml.xmp; +import com.fr.third.com.lowagie.text.SafeEmptyEntityResolver; import java.io.ByteArrayInputStream; import java.io.ByteArrayOutputStream; import java.io.IOException; @@ -85,6 +86,7 @@ public class XmpReader { DocumentBuilderFactory fact = DocumentBuilderFactory.newInstance(); fact.setNamespaceAware(true); DocumentBuilder db = fact.newDocumentBuilder(); + db.setEntityResolver(new SafeEmptyEntityResolver()); ByteArrayInputStream bais = new ByteArrayInputStream(bytes); domDocument = db.parse(bais); } catch (ParserConfigurationException e) { diff --git a/fine-itext/src/main/java/com/fr/third/v2/lowagie/text/SafeEmptyEntityResolver.java b/fine-itext/src/main/java/com/fr/third/v2/lowagie/text/SafeEmptyEntityResolver.java new file mode 100644 index 000000000..c23d71ef2 --- /dev/null +++ b/fine-itext/src/main/java/com/fr/third/v2/lowagie/text/SafeEmptyEntityResolver.java @@ -0,0 +1,18 @@ +package com.fr.third.v2.lowagie.text; + +import java.io.IOException; +import java.io.StringReader; +import org.xml.sax.EntityResolver; +import org.xml.sax.InputSource; +import org.xml.sax.SAXException; + +/** + * @author Hugh.C + * @version 1.0 + * Created by Hugh.C on 2021/4/26 + */ +public class SafeEmptyEntityResolver implements EntityResolver { + public InputSource resolveEntity(String publicId, String systemId) throws SAXException, IOException { + return new InputSource(new StringReader("")); + } +} diff --git a/fine-itext/src/main/java/com/fr/third/v2/lowagie/text/pdf/XfaForm.java b/fine-itext/src/main/java/com/fr/third/v2/lowagie/text/pdf/XfaForm.java index 6ffbed536..71b701bf5 100644 --- a/fine-itext/src/main/java/com/fr/third/v2/lowagie/text/pdf/XfaForm.java +++ b/fine-itext/src/main/java/com/fr/third/v2/lowagie/text/pdf/XfaForm.java @@ -49,6 +49,7 @@ package com.fr.third.v2.lowagie.text.pdf; +import com.fr.third.v2.lowagie.text.SafeEmptyEntityResolver; import java.io.ByteArrayInputStream; import java.io.ByteArrayOutputStream; import java.io.IOException; @@ -140,6 +141,7 @@ public class XfaForm { DocumentBuilderFactory fact = DocumentBuilderFactory.newInstance(); fact.setNamespaceAware(true); DocumentBuilder db = fact.newDocumentBuilder(); + db.setEntityResolver(new SafeEmptyEntityResolver()); domDocument = db.parse(new ByteArrayInputStream(bout.toByteArray())); extractNodes(); } diff --git a/fine-itext/src/main/java/com/fr/third/v2/lowagie/text/xml/xmp/XmpReader.java b/fine-itext/src/main/java/com/fr/third/v2/lowagie/text/xml/xmp/XmpReader.java index cf0cf770a..ab3550c0c 100644 --- a/fine-itext/src/main/java/com/fr/third/v2/lowagie/text/xml/xmp/XmpReader.java +++ b/fine-itext/src/main/java/com/fr/third/v2/lowagie/text/xml/xmp/XmpReader.java @@ -46,6 +46,7 @@ */ package com.fr.third.v2.lowagie.text.xml.xmp; +import com.fr.third.v2.lowagie.text.SafeEmptyEntityResolver; import java.io.ByteArrayInputStream; import java.io.ByteArrayOutputStream; import java.io.IOException; @@ -85,6 +86,7 @@ public class XmpReader { DocumentBuilderFactory fact = DocumentBuilderFactory.newInstance(); fact.setNamespaceAware(true); DocumentBuilder db = fact.newDocumentBuilder(); + db.setEntityResolver(new SafeEmptyEntityResolver()); ByteArrayInputStream bais = new ByteArrayInputStream(bytes); domDocument = db.parse(bais); } catch (ParserConfigurationException e) {