From baf02216d362ebb804bb2b01140e9395cb23bd08 Mon Sep 17 00:00:00 2001 From: Greg Turnquist Date: Thu, 14 Mar 2019 20:40:10 -0500 Subject: [PATCH] SWS-1050 - Backport to 2.x. --- .../transform/TransformerFactoryUtils.java | 21 ++++++++++++++++--- 1 file changed, 18 insertions(+), 3 deletions(-) diff --git a/spring-xml/src/main/java/org/springframework/xml/transform/TransformerFactoryUtils.java b/spring-xml/src/main/java/org/springframework/xml/transform/TransformerFactoryUtils.java index df7da9a6..7d96c01e 100644 --- a/spring-xml/src/main/java/org/springframework/xml/transform/TransformerFactoryUtils.java +++ b/spring-xml/src/main/java/org/springframework/xml/transform/TransformerFactoryUtils.java @@ -19,12 +19,16 @@ import javax.xml.XMLConstants; import javax.xml.transform.TransformerFactory; import javax.xml.transform.TransformerFactoryConfigurationError; +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; + /** * @author Greg Turnquist - * @since 3.0.5 + * @since 2.4.6/3.0.5 */ public class TransformerFactoryUtils { + private static final Log log = LogFactory.getLog(TransformerFactoryUtils.class); /** * Build a new {@link TransformerFactory} using the default constructor. */ @@ -53,8 +57,19 @@ public class TransformerFactoryUtils { * Prevent external entities from accessing. */ private static TransformerFactory defaultSettings(TransformerFactory factory) { - factory.setAttribute(XMLConstants.ACCESS_EXTERNAL_DTD, ""); - factory.setAttribute(XMLConstants.ACCESS_EXTERNAL_STYLESHEET, ""); + try { + factory.setAttribute(XMLConstants.ACCESS_EXTERNAL_DTD, ""); + } catch (IllegalArgumentException e) { + if (log.isWarnEnabled()) { + log.warn(XMLConstants.ACCESS_EXTERNAL_DTD + " property not supported by " + factory.getClass().getCanonicalName()); + } + } + try { + factory.setAttribute(XMLConstants.ACCESS_EXTERNAL_STYLESHEET, ""); + } catch (IllegalArgumentException e) { + if (log.isWarnEnabled()) { + log.warn(XMLConstants.ACCESS_EXTERNAL_STYLESHEET + " property not supported by " + factory.getClass().getCanonicalName()); + } } return factory; } }