Search in sources :

Example 86 with Text

use of org.w3c.dom.Text in project knime-core by knime.

the class XMLXpathCellReader method readXML.

/**
 * {@inheritDoc}
 */
@Override
public XMLValue<Document> readXML() throws IOException {
    if (!m_xpathMatcher.nodeMatches()) {
        return null;
    }
    try {
        while (m_parser.hasNext()) {
            switch(m_parser.getEventType()) {
                case XMLStreamConstants.START_ELEMENT:
                    updateBasePath();
                    updateXmlSpaceDefinition();
                    updateXmlLangDefinition();
                    pushNamespaceContext();
                    for (int i = 0; i < m_docs.size(); i++) {
                        Element element = createElement(m_docs.get(i));
                        m_currNodes.get(i).appendChild(element);
                        m_currNodes.set(i, element);
                    }
                    boolean match = m_xpathMatcher.startElement(m_parser.getName());
                    if (match) {
                        Document doc = m_builder.newDocument();
                        Element element = createElement(doc);
                        m_namespaceStack.stream().flatMap(e -> e.stream()).forEach(p -> element.setAttributeNS(XMLConstants.XMLNS_ATTRIBUTE_NS_URI, p.getFirst(), p.getSecond()));
                        // (see: http://www.w3.org/XML/1998/namespace)
                        if (!m_base.isEmpty() && null != m_base.get(0)) {
                            element.setAttributeNS(XMLConstants.XML_NS_URI, "xml:base", m_base.get(0));
                        }
                        if (!m_space.isEmpty() && null != m_space.get(0)) {
                            element.setAttributeNS(XMLConstants.XML_NS_URI, "xml:space", m_space.get(0));
                        }
                        if (!m_lang.isEmpty() && null != m_lang.get(0)) {
                            element.setAttributeNS(XMLConstants.XML_NS_URI, "xml:lang", m_lang.get(0));
                        }
                        doc.appendChild(element);
                        m_docs.add(doc);
                        m_currNodes.add(element);
                    }
                    break;
                case XMLStreamConstants.END_ELEMENT:
                    if (!m_reentrent) {
                        m_xpathMatcher.endElement();
                        if (!m_base.isEmpty()) {
                            m_base.remove(0);
                        }
                        if (!m_space.isEmpty()) {
                            m_space.remove(0);
                        }
                        if (!m_lang.isEmpty()) {
                            m_lang.remove(0);
                        }
                    }
                    for (int i = m_docs.size() - 1; i >= 0; i--) {
                        Node curr = m_currNodes.get(i);
                        Node first = m_docs.get(i).getFirstChild();
                        if (curr.isSameNode(first)) {
                            XMLValue<Document> cell = null;
                            cell = createDataCell(m_docs.get(i));
                            m_docs.remove(i);
                            m_currNodes.remove(i);
                            m_reentrent = true;
                            return cell;
                        } else {
                            m_currNodes.set(i, curr.getParentNode());
                        }
                    }
                    popNamespaceContext();
                    m_reentrent = false;
                    break;
                case XMLStreamConstants.CHARACTERS:
                    if (!m_parser.isWhiteSpace() || (m_parser.isWhiteSpace() && !m_space.isEmpty() && null != m_space.get(0) && m_space.get(0).equals("preserve"))) {
                        for (int i = 0; i < m_docs.size(); i++) {
                            String str = m_parser.getText();
                            Text text = m_docs.get(i).createTextNode(str);
                            m_currNodes.get(i).appendChild(text);
                        }
                    }
                    break;
                case XMLStreamConstants.SPACE:
                    if (!m_space.isEmpty() && null != m_space.get(0) && m_space.get(0).equals("preserve")) {
                        for (int i = 0; i < m_docs.size(); i++) {
                            String str = m_parser.getText();
                            Text text = m_docs.get(i).createTextNode(str);
                            m_currNodes.get(i).appendChild(text);
                        }
                    }
                    break;
                case XMLStreamConstants.COMMENT:
                    for (int i = 0; i < m_docs.size(); i++) {
                        String str = m_parser.getText();
                        Comment comment = m_docs.get(i).createComment(str);
                        m_currNodes.get(i).appendChild(comment);
                    }
                    break;
                case XMLStreamConstants.ENTITY_REFERENCE:
                    for (int i = 0; i < m_docs.size(); i++) {
                        String str = m_parser.getText();
                        EntityReference ref = m_docs.get(i).createEntityReference(str);
                        m_currNodes.get(i).appendChild(ref);
                    }
                    break;
                case XMLStreamConstants.PROCESSING_INSTRUCTION:
                    for (int i = 0; i < m_docs.size(); i++) {
                        String piTarget = m_parser.getPITarget();
                        String piName = m_parser.getPIData();
                        ProcessingInstruction pi = m_docs.get(i).createProcessingInstruction(piTarget, piName);
                        m_currNodes.get(i).appendChild(pi);
                    }
                    break;
                case XMLStreamConstants.DTD:
                    // not needed use DOM-Reader for full documents
                    break;
                case XMLStreamConstants.END_DOCUMENT:
                    // never called
                    m_parser.close();
                default:
                    break;
            }
            m_parser.next();
        }
        return null;
    } catch (XMLStreamException e) {
        throw new IOException(e);
    }
}
Also used : Text(org.w3c.dom.Text) ProcessingInstruction(org.w3c.dom.ProcessingInstruction) XMLInputFactory(javax.xml.stream.XMLInputFactory) Deque(java.util.Deque) ArrayList(java.util.ArrayList) Pair(org.knime.core.util.Pair) XMLValue(org.knime.core.data.xml.XMLValue) EntityReference(org.w3c.dom.EntityReference) XMLStreamConstants(javax.xml.stream.XMLStreamConstants) XMLStreamReader(javax.xml.stream.XMLStreamReader) Document(org.w3c.dom.Document) XMLStreamException(javax.xml.stream.XMLStreamException) Node(org.w3c.dom.Node) LinkedList(java.util.LinkedList) XMLConstants(javax.xml.XMLConstants) XMLCellFactory(org.knime.core.data.xml.XMLCellFactory) KNIMEConstants(org.knime.core.node.KNIMEConstants) IOException(java.io.IOException) Comment(org.w3c.dom.Comment) List(java.util.List) Element(org.w3c.dom.Element) ParserConfigurationException(javax.xml.parsers.ParserConfigurationException) DocumentBuilder(javax.xml.parsers.DocumentBuilder) DocumentBuilderFactory(javax.xml.parsers.DocumentBuilderFactory) ArrayDeque(java.util.ArrayDeque) Collections(java.util.Collections) InputStream(java.io.InputStream) Comment(org.w3c.dom.Comment) Element(org.w3c.dom.Element) Node(org.w3c.dom.Node) Text(org.w3c.dom.Text) IOException(java.io.IOException) Document(org.w3c.dom.Document) XMLStreamException(javax.xml.stream.XMLStreamException) EntityReference(org.w3c.dom.EntityReference) ProcessingInstruction(org.w3c.dom.ProcessingInstruction)

