From: PJ Fanning Date: Fri, 8 Oct 2021 16:15:14 +0000 (+0000) Subject: [bug-65326] accessExternalSchema is usually not accepted on TransformerFactory X-Git-Tag: REL_5_2_0~433 X-Git-Url: https://source.dussan.org/?a=commitdiff_plain;h=47118082ffbe065bffca3717f4d53e348c66e8b1;p=poi.git [bug-65326] accessExternalSchema is usually not accepted on TransformerFactory git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@1894032 13f79535-47bb-0310-9956-ffa450edef68 --- diff --git a/poi/src/main/java/org/apache/poi/util/XMLHelper.java b/poi/src/main/java/org/apache/poi/util/XMLHelper.java index 87a481b04c..8e7bae2898 100644 --- a/poi/src/main/java/org/apache/poi/util/XMLHelper.java +++ b/poi/src/main/java/org/apache/poi/util/XMLHelper.java @@ -223,7 +223,7 @@ public final class XMLHelper { trySet(factory::setFeature, FEATURE_SECURE_PROCESSING, true); trySet(factory::setAttribute, ACCESS_EXTERNAL_DTD, ""); trySet(factory::setAttribute, ACCESS_EXTERNAL_STYLESHEET, ""); - trySet(factory::setAttribute, ACCESS_EXTERNAL_SCHEMA, ""); + quietSet(factory::setAttribute, ACCESS_EXTERNAL_SCHEMA, ""); return factory; } @@ -292,6 +292,16 @@ public final class XMLHelper { return false; } + private static boolean quietSet(SecurityProperty property, String name, Object value) { + try { + property.accept(name, value); + return true; + } catch (Exception|Error e) { + // ok to ignore + } + return false; + } + private static void logThrowable(Throwable t, String message, String name) { if (System.currentTimeMillis() > lastLog + TimeUnit.MINUTES.toMillis(5)) { LOG.atWarn().withThrowable(t).log("{} [log suppressed for 5 minutes]{}", message, name);