DocumentBuilderFactoryProvider.java 1.17 KB
/*
 * Decompiled with CFR 0_118.
 */
package com.day.cq.dam.commons.xml;

import com.day.cq.dam.commons.xml.SecureDocumentBuilderFactory;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.parsers.ParserConfigurationException;

public class DocumentBuilderFactoryProvider
implements SecureDocumentBuilderFactory {
    @Override
    public DocumentBuilderFactory createSecureBuilderFactory(Boolean setNameSpaceAware) throws ParserConfigurationException {
        DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
        if (setNameSpaceAware.booleanValue()) {
            dbf.setNamespaceAware(true);
        }
        dbf.setValidating(true);
        dbf.setExpandEntityReferences(false);
        dbf.setFeature("http://xml.org/sax/features/validation", true);
        dbf.setFeature("http://xml.org/sax/features/external-general-entities", false);
        dbf.setFeature("http://xml.org/sax/features/external-parameter-entities", false);
        dbf.setFeature("http://apache.org/xml/features/nonvalidating/load-dtd-grammar", false);
        dbf.setFeature("http://apache.org/xml/features/nonvalidating/load-external-dtd", false);
        return dbf;
    }
}