List of usage examples for org.dom4j.io SAXReader setIncludeInternalDTDDeclarations
public void setIncludeInternalDTDDeclarations(boolean include)
From source file:com.cladonia.xml.XMLUtilities.java
License:Open Source License
/** * Creates a new SAXReader.// w w w . j av a 2s.c o m * * @param validate when true the reader validates the input. * * @return the reader. */ public static SAXReader createReader(boolean validate, boolean loadExternalDTD) { SAXReader reader = new SAXReader(XDocumentFactory.getInstance(), validate); reader.setStripWhitespaceText(false); reader.setMergeAdjacentText(true); // reader.setMergeAdjacentText( true); if (!validate) { reader.setIncludeExternalDTDDeclarations(false); reader.setIncludeInternalDTDDeclarations(true); try { if (loadExternalDTD) { reader.setFeature("http://apache.org/xml/features/nonvalidating/load-dtd-grammar", true); // System.out.println( "http://apache.org/xml/features/nonvalidating/load-external-dtd = "+reader.getXMLReader().getFeature( "http://apache.org/xml/features/nonvalidating/load-external-dtd")); reader.setEntityResolver(getCatalogResolver()); } else { reader.setFeature("http://apache.org/xml/features/nonvalidating/load-dtd-grammar", false); reader.setFeature("http://apache.org/xml/features/nonvalidating/load-external-dtd", false); } } catch (Exception e) { e.printStackTrace(); } } else { try { reader.getXMLReader().setFeature("http://apache.org/xml/features/validation/schema", true); } catch (Exception e) { e.printStackTrace(); } } return reader; }
From source file:com.cladonia.xml.XMLUtilities.java
License:Open Source License
/** * Creates a new SAXReader./*from w w w. j a v a 2s. co m*/ * * @param validate when true the reader validates the input. * * @return the reader. */ public static SAXReader createReader(boolean validate, boolean loadExternalDTD, boolean stripWhiteSpace) { SAXReader reader = new SAXReader(XDocumentFactory.getInstance(), validate); reader.setStripWhitespaceText(stripWhiteSpace); reader.setMergeAdjacentText(true); // reader.setMergeAdjacentText( true); if (!validate) { reader.setIncludeExternalDTDDeclarations(false); reader.setIncludeInternalDTDDeclarations(true); try { if (loadExternalDTD) { reader.setFeature("http://apache.org/xml/features/nonvalidating/load-dtd-grammar", true); // System.out.println( "http://apache.org/xml/features/nonvalidating/load-external-dtd = "+reader.getXMLReader().getFeature( "http://apache.org/xml/features/nonvalidating/load-external-dtd")); reader.setEntityResolver(getCatalogResolver()); } else { reader.setFeature("http://apache.org/xml/features/nonvalidating/load-dtd-grammar", false); reader.setFeature("http://apache.org/xml/features/nonvalidating/load-external-dtd", false); } } catch (Exception e) { e.printStackTrace(); } } else { try { reader.getXMLReader().setFeature("http://apache.org/xml/features/validation/schema", true); } catch (Exception e) { e.printStackTrace(); } } return reader; }
From source file:de.innovationgate.webgate.api.auth.FileAuthenticationModule.java
License:Open Source License
/** * @param _file//w w w . ja va2s . c om */ private synchronized void update(File _file) { try { // Parse doc SAXReader reader = new SAXReader(); reader.setIncludeExternalDTDDeclarations(false); reader.setIncludeInternalDTDDeclarations(false); reader.setValidation(false); Document doc = reader.read(_file); // Flags _allowAnonymous = Boolean.valueOf(doc.getRootElement().attributeValue("allowanonymous")).booleanValue(); // Read users Map users = new HashMap(); Iterator userNodes = doc.selectNodes("/users/user").iterator(); Element userNode; while (userNodes.hasNext()) { userNode = (Element) userNodes.next(); String name = userNode.attributeValue("name"); String password = userNode.attributeValue("password"); String mail = userNode.attributeValue("mail"); String aliasesStr = userNode.attributeValue("aliases"); Set aliases = new HashSet(); if (aliasesStr != null) { aliases.addAll(WGUtils.deserializeCollection(aliasesStr, ",", true)); } users.put(name, new User(name, password, mail, aliases)); } _users = users; // Read Groups Map groups = new HashMap(); Iterator groupNodes = doc.selectNodes("/users/group").iterator(); Element groupNode; while (groupNodes.hasNext()) { groupNode = (Element) groupNodes.next(); String name = groupNode.attributeValue("name"); List members = WGUtils.deserializeCollection(groupNode.attributeValue("members"), ",", true); Group group = new Group(name, members); groups.put(name, group); notifyMembers(group); } // Call listeners synchronized (_authenticationSourceListeners) { Iterator listeners = _authenticationSourceListeners.iterator(); while (listeners.hasNext()) { ((AuthenticationSourceListener) listeners.next()).authenticationDataChanged(); } } } catch (DocumentException e) { WGFactory.getLogger().error("Error parsing authentication file '" + getAuthenticationSource() + "': Error in XML: " + e.getMessage()); } }
From source file:de.innovationgate.wga.common.beans.hdbmodel.ModelDefinition.java
License:Open Source License
public static ModelDefinition read(InputStream in) throws Exception { // First read XML manually and validate against the DTD provided in this OpenWGA distribution (to prevent it being loaded from the internet, which might not work, see #00003612) SAXReader reader = new SAXReader(); reader.setIncludeExternalDTDDeclarations(true); reader.setIncludeInternalDTDDeclarations(true); reader.setEntityResolver(new EntityResolver() { @Override//from w w w . java2 s . c om public InputSource resolveEntity(String publicId, String systemId) throws SAXException, IOException { if (systemId.equals("http://doc.openwga.com/hdb-model-definition-6.0.dtd")) { return new InputSource(ModelDefinition.class.getClassLoader().getResourceAsStream( WGUtils.getPackagePath(ModelDefinition.class) + "/hdb-model-definition-6.0.dtd")); } else { // use the default behaviour return null; } } }); org.dom4j.Document domDoc = reader.read(in); // Remove doctype (we already have validated) and provide the resulting XML to the serializer domDoc.setDocType(null); StringWriter out = new StringWriter(); XMLWriter writer = new XMLWriter(out); writer.write(domDoc); String xml = out.toString(); return _serializer.read(ModelDefinition.class, new StringReader(xml)); }
From source file:mondrian.util.XmlParserFactoryProducer.java
License:Open Source License
public static SAXReader getSAXReader(final EntityResolver resolver) { SAXReader reader = new SAXReader(); if (resolver != null) { reader.setEntityResolver(resolver); }// www . j a v a2 s.co m try { reader.setFeature(XMLConstants.FEATURE_SECURE_PROCESSING, true); reader.setFeature("http://xml.org/sax/features/external-general-entities", false); reader.setFeature("http://xml.org/sax/features/external-parameter-entities", false); reader.setFeature("http://apache.org/xml/features/nonvalidating/load-external-dtd", false); } catch (SAXException e) { logger.error("Some parser properties are not supported."); } reader.setIncludeExternalDTDDeclarations(false); reader.setIncludeInternalDTDDeclarations(false); return reader; }
From source file:net.unicon.toro.installer.tools.MergeConfiguration.java
License:Open Source License
private void mergeWebChanges(Element el, File path) throws Exception { System.out.println("Merging web.xml changes to " + path.getAbsolutePath()); Utils.instance().backupFile(path, true); OutputFormat format = OutputFormat.createPrettyPrint(); SAXReader reader = new SAXReader(); reader.setIncludeInternalDTDDeclarations(true); Document document = reader.read(new URL("file:" + path.getAbsolutePath())); SAXSource source = new DocumentSource(document); List<Element> filters = (List<Element>) el.selectNodes("add-filter/filter"); List<Element> filterMappings = (List<Element>) el.selectNodes("add-filter-mapping/filter-mapping"); List<Element> servlets = (List<Element>) el.selectNodes("add-servlet/servlet"); List<Element> servletMappings = (List<Element>) el.selectNodes("add-servlet-mapping/servlet-mapping"); List<Element> errorPages = (List<Element>) el.selectNodes("add-error-page/error-page"); // remove previous changes StringWriter cleansedDocumentWriter = new StringWriter(); WebXmlCleanserFilter cleaner = new WebXmlCleanserFilter(new XMLWriter(cleansedDocumentWriter)); cleaner.parse(source.getInputSource()); // add new changes try {/*from w w w .j ava 2s. c o m*/ Document cleansedDocument = reader.read(new StringReader(cleansedDocumentWriter.toString())); source = new DocumentSource(cleansedDocument); SAXWriter saxWriter = new WebXmlAdditionsWriter(new XMLWriter(new FileOutputStream(path), format), filters, filterMappings, servlets, servletMappings, errorPages); saxWriter.parse(source.getInputSource()); } catch (Exception e) { e.printStackTrace(); throw e; } }
From source file:nl.tue.gale.common.GaleUtil.java
License:Open Source License
public static SAXReader createSAXReader(boolean validation, boolean loaddtd) { SAXReader result = new SAXReader(); result.setValidation(validation);/*from w w w . ja v a2 s . co m*/ result.setIncludeExternalDTDDeclarations(loaddtd); result.setIncludeInternalDTDDeclarations(loaddtd); return result; }
From source file:org.metaeffekt.dita.maven.glossary.GlossaryMapCreator.java
License:Apache License
protected Document readDocument(File file) { SAXReader reader = new SAXReader(); reader.setValidation(false);//from w w w .j a va2 s . com reader.setIncludeInternalDTDDeclarations(false); reader.setIncludeExternalDTDDeclarations(false); reader.setIgnoreComments(true); reader.setEntityResolver(new EntityResolver() { @Override public InputSource resolveEntity(String arg0, String arg1) throws SAXException, IOException { return new InputSource(new InputStream() { @Override public int read() throws IOException { return -1; } }); } }); try { return reader.read(file); } catch (DocumentException e) { return null; } }
From source file:org.nuxeo.ecm.platform.webdav.request.tests.FakeResponse.java
License:Open Source License
public Element getXMLOutput() throws DocumentException, IOException { SAXReader saxReader = new SAXReader(); saxReader.setMergeAdjacentText(true); saxReader.setEncoding("UTF-8"); saxReader.setValidation(false);//w w w .ja v a 2s.c o m saxReader.setIncludeExternalDTDDeclarations(false); saxReader.setIncludeInternalDTDDeclarations(false); String xml = getOutput(); InputStream in = new StringBlob(xml).getStream(); return saxReader.read(in).getRootElement(); }
From source file:pt.webdetails.cpf.utils.XmlParserFactoryProducer.java
License:Open Source License
/** * Creates an instance of {@link SAXReader} class * with features that prevent from some XXE attacks (e.g. XML bomb) * See PPP-3506 for more details.//from ww w . j ava2 s. c o m * See also https://www.owasp.org/index.php/XML_External_Entity_(XXE)_Prevention_Cheat_Sheet * * @param resolver Is {@link EntityResolver} or null * @return {@link SAXReader} */ public static SAXReader getSAXReader(final EntityResolver resolver) { SAXReader reader = new SAXReader(); if (resolver != null) { reader.setEntityResolver(resolver); } try { reader.setFeature(XMLConstants.FEATURE_SECURE_PROCESSING, true); reader.setFeature("http://xml.org/sax/features/external-general-entities", false); reader.setFeature("http://xml.org/sax/features/external-parameter-entities", false); reader.setFeature("http://apache.org/xml/features/nonvalidating/load-external-dtd", false); } catch (SAXException e) { logger.error("Some parser properties are not supported."); } reader.setIncludeExternalDTDDeclarations(false); reader.setIncludeInternalDTDDeclarations(false); return reader; }