Example 87 with Text

use of org.w3c.dom.Text in project cxf by apache.

the class XmlEncOutInterceptor method createKeyInfoElement.

private Element createKeyInfoElement(Document encryptedDataDoc, X509Certificate remoteCert) throws Exception {
    Element keyInfoElement = encryptedDataDoc.createElementNS(SIG_NS, SIG_PREFIX + ":KeyInfo");
    String keyIdType = encProps.getEncryptionKeyIdType() == null ? RSSecurityUtils.X509_CERT : encProps.getEncryptionKeyIdType();
    Node keyIdentifierNode = null;
    if (keyIdType.equals(RSSecurityUtils.X509_CERT)) {
        byte[] data = null;
        try {
            data = remoteCert.getEncoded();
        } catch (CertificateEncodingException e) {
            throw new WSSecurityException(WSSecurityException.ErrorCode.SECURITY_TOKEN_UNAVAILABLE, e, "encodeError");
        }
        Text text = encryptedDataDoc.createTextNode(Base64.getMimeEncoder().encodeToString(data));
        Element cert = encryptedDataDoc.createElementNS(SIG_NS, SIG_PREFIX + ":X509Certificate");
        cert.appendChild(text);
        Element x509Data = encryptedDataDoc.createElementNS(SIG_NS, SIG_PREFIX + ":X509Data");
        x509Data.appendChild(cert);
        keyIdentifierNode = x509Data;
    } else if (keyIdType.equals(RSSecurityUtils.X509_ISSUER_SERIAL)) {
        String issuer = remoteCert.getIssuerDN().getName();
        java.math.BigInteger serialNumber = remoteCert.getSerialNumber();
        DOMX509IssuerSerial domIssuerSerial = new DOMX509IssuerSerial(encryptedDataDoc, issuer, serialNumber);
        DOMX509Data domX509Data = new DOMX509Data(encryptedDataDoc, domIssuerSerial);
        keyIdentifierNode = domX509Data.getElement();
    } else {
        throw new Exception("Unsupported key identifier:" + keyIdType);
    }
    keyInfoElement.appendChild(keyIdentifierNode);
    return keyInfoElement;
}
Also used : Element(org.w3c.dom.Element) Node(org.w3c.dom.Node) CertificateEncodingException(java.security.cert.CertificateEncodingException) WSSecurityException(org.apache.wss4j.common.ext.WSSecurityException) Text(org.w3c.dom.Text) DOMX509IssuerSerial(org.apache.wss4j.common.token.DOMX509IssuerSerial) DOMX509Data(org.apache.wss4j.common.token.DOMX509Data) WSSecurityException(org.apache.wss4j.common.ext.WSSecurityException) IllegalBlockSizeException(javax.crypto.IllegalBlockSizeException) BadPaddingException(javax.crypto.BadPaddingException) CertificateEncodingException(java.security.cert.CertificateEncodingException)

