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);
}
}
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;
}
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;
}
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;
}
}
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);
}
Aggregations