Repository: camel Updated Branches: refs/heads/camel-2.12.x b5629d844 -> a6a68e453 refs/heads/camel-2.13.x 5a47eefb4 -> 3cc7870a7
CAMEL-7719 Set the XMLReader for the SAXSource in XmlConverter Project: http://git-wip-us.apache.org/repos/asf/camel/repo Commit: http://git-wip-us.apache.org/repos/asf/camel/commit/a6a68e45 Tree: http://git-wip-us.apache.org/repos/asf/camel/tree/a6a68e45 Diff: http://git-wip-us.apache.org/repos/asf/camel/diff/a6a68e45 Branch: refs/heads/camel-2.12.x Commit: a6a68e453962d6c61b78bed12609f0f0939b6954 Parents: b5629d8 Author: Willem Jiang <willem.ji...@gmail.com> Authored: Tue Aug 19 15:17:46 2014 +0800 Committer: Willem Jiang <willem.ji...@gmail.com> Committed: Tue Aug 19 15:18:48 2014 +0800 ---------------------------------------------------------------------- .../camel/converter/jaxp/XmlConverter.java | 19 ++++++++++++++++++- 1 file changed, 18 insertions(+), 1 deletion(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/camel/blob/a6a68e45/camel-core/src/main/java/org/apache/camel/converter/jaxp/XmlConverter.java ---------------------------------------------------------------------- diff --git a/camel-core/src/main/java/org/apache/camel/converter/jaxp/XmlConverter.java b/camel-core/src/main/java/org/apache/camel/converter/jaxp/XmlConverter.java index 37cf7f4..0532011 100644 --- a/camel-core/src/main/java/org/apache/camel/converter/jaxp/XmlConverter.java +++ b/camel-core/src/main/java/org/apache/camel/converter/jaxp/XmlConverter.java @@ -36,6 +36,8 @@ import java.util.Properties; import javax.xml.parsers.DocumentBuilder; import javax.xml.parsers.DocumentBuilderFactory; import javax.xml.parsers.ParserConfigurationException; +import javax.xml.parsers.SAXParser; +import javax.xml.parsers.SAXParserFactory; import javax.xml.stream.XMLStreamException; import javax.xml.stream.XMLStreamReader; import javax.xml.transform.OutputKeys; @@ -59,6 +61,7 @@ import org.w3c.dom.NodeList; import org.xml.sax.InputSource; import org.xml.sax.SAXException; +import org.xml.sax.XMLReader; import org.apache.camel.BytesSource; import org.apache.camel.Converter; @@ -567,7 +570,21 @@ public class XmlConverter { } inputSource.setSystemId(source.getSystemId()); inputSource.setPublicId(source.getPublicId()); - return new SAXSource(inputSource); + XMLReader xmlReader = null; + //Need to setup XMLReader security feature by default + try { + SAXParserFactory sfactory = SAXParserFactory.newInstance(); + try { + sfactory.setFeature(javax.xml.XMLConstants.FEATURE_SECURE_PROCESSING, true); + } catch (Exception e) { + LOG.warn("SAXParser doesn't support the feature {} with value {}, due to {}.", new Object[]{javax.xml.XMLConstants.FEATURE_SECURE_PROCESSING, "true", e}); + } + SAXParser parser = sfactory.newSAXParser(); + xmlReader = parser.getXMLReader(); + } catch (Exception ex) { + LOG.warn("Cannot create the SAXParser XMLReader, due to {}", ex); + } + return new SAXSource(xmlReader, inputSource); } /**