Example 88 with Text

use of org.w3c.dom.Text in project cxf by apache.

the class IssueSamlUnitTest method createUseKey.

/*
     * Mock up a UseKeyType object
     */
private UseKeyType createUseKey(Crypto crypto, String alias) throws Exception {
    CryptoType cryptoType = new CryptoType(CryptoType.TYPE.ALIAS);
    cryptoType.setAlias(alias);
    X509Certificate[] certs = crypto.getX509Certificates(cryptoType);
    Document doc = DOMUtils.getEmptyDocument();
    Element x509Data = doc.createElementNS(WSS4JConstants.SIG_NS, "ds:X509Data");
    x509Data.setAttributeNS(WSS4JConstants.XMLNS_NS, "xmlns:ds", WSS4JConstants.SIG_NS);
    Element x509Cert = doc.createElementNS(WSS4JConstants.SIG_NS, "ds:X509Certificate");
    Text certText = doc.createTextNode(Base64.getMimeEncoder().encodeToString(certs[0].getEncoded()));
    x509Cert.appendChild(certText);
    x509Data.appendChild(x509Cert);
    UseKeyType useKey = new UseKeyType();
    useKey.setAny(x509Data);
    return useKey;
}
Also used : JAXBElement(javax.xml.bind.JAXBElement) Element(org.w3c.dom.Element) UseKeyType(org.apache.cxf.ws.security.sts.provider.model.UseKeyType) Text(org.w3c.dom.Text) CryptoType(org.apache.wss4j.common.crypto.CryptoType) Document(org.w3c.dom.Document) X509Certificate(java.security.cert.X509Certificate)

Example 89 with Text

use of org.w3c.dom.Text in project Payara by payara.

the class ParseDD method validateAppClientDescriptor.

/**
 * Parse validate the XML file
 *
 * @param source Input XML to be checked
 */
