You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@santuario.apache.org by co...@apache.org on 2014/06/13 13:32:34 UTC
svn commit: r1602385 - in
/santuario/xml-security-java/branches/1.5.x-fixes/src:
main/java/org/apache/jcp/xml/dsig/internal/dom/
main/java/org/apache/xml/security/keys/
main/java/org/apache/xml/security/signature/
main/java/org/apache/xml/security/tran...
Author: coheigea
Date: Fri Jun 13 11:32:34 2014
New Revision: 1602385
URL: http://svn.apache.org/r1602385
Log:
Replacing some getChildNodes() calls
Conflicts:
src/main/java/org/apache/jcp/xml/dsig/internal/dom/DOMKeyInfo.java
src/main/java/org/apache/jcp/xml/dsig/internal/dom/DOMSignatureProperties.java
src/main/java/org/apache/jcp/xml/dsig/internal/dom/DOMXMLObject.java
src/main/java/org/apache/xml/security/keys/KeyInfo.java
src/main/java/org/apache/xml/security/stax/ext/AbstractOutputProcessor.java
src/main/java/org/apache/xml/security/transforms/params/XPath2FilterContainer.java
src/main/java/org/apache/xml/security/transforms/params/XPath2FilterContainer04.java
src/main/java/org/apache/xml/security/transforms/params/XPathContainer.java
src/test/java/org/apache/xml/security/test/signature/InvalidKeyTest.java
src/test/java/org/apache/xml/security/test/stax/signature/SignatureCreationTest.java
Modified:
santuario/xml-security-java/branches/1.5.x-fixes/src/main/java/org/apache/jcp/xml/dsig/internal/dom/DOMKeyInfo.java
santuario/xml-security-java/branches/1.5.x-fixes/src/main/java/org/apache/jcp/xml/dsig/internal/dom/DOMPGPData.java
santuario/xml-security-java/branches/1.5.x-fixes/src/main/java/org/apache/jcp/xml/dsig/internal/dom/DOMSignatureProperties.java
santuario/xml-security-java/branches/1.5.x-fixes/src/main/java/org/apache/jcp/xml/dsig/internal/dom/DOMSignatureProperty.java
santuario/xml-security-java/branches/1.5.x-fixes/src/main/java/org/apache/jcp/xml/dsig/internal/dom/DOMUtils.java
santuario/xml-security-java/branches/1.5.x-fixes/src/main/java/org/apache/jcp/xml/dsig/internal/dom/DOMX509Data.java
santuario/xml-security-java/branches/1.5.x-fixes/src/main/java/org/apache/jcp/xml/dsig/internal/dom/DOMXMLObject.java
santuario/xml-security-java/branches/1.5.x-fixes/src/main/java/org/apache/xml/security/keys/KeyInfo.java
santuario/xml-security-java/branches/1.5.x-fixes/src/main/java/org/apache/xml/security/signature/XMLSignature.java
santuario/xml-security-java/branches/1.5.x-fixes/src/main/java/org/apache/xml/security/transforms/implementations/TransformXPath.java
santuario/xml-security-java/branches/1.5.x-fixes/src/main/java/org/apache/xml/security/transforms/params/XPath2FilterContainer.java
santuario/xml-security-java/branches/1.5.x-fixes/src/main/java/org/apache/xml/security/transforms/params/XPath2FilterContainer04.java
santuario/xml-security-java/branches/1.5.x-fixes/src/main/java/org/apache/xml/security/transforms/params/XPathContainer.java
santuario/xml-security-java/branches/1.5.x-fixes/src/test/java/org/apache/xml/security/test/signature/InvalidKeyTest.java
Modified: santuario/xml-security-java/branches/1.5.x-fixes/src/main/java/org/apache/jcp/xml/dsig/internal/dom/DOMKeyInfo.java
URL: http://svn.apache.org/viewvc/santuario/xml-security-java/branches/1.5.x-fixes/src/main/java/org/apache/jcp/xml/dsig/internal/dom/DOMKeyInfo.java?rev=1602385&r1=1602384&r2=1602385&view=diff
==============================================================================
--- santuario/xml-security-java/branches/1.5.x-fixes/src/main/java/org/apache/jcp/xml/dsig/internal/dom/DOMKeyInfo.java (original)
+++ santuario/xml-security-java/branches/1.5.x-fixes/src/main/java/org/apache/jcp/xml/dsig/internal/dom/DOMKeyInfo.java Fri Jun 13 11:32:34 2014
@@ -36,7 +36,6 @@ import org.w3c.dom.Attr;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.w3c.dom.Node;
-import org.w3c.dom.NodeList;
/**
* DOM-based implementation of KeyInfo.
@@ -97,36 +96,32 @@ public final class DOMKeyInfo extends DO
}
// get all children nodes
- NodeList nl = kiElem.getChildNodes();
- int length = nl.getLength();
- if (length < 1) {
- throw new MarshalException
- ("KeyInfo must contain at least one type");
- }
- List<XMLStructure> content = new ArrayList<XMLStructure>(length);
- for (int i = 0; i < length; i++) {
- Node child = nl.item(i);
- // ignore all non-Element nodes
- if (child.getNodeType() != Node.ELEMENT_NODE) {
- continue;
- }
- Element childElem = (Element)child;
- String localName = childElem.getLocalName();
- String namespace = childElem.getNamespaceURI();
- if (localName.equals("X509Data") && XMLSignature.XMLNS.equals(namespace)) {
- content.add(new DOMX509Data(childElem));
- } else if (localName.equals("KeyName") && XMLSignature.XMLNS.equals(namespace)) {
- content.add(new DOMKeyName(childElem));
- } else if (localName.equals("KeyValue") && XMLSignature.XMLNS.equals(namespace)) {
- content.add(DOMKeyValue.unmarshal(childElem));
- } else if (localName.equals("RetrievalMethod") && XMLSignature.XMLNS.equals(namespace)) {
- content.add(new DOMRetrievalMethod(childElem,
- context, provider));
- } else if (localName.equals("PGPData") && XMLSignature.XMLNS.equals(namespace)) {
- content.add(new DOMPGPData(childElem));
- } else { //may be MgmtData, SPKIData or element from other namespace
- content.add(new javax.xml.crypto.dom.DOMStructure((childElem)));
+ List<XMLStructure> content = new ArrayList<XMLStructure>();
+ Node firstChild = kiElem.getFirstChild();
+ if (firstChild == null) {
+ throw new MarshalException("KeyInfo must contain at least one type");
+ }
+ while (firstChild != null) {
+ if (firstChild.getNodeType() == Node.ELEMENT_NODE) {
+ Element childElem = (Element)firstChild;
+ String localName = childElem.getLocalName();
+ String namespace = childElem.getNamespaceURI();
+ if (localName.equals("X509Data") && XMLSignature.XMLNS.equals(namespace)) {
+ content.add(new DOMX509Data(childElem));
+ } else if (localName.equals("KeyName") && XMLSignature.XMLNS.equals(namespace)) {
+ content.add(new DOMKeyName(childElem));
+ } else if (localName.equals("KeyValue") && XMLSignature.XMLNS.equals(namespace)) {
+ content.add(DOMKeyValue.unmarshal(childElem));
+ } else if (localName.equals("RetrievalMethod") && XMLSignature.XMLNS.equals(namespace)) {
+ content.add(new DOMRetrievalMethod(childElem,
+ context, provider));
+ } else if (localName.equals("PGPData") && XMLSignature.XMLNS.equals(namespace)) {
+ content.add(new DOMPGPData(childElem));
+ } else { //may be MgmtData, SPKIData or element from other namespace
+ content.add(new javax.xml.crypto.dom.DOMStructure(childElem));
+ }
}
+ firstChild = firstChild.getNextSibling();
}
keyInfoTypes = Collections.unmodifiableList(content);
}
Modified: santuario/xml-security-java/branches/1.5.x-fixes/src/main/java/org/apache/jcp/xml/dsig/internal/dom/DOMPGPData.java
URL: http://svn.apache.org/viewvc/santuario/xml-security-java/branches/1.5.x-fixes/src/main/java/org/apache/jcp/xml/dsig/internal/dom/DOMPGPData.java?rev=1602385&r1=1602384&r2=1602385&view=diff
==============================================================================
--- santuario/xml-security-java/branches/1.5.x-fixes/src/main/java/org/apache/jcp/xml/dsig/internal/dom/DOMPGPData.java (original)
+++ santuario/xml-security-java/branches/1.5.x-fixes/src/main/java/org/apache/jcp/xml/dsig/internal/dom/DOMPGPData.java Fri Jun 13 11:32:34 2014
@@ -33,7 +33,6 @@ import javax.xml.crypto.dsig.keyinfo.PGP
import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.w3c.dom.Node;
-import org.w3c.dom.NodeList;
import org.apache.xml.security.exceptions.Base64DecodingException;
import org.apache.xml.security.utils.Base64;
@@ -145,13 +144,12 @@ public final class DOMPGPData extends DO
// get all children nodes
byte[] keyId = null;
byte[] keyPacket = null;
- NodeList nl = pdElem.getChildNodes();
- int length = nl.getLength();
- List<XMLStructure> other = new ArrayList<XMLStructure>(length);
- for (int x = 0; x < length; x++) {
- Node n = nl.item(x);
- if (n.getNodeType() == Node.ELEMENT_NODE) {
- Element childElem = (Element)n;
+
+ List<XMLStructure> other = new ArrayList<XMLStructure>();
+ Node firstChild = pdElem.getFirstChild();
+ while (firstChild != null) {
+ if (firstChild.getNodeType() == Node.ELEMENT_NODE) {
+ Element childElem = (Element)firstChild;
String localName = childElem.getLocalName();
String namespace = childElem.getNamespaceURI();
try {
@@ -167,6 +165,7 @@ public final class DOMPGPData extends DO
throw new MarshalException(bde);
}
}
+ firstChild = firstChild.getNextSibling();
}
this.keyId = keyId;
this.keyPacket = keyPacket;
Modified: santuario/xml-security-java/branches/1.5.x-fixes/src/main/java/org/apache/jcp/xml/dsig/internal/dom/DOMSignatureProperties.java
URL: http://svn.apache.org/viewvc/santuario/xml-security-java/branches/1.5.x-fixes/src/main/java/org/apache/jcp/xml/dsig/internal/dom/DOMSignatureProperties.java?rev=1602385&r1=1602384&r2=1602385&view=diff
==============================================================================
--- santuario/xml-security-java/branches/1.5.x-fixes/src/main/java/org/apache/jcp/xml/dsig/internal/dom/DOMSignatureProperties.java (original)
+++ santuario/xml-security-java/branches/1.5.x-fixes/src/main/java/org/apache/jcp/xml/dsig/internal/dom/DOMSignatureProperties.java Fri Jun 13 11:32:34 2014
@@ -34,7 +34,6 @@ import org.w3c.dom.Attr;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.w3c.dom.Node;
-import org.w3c.dom.NodeList;
/**
* DOM-based implementation of SignatureProperties.
@@ -98,22 +97,19 @@ public final class DOMSignaturePropertie
id = null;
}
- NodeList nodes = propsElem.getChildNodes();
- int length = nodes.getLength();
- List<SignatureProperty> properties =
- new ArrayList<SignatureProperty>(length);
- for (int i = 0; i < length; i++) {
- Node child = nodes.item(i);
- if (child.getNodeType() == Node.ELEMENT_NODE) {
- String name = child.getLocalName();
- String namespace = child.getNamespaceURI();
+ List<SignatureProperty> properties = new ArrayList<SignatureProperty>();
+ Node firstChild = propsElem.getFirstChild();
+ while (firstChild != null) {
+ if (firstChild.getNodeType() == Node.ELEMENT_NODE) {
+ String name = firstChild.getLocalName();
+ String namespace = firstChild.getNamespaceURI();
if (!name.equals("SignatureProperty") || !XMLSignature.XMLNS.equals(namespace)) {
throw new MarshalException("Invalid element name: " + namespace + ":" + name +
", expected SignatureProperty");
}
- properties.add(new DOMSignatureProperty((Element)child,
- context));
+ properties.add(new DOMSignatureProperty((Element)firstChild, context));
}
+ firstChild = firstChild.getNextSibling();
}
if (properties.isEmpty()) {
throw new MarshalException("properties cannot be empty");
Modified: santuario/xml-security-java/branches/1.5.x-fixes/src/main/java/org/apache/jcp/xml/dsig/internal/dom/DOMSignatureProperty.java
URL: http://svn.apache.org/viewvc/santuario/xml-security-java/branches/1.5.x-fixes/src/main/java/org/apache/jcp/xml/dsig/internal/dom/DOMSignatureProperty.java?rev=1602385&r1=1602384&r2=1602385&view=diff
==============================================================================
--- santuario/xml-security-java/branches/1.5.x-fixes/src/main/java/org/apache/jcp/xml/dsig/internal/dom/DOMSignatureProperty.java (original)
+++ santuario/xml-security-java/branches/1.5.x-fixes/src/main/java/org/apache/jcp/xml/dsig/internal/dom/DOMSignatureProperty.java Fri Jun 13 11:32:34 2014
@@ -34,7 +34,6 @@ import org.w3c.dom.Attr;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.w3c.dom.Node;
-import org.w3c.dom.NodeList;
/**
* DOM-based implementation of SignatureProperty.
@@ -106,11 +105,11 @@ public final class DOMSignatureProperty
id = null;
}
- NodeList nodes = propElem.getChildNodes();
- int length = nodes.getLength();
- List<XMLStructure> content = new ArrayList<XMLStructure>(length);
- for (int i = 0; i < length; i++) {
- content.add(new javax.xml.crypto.dom.DOMStructure(nodes.item(i)));
+ List<XMLStructure> content = new ArrayList<XMLStructure>();
+ Node firstChild = propElem.getFirstChild();
+ while (firstChild != null) {
+ content.add(new javax.xml.crypto.dom.DOMStructure(firstChild));
+ firstChild = firstChild.getNextSibling();
}
if (content.isEmpty()) {
throw new MarshalException("content cannot be empty");
Modified: santuario/xml-security-java/branches/1.5.x-fixes/src/main/java/org/apache/jcp/xml/dsig/internal/dom/DOMUtils.java
URL: http://svn.apache.org/viewvc/santuario/xml-security-java/branches/1.5.x-fixes/src/main/java/org/apache/jcp/xml/dsig/internal/dom/DOMUtils.java?rev=1602385&r1=1602384&r2=1602385&view=diff
==============================================================================
--- santuario/xml-security-java/branches/1.5.x-fixes/src/main/java/org/apache/jcp/xml/dsig/internal/dom/DOMUtils.java (original)
+++ santuario/xml-security-java/branches/1.5.x-fixes/src/main/java/org/apache/jcp/xml/dsig/internal/dom/DOMUtils.java Fri Jun 13 11:32:34 2014
@@ -350,9 +350,11 @@ public class DOMUtils {
* @param node the parent node whose children are to be removed
*/
public static void removeAllChildren(Node node) {
- NodeList children = node.getChildNodes();
- for (int i = 0, length = children.getLength(); i < length; i++) {
- node.removeChild(children.item(i));
+ Node firstChild = node.getFirstChild();
+ while (firstChild != null) {
+ Node nodeToRemove = firstChild;
+ firstChild = firstChild.getNextSibling();
+ node.removeChild(nodeToRemove);
}
}
Modified: santuario/xml-security-java/branches/1.5.x-fixes/src/main/java/org/apache/jcp/xml/dsig/internal/dom/DOMX509Data.java
URL: http://svn.apache.org/viewvc/santuario/xml-security-java/branches/1.5.x-fixes/src/main/java/org/apache/jcp/xml/dsig/internal/dom/DOMX509Data.java?rev=1602385&r1=1602384&r2=1602385&view=diff
==============================================================================
--- santuario/xml-security-java/branches/1.5.x-fixes/src/main/java/org/apache/jcp/xml/dsig/internal/dom/DOMX509Data.java (original)
+++ santuario/xml-security-java/branches/1.5.x-fixes/src/main/java/org/apache/jcp/xml/dsig/internal/dom/DOMX509Data.java Fri Jun 13 11:32:34 2014
@@ -37,7 +37,6 @@ import javax.security.auth.x500.X500Prin
import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.w3c.dom.Node;
-import org.w3c.dom.NodeList;
import org.apache.xml.security.exceptions.Base64DecodingException;
import org.apache.xml.security.utils.Base64;
@@ -98,36 +97,32 @@ public final class DOMX509Data extends D
*/
public DOMX509Data(Element xdElem) throws MarshalException {
// get all children nodes
- NodeList nl = xdElem.getChildNodes();
- int length = nl.getLength();
- List<Object> content = new ArrayList<Object>(length);
- for (int i = 0; i < length; i++) {
- Node child = nl.item(i);
- // ignore all non-Element nodes
- if (child.getNodeType() != Node.ELEMENT_NODE) {
- continue;
- }
-
- Element childElem = (Element)child;
- String localName = childElem.getLocalName();
- String namespace = childElem.getNamespaceURI();
- if (localName.equals("X509Certificate") && XMLSignature.XMLNS.equals(namespace)) {
- content.add(unmarshalX509Certificate(childElem));
- } else if (localName.equals("X509IssuerSerial") && XMLSignature.XMLNS.equals(namespace)) {
- content.add(new DOMX509IssuerSerial(childElem));
- } else if (localName.equals("X509SubjectName") && XMLSignature.XMLNS.equals(namespace)) {
- content.add(childElem.getFirstChild().getNodeValue());
- } else if (localName.equals("X509SKI") && XMLSignature.XMLNS.equals(namespace)) {
- try {
- content.add(Base64.decode(childElem));
- } catch (Base64DecodingException bde) {
- throw new MarshalException("cannot decode X509SKI", bde);
+ List<Object> content = new ArrayList<Object>();
+ Node firstChild = xdElem.getFirstChild();
+ while (firstChild != null) {
+ if (firstChild.getNodeType() == Node.ELEMENT_NODE) {
+ Element childElem = (Element)firstChild;
+ String localName = childElem.getLocalName();
+ String namespace = childElem.getNamespaceURI();
+ if (localName.equals("X509Certificate") && XMLSignature.XMLNS.equals(namespace)) {
+ content.add(unmarshalX509Certificate(childElem));
+ } else if (localName.equals("X509IssuerSerial") && XMLSignature.XMLNS.equals(namespace)) {
+ content.add(new DOMX509IssuerSerial(childElem));
+ } else if (localName.equals("X509SubjectName") && XMLSignature.XMLNS.equals(namespace)) {
+ content.add(childElem.getFirstChild().getNodeValue());
+ } else if (localName.equals("X509SKI") && XMLSignature.XMLNS.equals(namespace)) {
+ try {
+ content.add(Base64.decode(childElem));
+ } catch (Base64DecodingException bde) {
+ throw new MarshalException("cannot decode X509SKI", bde);
+ }
+ } else if (localName.equals("X509CRL") && XMLSignature.XMLNS.equals(namespace)) {
+ content.add(unmarshalX509CRL(childElem));
+ } else {
+ content.add(new javax.xml.crypto.dom.DOMStructure(childElem));
}
- } else if (localName.equals("X509CRL") && XMLSignature.XMLNS.equals(namespace)) {
- content.add(unmarshalX509CRL(childElem));
- } else {
- content.add(new javax.xml.crypto.dom.DOMStructure(childElem));
}
+ firstChild = firstChild.getNextSibling();
}
this.content = Collections.unmodifiableList(content);
}
Modified: santuario/xml-security-java/branches/1.5.x-fixes/src/main/java/org/apache/jcp/xml/dsig/internal/dom/DOMXMLObject.java
URL: http://svn.apache.org/viewvc/santuario/xml-security-java/branches/1.5.x-fixes/src/main/java/org/apache/jcp/xml/dsig/internal/dom/DOMXMLObject.java?rev=1602385&r1=1602384&r2=1602385&view=diff
==============================================================================
--- santuario/xml-security-java/branches/1.5.x-fixes/src/main/java/org/apache/jcp/xml/dsig/internal/dom/DOMXMLObject.java (original)
+++ santuario/xml-security-java/branches/1.5.x-fixes/src/main/java/org/apache/jcp/xml/dsig/internal/dom/DOMXMLObject.java Fri Jun 13 11:32:34 2014
@@ -35,7 +35,6 @@ import org.w3c.dom.Attr;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.w3c.dom.Node;
-import org.w3c.dom.NodeList;
/**
* DOM-based implementation of XMLObject.
@@ -105,28 +104,27 @@ public final class DOMXMLObject extends
}
this.mimeType = DOMUtils.getAttributeValue(objElem, "MimeType");
- NodeList nodes = objElem.getChildNodes();
- int length = nodes.getLength();
- List<XMLStructure> content = new ArrayList<XMLStructure>(length);
- for (int i = 0; i < length; i++) {
- Node child = nodes.item(i);
- if (child.getNodeType() == Node.ELEMENT_NODE) {
- Element childElem = (Element)child;
+ List<XMLStructure> content = new ArrayList<XMLStructure>();
+ Node firstChild = objElem.getFirstChild();
+ while (firstChild != null) {
+ if (firstChild.getNodeType() == Node.ELEMENT_NODE) {
+ Element childElem = (Element)firstChild;
String tag = childElem.getLocalName();
String namespace = childElem.getNamespaceURI();
if (tag.equals("Manifest") && XMLSignature.XMLNS.equals(namespace)) {
content.add(new DOMManifest(childElem, context, provider));
- continue;
} else if (tag.equals("SignatureProperties") && XMLSignature.XMLNS.equals(namespace)) {
content.add(new DOMSignatureProperties(childElem, context));
- continue;
} else if (tag.equals("X509Data") && XMLSignature.XMLNS.equals(namespace)) {
content.add(new DOMX509Data(childElem));
- continue;
+ } else {
+ //@@@FIXME: check for other dsig structures
+ content.add(new javax.xml.crypto.dom.DOMStructure(firstChild));
}
- //@@@FIXME: check for other dsig structures
+ } else {
+ content.add(new javax.xml.crypto.dom.DOMStructure(firstChild));
}
- content.add(new javax.xml.crypto.dom.DOMStructure(child));
+ firstChild = firstChild.getNextSibling();
}
if (content.isEmpty()) {
this.content = Collections.emptyList();
Modified: santuario/xml-security-java/branches/1.5.x-fixes/src/main/java/org/apache/xml/security/keys/KeyInfo.java
URL: http://svn.apache.org/viewvc/santuario/xml-security-java/branches/1.5.x-fixes/src/main/java/org/apache/xml/security/keys/KeyInfo.java?rev=1602385&r1=1602384&r2=1602385&view=diff
==============================================================================
--- santuario/xml-security-java/branches/1.5.x-fixes/src/main/java/org/apache/xml/security/keys/KeyInfo.java (original)
+++ santuario/xml-security-java/branches/1.5.x-fixes/src/main/java/org/apache/xml/security/keys/KeyInfo.java Fri Jun 13 11:32:34 2014
@@ -55,7 +55,6 @@ import org.w3c.dom.Attr;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.w3c.dom.Node;
-import org.w3c.dom.NodeList;
/**
* This class stand for KeyInfo Element that may contain keys, names,
@@ -477,21 +476,19 @@ public class KeyInfo extends SignatureEl
*/
public int lengthUnknownElement() {
int res = 0;
- NodeList nl = this.constructionElement.getChildNodes();
-
- for (int i = 0; i < nl.getLength(); i++) {
- Node current = nl.item(i);
-
+ Node childNode = this.constructionElement.getFirstChild();
+ while (childNode != null) {
/**
* $todo$ using this method, we don't see unknown Elements
* from Signature NS; revisit
*/
- if ((current.getNodeType() == Node.ELEMENT_NODE)
- && current.getNamespaceURI().equals(Constants.SignatureSpecNS)) {
+ if (childNode.getNodeType() == Node.ELEMENT_NODE
+ && childNode.getNamespaceURI().equals(Constants.SignatureSpecNS)) {
res++;
}
+ childNode = childNode.getNextSibling();
}
-
+
return res;
}
@@ -690,24 +687,22 @@ public class KeyInfo extends SignatureEl
* @return the element number of the unknown elements
*/
public Element itemUnknownElement(int i) {
- NodeList nl = this.constructionElement.getChildNodes();
int res = 0;
-
- for (int j = 0; j < nl.getLength(); j++) {
- Node current = nl.item(j);
-
+ Node childNode = this.constructionElement.getFirstChild();
+ while (childNode != null) {
/**
* $todo$ using this method, we don't see unknown Elements
* from Signature NS; revisit
*/
- if ((current.getNodeType() == Node.ELEMENT_NODE)
- && current.getNamespaceURI().equals(Constants.SignatureSpecNS)) {
+ if (childNode.getNodeType() == Node.ELEMENT_NODE
+ && childNode.getNamespaceURI().equals(Constants.SignatureSpecNS)) {
res++;
if (res == i) {
- return (Element) current;
+ return (Element) childNode;
}
}
+ childNode = childNode.getNextSibling();
}
return null;
Modified: santuario/xml-security-java/branches/1.5.x-fixes/src/main/java/org/apache/xml/security/signature/XMLSignature.java
URL: http://svn.apache.org/viewvc/santuario/xml-security-java/branches/1.5.x-fixes/src/main/java/org/apache/xml/security/signature/XMLSignature.java?rev=1602385&r1=1602384&r2=1602385&view=diff
==============================================================================
--- santuario/xml-security-java/branches/1.5.x-fixes/src/main/java/org/apache/xml/security/signature/XMLSignature.java (original)
+++ santuario/xml-security-java/branches/1.5.x-fixes/src/main/java/org/apache/xml/security/signature/XMLSignature.java Fri Jun 13 11:32:34 2014
@@ -48,7 +48,6 @@ import org.w3c.dom.Attr;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.w3c.dom.Node;
-import org.w3c.dom.NodeList;
import org.w3c.dom.Text;
/**
@@ -405,13 +404,11 @@ public final class XMLSignature extends
objectElem.setIdAttributeNode(objectAttr, true);
}
- NodeList nodes = objectElem.getChildNodes();
- int length = nodes.getLength();
+ Node firstChild = objectElem.getFirstChild();
// Register Ids of the Object child elements
- for (int i = 0; i < length; i++) {
- Node child = nodes.item(i);
- if (child.getNodeType() == Node.ELEMENT_NODE) {
- Element childElem = (Element)child;
+ while (firstChild != null) {
+ if (firstChild.getNodeType() == Node.ELEMENT_NODE) {
+ Element childElem = (Element)firstChild;
String tag = childElem.getLocalName();
if (tag.equals("Manifest")) {
new Manifest(childElem, baseURI);
@@ -419,6 +416,7 @@ public final class XMLSignature extends
new SignatureProperties(childElem, baseURI);
}
}
+ firstChild = firstChild.getNextSibling();
}
objectElem = XMLUtils.getNextElement(objectElem.getNextSibling());
Modified: santuario/xml-security-java/branches/1.5.x-fixes/src/main/java/org/apache/xml/security/transforms/implementations/TransformXPath.java
URL: http://svn.apache.org/viewvc/santuario/xml-security-java/branches/1.5.x-fixes/src/main/java/org/apache/xml/security/transforms/implementations/TransformXPath.java?rev=1602385&r1=1602384&r2=1602385&view=diff
==============================================================================
--- santuario/xml-security-java/branches/1.5.x-fixes/src/main/java/org/apache/xml/security/transforms/implementations/TransformXPath.java (original)
+++ santuario/xml-security-java/branches/1.5.x-fixes/src/main/java/org/apache/xml/security/transforms/implementations/TransformXPath.java Fri Jun 13 11:32:34 2014
@@ -92,7 +92,7 @@ public class TransformXPath extends Tran
throw new TransformationException("xml.WrongContent", exArgs);
}
- Node xpathnode = xpathElement.getChildNodes().item(0);
+ Node xpathnode = xpathElement.getFirstChild();
String str = XMLUtils.getStrFromNode(xpathnode);
input.setNeedsToBeExpanded(needsCircumvent(str));
if (xpathnode == null) {
Modified: santuario/xml-security-java/branches/1.5.x-fixes/src/main/java/org/apache/xml/security/transforms/params/XPath2FilterContainer.java
URL: http://svn.apache.org/viewvc/santuario/xml-security-java/branches/1.5.x-fixes/src/main/java/org/apache/xml/security/transforms/params/XPath2FilterContainer.java?rev=1602385&r1=1602384&r2=1602385&view=diff
==============================================================================
--- santuario/xml-security-java/branches/1.5.x-fixes/src/main/java/org/apache/xml/security/transforms/params/XPath2FilterContainer.java (original)
+++ santuario/xml-security-java/branches/1.5.x-fixes/src/main/java/org/apache/xml/security/transforms/params/XPath2FilterContainer.java Fri Jun 13 11:32:34 2014
@@ -255,14 +255,12 @@ public class XPath2FilterContainer exten
* @return the first Text node which contains information from the XPath 2 Filter String
*/
public Node getXPathFilterTextNode() {
-
- NodeList children = this.constructionElement.getChildNodes();
- int length = children.getLength();
-
- for (int i = 0; i < length; i++) {
- if (children.item(i).getNodeType() == Node.TEXT_NODE) {
- return children.item(i);
+ Node childNode = this.constructionElement.getFirstChild();
+ while (childNode != null) {
+ if (childNode.getNodeType() == Node.TEXT_NODE) {
+ return childNode;
}
+ childNode = childNode.getNextSibling();
}
return null;
Modified: santuario/xml-security-java/branches/1.5.x-fixes/src/main/java/org/apache/xml/security/transforms/params/XPath2FilterContainer04.java
URL: http://svn.apache.org/viewvc/santuario/xml-security-java/branches/1.5.x-fixes/src/main/java/org/apache/xml/security/transforms/params/XPath2FilterContainer04.java?rev=1602385&r1=1602384&r2=1602385&view=diff
==============================================================================
--- santuario/xml-security-java/branches/1.5.x-fixes/src/main/java/org/apache/xml/security/transforms/params/XPath2FilterContainer04.java (original)
+++ santuario/xml-security-java/branches/1.5.x-fixes/src/main/java/org/apache/xml/security/transforms/params/XPath2FilterContainer04.java Fri Jun 13 11:32:34 2014
@@ -25,7 +25,6 @@ import org.apache.xml.security.utils.XML
import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.w3c.dom.Node;
-import org.w3c.dom.NodeList;
/**
* Implements the parameters for the <A
@@ -224,13 +223,12 @@ public class XPath2FilterContainer04 ext
* @return the first Text node which contains information from the XPath 2 Filter String
*/
public Node getXPathFilterTextNode() {
- NodeList children = this.constructionElement.getChildNodes();
- int length = children.getLength();
-
- for (int i = 0; i < length; i++) {
- if (children.item(i).getNodeType() == Node.TEXT_NODE) {
- return children.item(i);
+ Node childNode = this.constructionElement.getFirstChild();
+ while (childNode != null) {
+ if (childNode.getNodeType() == Node.TEXT_NODE) {
+ return childNode;
}
+ childNode = childNode.getNextSibling();
}
return null;
Modified: santuario/xml-security-java/branches/1.5.x-fixes/src/main/java/org/apache/xml/security/transforms/params/XPathContainer.java
URL: http://svn.apache.org/viewvc/santuario/xml-security-java/branches/1.5.x-fixes/src/main/java/org/apache/xml/security/transforms/params/XPathContainer.java?rev=1602385&r1=1602384&r2=1602385&view=diff
==============================================================================
--- santuario/xml-security-java/branches/1.5.x-fixes/src/main/java/org/apache/xml/security/transforms/params/XPathContainer.java (original)
+++ santuario/xml-security-java/branches/1.5.x-fixes/src/main/java/org/apache/xml/security/transforms/params/XPathContainer.java Fri Jun 13 11:32:34 2014
@@ -23,7 +23,7 @@ import org.apache.xml.security.transform
import org.apache.xml.security.utils.Constants;
import org.apache.xml.security.utils.SignatureElementProxy;
import org.w3c.dom.Document;
-import org.w3c.dom.NodeList;
+import org.w3c.dom.Node;
import org.w3c.dom.Text;
/**
@@ -50,12 +50,11 @@ public class XPathContainer extends Sign
* @param xpath
*/
public void setXPath(String xpath) {
- if (this.constructionElement.getChildNodes() != null) {
- NodeList nl = this.constructionElement.getChildNodes();
-
- for (int i = 0; i < nl.getLength(); i++) {
- this.constructionElement.removeChild(nl.item(i));
- }
+ Node childNode = this.constructionElement.getFirstChild();
+ while (childNode != null) {
+ Node nodeToBeRemoved = childNode;
+ childNode = childNode.getNextSibling();
+ this.constructionElement.removeChild(nodeToBeRemoved);
}
Text xpathText = this.doc.createTextNode(xpath);
Modified: santuario/xml-security-java/branches/1.5.x-fixes/src/test/java/org/apache/xml/security/test/signature/InvalidKeyTest.java
URL: http://svn.apache.org/viewvc/santuario/xml-security-java/branches/1.5.x-fixes/src/test/java/org/apache/xml/security/test/signature/InvalidKeyTest.java?rev=1602385&r1=1602384&r2=1602385&view=diff
==============================================================================
--- santuario/xml-security-java/branches/1.5.x-fixes/src/test/java/org/apache/xml/security/test/signature/InvalidKeyTest.java (original)
+++ santuario/xml-security-java/branches/1.5.x-fixes/src/test/java/org/apache/xml/security/test/signature/InvalidKeyTest.java Fri Jun 13 11:32:34 2014
@@ -77,10 +77,9 @@ public class InvalidKeyTest extends org.
((Element)assertion).setIdAttributeNode(attr, true);
}
- NodeList nl = assertion.getChildNodes();
- Element n = (Element)nl.item(nl.getLength()-1);
+ Element n = (Element)assertion.getLastChild();
- XMLSignature si = new XMLSignature((Element)n,"");
+ XMLSignature si = new XMLSignature(n, "");
si.checkSignatureValue(pk);
// System.out.println("VALIDATION OK" );