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 2019/01/25 12:31:39 UTC
svn commit: r1852121 - in
/santuario/xml-security-java/branches/2.1.x-fixes/src:
main/java/org/apache/xml/security/transforms/implementations/
test/java/org/apache/xml/security/test/dom/signature/
test/resources/org/apache/xml/security/test/ test/resou...
Author: coheigea
Date: Fri Jan 25 12:31:39 2019
New Revision: 1852121
URL: http://svn.apache.org/viewvc?rev=1852121&view=rev
Log:
SANTUARIO-499 - TransformXSLT doesn't support xslt:transform synonym
Added:
santuario/xml-security-java/branches/2.1.x-fixes/src/test/java/org/apache/xml/security/test/dom/signature/Santuario499Test.java
santuario/xml-security-java/branches/2.1.x-fixes/src/test/resources/org/apache/xml/security/test/
santuario/xml-security-java/branches/2.1.x-fixes/src/test/resources/org/apache/xml/security/test/dom/
santuario/xml-security-java/branches/2.1.x-fixes/src/test/resources/org/apache/xml/security/test/dom/signature/
santuario/xml-security-java/branches/2.1.x-fixes/src/test/resources/org/apache/xml/security/test/dom/signature/Arbeidstijd_anonymous.xml
Modified:
santuario/xml-security-java/branches/2.1.x-fixes/src/main/java/org/apache/xml/security/transforms/implementations/TransformXSLT.java
Modified: santuario/xml-security-java/branches/2.1.x-fixes/src/main/java/org/apache/xml/security/transforms/implementations/TransformXSLT.java
URL: http://svn.apache.org/viewvc/santuario/xml-security-java/branches/2.1.x-fixes/src/main/java/org/apache/xml/security/transforms/implementations/TransformXSLT.java?rev=1852121&r1=1852120&r2=1852121&view=diff
==============================================================================
--- santuario/xml-security-java/branches/2.1.x-fixes/src/main/java/org/apache/xml/security/transforms/implementations/TransformXSLT.java (original)
+++ santuario/xml-security-java/branches/2.1.x-fixes/src/main/java/org/apache/xml/security/transforms/implementations/TransformXSLT.java Fri Jan 25 12:31:39 2019
@@ -80,7 +80,10 @@ public class TransformXSLT extends Trans
Element xsltElement =
XMLUtils.selectNode(transformElement.getFirstChild(), XSLTSpecNS, "stylesheet", 0);
-
+ if (xsltElement == null) {
+ xsltElement =
+ XMLUtils.selectNode(transformElement.getFirstChild(), XSLTSpecNS, "transform", 0);
+ }
if (xsltElement == null) {
Object exArgs[] = { "xslt:stylesheet", "Transform" };
Added: santuario/xml-security-java/branches/2.1.x-fixes/src/test/java/org/apache/xml/security/test/dom/signature/Santuario499Test.java
URL: http://svn.apache.org/viewvc/santuario/xml-security-java/branches/2.1.x-fixes/src/test/java/org/apache/xml/security/test/dom/signature/Santuario499Test.java?rev=1852121&view=auto
==============================================================================
--- santuario/xml-security-java/branches/2.1.x-fixes/src/test/java/org/apache/xml/security/test/dom/signature/Santuario499Test.java (added)
+++ santuario/xml-security-java/branches/2.1.x-fixes/src/test/java/org/apache/xml/security/test/dom/signature/Santuario499Test.java Fri Jan 25 12:31:39 2019
@@ -0,0 +1,75 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.xml.security.test.dom.signature;
+
+import java.net.URL;
+
+import javax.xml.xpath.XPath;
+import javax.xml.xpath.XPathConstants;
+import javax.xml.xpath.XPathFactory;
+
+import org.apache.xml.security.Init;
+import org.apache.xml.security.signature.XMLSignature;
+import org.apache.xml.security.test.dom.DSNamespaceContext;
+import org.apache.xml.security.utils.XMLUtils;
+import org.w3c.dom.Document;
+import org.w3c.dom.Element;
+import org.w3c.dom.NodeList;
+
+import static org.junit.Assert.assertNotNull;
+
+/**
+ * A test for SANTUARIO-499 - https://issues.apache.org/jira/browse/SANTUARIO-499
+ * TransformXSLT doesn't support xslt:transform synonym
+ */
+public class Santuario499Test {
+
+ static org.slf4j.Logger LOG =
+ org.slf4j.LoggerFactory.getLogger(Santuario499Test.class);
+
+ static {
+ Init.init();
+ }
+
+ @org.junit.Test
+ public void testXSLTTransform() throws Exception {
+
+ URL signatureFile = this.getClass().getResource("Arbeidstijd_anonymous.xml");
+ assertNotNull(signatureFile);
+
+ Document doc = XMLUtils.read(signatureFile.openStream(), false);
+
+ XPathFactory xpf = XPathFactory.newInstance();
+ XPath xpath = xpf.newXPath();
+ xpath.setNamespaceContext(new DSNamespaceContext());
+
+ String expression = "//ds:Signature[1]";
+ Element sigElement =
+ (Element) xpath.evaluate(expression, doc, XPathConstants.NODE);
+
+ NodeList mainNode = doc.getElementsByTagName("Arbeidstijden");
+ Element ritAdministratieElement = (Element) mainNode.item(0);
+ ritAdministratieElement.setIdAttributeNS(null, "Id", true);
+
+ XMLSignature signature = new XMLSignature(sigElement, "", false);
+ // Note that the Signature is not valid so we won't check that
+ signature.checkSignatureValue(signature.getKeyInfo().getPublicKey());
+ }
+
+}
\ No newline at end of file
Added: santuario/xml-security-java/branches/2.1.x-fixes/src/test/resources/org/apache/xml/security/test/dom/signature/Arbeidstijd_anonymous.xml
URL: http://svn.apache.org/viewvc/santuario/xml-security-java/branches/2.1.x-fixes/src/test/resources/org/apache/xml/security/test/dom/signature/Arbeidstijd_anonymous.xml?rev=1852121&view=auto
==============================================================================
--- santuario/xml-security-java/branches/2.1.x-fixes/src/test/resources/org/apache/xml/security/test/dom/signature/Arbeidstijd_anonymous.xml (added)
+++ santuario/xml-security-java/branches/2.1.x-fixes/src/test/resources/org/apache/xml/security/test/dom/signature/Arbeidstijd_anonymous.xml Fri Jan 25 12:31:39 2019
@@ -0,0 +1 @@
+<?xml version="1.0" encoding="UTF-8"?><Envelope xmlns="urn:envelope"><Arbeidstijden xmlns="http://www.arbeidstijden.org" Id="idGegevenslevering"><DatTdSmBr>2018-03-29T12:41:57.000Z</DatTdSmBr><KortIdBCT><GdKrgsNr>NL*10/11225*15/9656*0001*06</GdKrgsNr><ProgVrNr>1.5.05</ProgVrNr></KortIdBCT><Periode><DatTdBegPr>2017-02-15T23:00:00.000Z</DatTdBegPr><DatTdEndPr>2017-02-16T23:00:59.000Z</DatTdEndPr></Periode><Auto><Kntkn>AB12CD</Kntkn></Auto><Vervoerder><KvKnr>123234345000</KvKnr><Pnr>12334</Pnr><Ondernemerskaart><OkVgNr>00001</OkVgNr><Bestuurder><ChIdNr>123456789</ChIdNr><CkVgNr>00003</CkVgNr><Certificaat><CertificaatChauffeur><PubliekeSleutel codering="base64">bm90aGluZyB0byBzZWUgaGVyZS4gTW92ZSBhbG9uZy4=</PubliekeSleutel></CertificaatChauffeur></Certificaat></Bestuurder></Ondernemerskaart></Vervoerder></Arbeidstijden><Signature xmlns="http://www.w3.org/2000/09/xmldsig#"><SignedInfo xmlns="http://www.w3.org/2000/09/xmldsig#"><CanonicalizationMethod Algorithm="http://www.w3.org/2001/10/x
ml-exc-c14n#"></CanonicalizationMethod><SignatureMethod Algorithm="http://www.w3.org/2001/04/xmldsig-more#rsa-sha256"></SignatureMethod><Reference URI="#idGegevenslevering"><Transforms><Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"></Transform><Transform Algorithm="http://www.w3.org/TR/1999/REC-xslt-19991116"><xsl:transform xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0"><xsl:output encoding="UTF-8" indent="no" method="xml" omit-xml-declaration="yes" standalone="yes" version="1.0"></xsl:output><xsl:template match="@*|*"><xsl:copy><xsl:apply-templates select="@*|*"></xsl:apply-templates><xsl:apply-templates select="text()"></xsl:apply-templates></xsl:copy></xsl:template><xsl:template match="text()"><xsl:choose><xsl:when test="../@codering = 'base64'"><xsl:value-of select="translate(normalize-space(.), ' ', '')"></xsl:value-of></xsl:when><xsl:otherwise><xsl:value-of select="normalize-space(.)"></xsl:value-of></xsl:otherwise></xsl:choose></xsl:template></
xsl:transform></Transform></Transforms><DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"></DigestMethod><DigestValue>HUReBQZh58aVFULhObvE5zNJamYqNg6ngQMYnvZuqAk=</DigestValue></Reference><Reference URI="#idKeyInfo"><Transforms><Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"></Transform><Transform Algorithm="http://www.w3.org/TR/1999/REC-xslt-19991116"><xsl:transform xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0"><xsl:output encoding="UTF-8" indent="no" method="xml" omit-xml-declaration="yes" standalone="yes" version="1.0"></xsl:output><xsl:template match="@*|*"><xsl:copy><xsl:apply-templates select="@*|*"></xsl:apply-templates><xsl:apply-templates select="text()"></xsl:apply-templates></xsl:copy></xsl:template><xsl:template match="text()"><xsl:choose><xsl:when test="local-name(parent::*) = 'X509Certificate'"><xsl:value-of select="translate(normalize-space(.), ' ', '')"></xsl:value-of></xsl:when><xsl:otherwise><xsl:value-of select="norma
lize-space(.)"></xsl:value-of></xsl:otherwise></xsl:choose></xsl:template></xsl:transform></Transform></Transforms><DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"></DigestMethod><DigestValue>FixK1mBDz6V/OvDLVjiJwAoP+fv+HuZvdbKXjij73xQ=</DigestValue></Reference></SignedInfo><SignatureValue>FY3h9u+VJK5/m46J0aha3uBlb0brG0rhKaCWq4mZgaxmeSzFB+C0auVhnM/0jOLWTvaLcU5/EUaQOCSv1kggi/C/WzIO086QvXuvid9bWOJD5VoA+rDoHllVPTL4rPUFqwt0WEq0tvc/x6LiuYmgB4QIQpyUgDBDp6HhYJxhCaAv2typcn6JVTz2Hfd3XD347FTbW+PPWxZA3XpTiOsb8q37R1rwqZp43iFIQm0CZdSO2Qz2LvztoFgI5sxiCpV9KZc+XnZPSKyRbkghcLPHSco9A2plVzt2UYopkpO+Quxaf/uhUh6cmhPy4DAaQHe+yQxtIoR9ZpOAENVInzx6qw==</SignatureValue><KeyInfo xmlns="http://www.w3.org/2000/09/xmldsig#" Id="idKeyInfo"><X509Data><X509Certificate>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</X509Certificate></X509Data></KeyInfo></Signature></Envelope>