public Result validateAppClientDescriptor(InputStream source) {
    Document document = null;
    result = getInitializedResult();
    result.setComponentName(EJB);
    NodeList nodeList = null;
    try {
        if (source == null) {
            logger.log(Level.SEVERE, getClass().getName() + ".srcnull");
            result.failed(smh.getLocalString(getClass().getName() + ".NoIO", "no InputStream found", new Object[] {}));
            return result;
        } else {
            document = builder.parse(source);
            // ejb-ref-type
            nodeList = document.getElementsByTagName("ejb-ref-type");
            if (nodeList != null) {
                for (int i = 0; i < nodeList.getLength(); i++) {
                    String ejbRefTypeValue = ((Text) nodeList.item(i).getFirstChild()).getNodeValue();
                    if (!ejbRefTypeValue.equals(EjbSessionDescriptor.TYPE) && !ejbRefTypeValue.equals(EjbEntityDescriptor.TYPE)) {
                        result.failed(smh.getLocalString(getClass().getName() + ".failedAppClientEjbRefType", "[App Client] ejb-ref-type cannot be {0}. It has to be either Entity or Session.", new Object[] { ejbRefTypeValue }));
                        oneFailed = true;
                    } else {
                        result.addGoodDetails(smh.getLocalString(getClass().getName() + ".passedAppClientEjbRefType", "PASSED [App Client] : ejb-ref-type is {0}.", new Object[] { ejbRefTypeValue }));
                    }
                }
            }
            // res-auth
            nodeList = document.getElementsByTagName("res-auth");
            if (nodeList != null) {
                for (int i = 0; i < nodeList.getLength(); i++) {
                    String value = ((Text) nodeList.item(i).getFirstChild()).getNodeValue();
                    if (!value.equals("Application") && !value.equals("Container")) {
                        result.failed(smh.getLocalString(getClass().getName() + ".failedAppClientResAuth", "[App Client] res-auth cannot be {0}. It has to be either Application or Container", new Object[] { value }));
                        oneFailed = true;
                    } else {
                        result.addGoodDetails(smh.getLocalString(getClass().getName() + ".passedAppClientResAuth", "PASSED [App Client] : res-auth is {0}.", new Object[] { value }));
                    }
                }
            }
            // res-sharing-scope
            nodeList = document.getElementsByTagName("res-sharing-scope");
            if (nodeList != null) {
                for (int i = 0; i < nodeList.getLength(); i++) {
                    String value = ((Text) nodeList.item(i).getFirstChild()).getNodeValue();
                    if (!value.equals("Shareable") && !value.equals("Unshareable")) {
                        result.failed(smh.getLocalString(getClass().getName() + ".failedAppClientResSharingScope", "[App Client] res-sharing-scope cannot be {0}. It has to be either Shareable or Unshareable", new Object[] { value }));
                        oneFailed = true;
                    } else {
                        result.addGoodDetails(smh.getLocalString(getClass().getName() + ".passedAppClientResSharingScope", "PASSED [App Client] : res-sharing-scope is {0}.", new Object[] { value }));
                    }
                }
            }
            if (result.getStatus() != Result.FAILED) {
                result.setStatus(Result.PASSED);
            }
            return result;
        }
    } catch (IOException e) {
        logger.log(Level.SEVERE, getClass().getName() + ".Exception", new Object[] { e.toString() });
        result.failed(smh.getLocalString(getClass().getName() + ".Exception", "Exception : {0}", new Object[] { e.toString() }));
        return result;
    } catch (SAXException e) {
        logger.log(Level.SEVERE, getClass().getName() + ".Exception", new Object[] { e.toString() });
        result.failed(smh.getLocalString(getClass().getName() + ".Exception", "Exception : {0}", new Object[] { e.toString() }));
        return result;
    } catch (Exception e) {
        logger.log(Level.SEVERE, getClass().getName() + ".Exception", new Object[] { e.toString() });
        result.failed(smh.getLocalString(getClass().getName() + ".Exception", "Exception : {0}", new Object[] { e.toString() }));
        return result;
    }
}
Also used : NodeList(org.w3c.dom.NodeList) Text(org.w3c.dom.Text) IOException(java.io.IOException) Document(org.w3c.dom.Document) IOException(java.io.IOException) ParserConfigurationException(javax.xml.parsers.ParserConfigurationException) SAXException(org.xml.sax.SAXException) SAXException(org.xml.sax.SAXException)

Example 90 with Text

use of org.w3c.dom.Text in project ORCID-Source by ORCID.

the class FilterEdugain method main.

public static void main(String[] args) throws FileNotFoundException, IOException, ParserConfigurationException, SAXException, TransformerException {
    List<String> idps = IOUtils.readLines(new FileInputStream(args[0]));
    File edugainFile = new File(args[1]);
    DocumentBuilderFactory dbFactory = DocumentBuilderFactory.newInstance();
    DocumentBuilder dBuilder = dbFactory.newDocumentBuilder();
    Document doc = dBuilder.parse(edugainFile);
    NodeList nodeList = doc.getElementsByTagName("md:EntityDescriptor");
    int matched = 0;
    int originalLength = nodeList.getLength();
    List<Node> nodesToRemove = new ArrayList<>();
    for (int i = 0; i < originalLength; i++) {
        Node item = nodeList.item(i);
        String entityId = item.getAttributes().getNamedItem("entityID").getTextContent();
        if (idps.contains(entityId)) {
            matched++;
            System.out.println("Found entity " + entityId);
        } else {
            nodesToRemove.add(item);
            Node previousSibling = item.getPreviousSibling();
            if (previousSibling != null && previousSibling instanceof Text) {
                if (StringUtils.isBlank(previousSibling.getTextContent())) {
                    nodesToRemove.add(previousSibling);
                }
            }
        }
    }
    nodesToRemove.stream().forEach(n -> n.getParentNode().removeChild(n));
    System.out.println("Number of entities matched = " + matched + "/" + originalLength);
    TransformerFactory tFactory = TransformerFactory.newInstance();
    Transformer transformer = tFactory.newTransformer();
    DOMSource source = new DOMSource(doc);
    StreamResult result = new StreamResult(new FileOutputStream("/tmp/federation-metatdata-filtered.xml"));
    transformer.transform(source, result);
}
Also used : DOMSource(javax.xml.transform.dom.DOMSource) DocumentBuilderFactory(javax.xml.parsers.DocumentBuilderFactory) TransformerFactory(javax.xml.transform.TransformerFactory) Transformer(javax.xml.transform.Transformer) StreamResult(javax.xml.transform.stream.StreamResult) NodeList(org.w3c.dom.NodeList) Node(org.w3c.dom.Node) ArrayList(java.util.ArrayList) Text(org.w3c.dom.Text) Document(org.w3c.dom.Document) FileInputStream(java.io.FileInputStream) DocumentBuilder(javax.xml.parsers.DocumentBuilder) FileOutputStream(java.io.FileOutputStream) File(java.io.File)

Aggregations

Text (org.w3c.dom.Text)166 Element (org.w3c.dom.Element)93 Document (org.w3c.dom.Document)64 Node (org.w3c.dom.Node)58 NodeList (org.w3c.dom.NodeList)35 DocumentBuilderFactory (javax.xml.parsers.DocumentBuilderFactory)23 DocumentBuilder (javax.xml.parsers.DocumentBuilder)22 ParserConfigurationException (javax.xml.parsers.ParserConfigurationException)17 IOException (java.io.IOException)14 Attr (org.w3c.dom.Attr)14 InputSource (org.xml.sax.InputSource)11 StringReader (java.io.StringReader)10 SAXException (org.xml.sax.SAXException)8 ArrayList (java.util.ArrayList)7 DOMException (org.w3c.dom.DOMException)7 Test (org.junit.Test)6 DOMSource (javax.xml.transform.dom.DOMSource)5 NamedNodeMap (org.w3c.dom.NamedNodeMap)5 HashMap (java.util.HashMap)4 DocumentFragment (org.w3c.dom.DocumentFragment)4