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 2015/12/21 12:02:58 UTC
svn commit: r1721123 - in /santuario/xml-security-java/trunk/src:
main/java/org/apache/xml/security/stax/ext/
main/java/org/apache/xml/security/stax/impl/processor/input/
main/java/org/apache/xml/security/stax/impl/processor/output/
main/java/org/apach...
Author: coheigea
Date: Mon Dec 21 11:02:57 2015
New Revision: 1721123
URL: http://svn.apache.org/viewvc?rev=1721123&view=rev
Log:
Fix for SANTUARIO-407: Add configuration option to specify the id of the document to sign (similar to DOMSignContext.setIdAttributeNS)
Added:
santuario/xml-security-java/trunk/src/test/resources/org/apache/xml/security/testcases/SAML2ArtifactResponseUnsigned.xml (with props)
Modified:
santuario/xml-security-java/trunk/src/main/java/org/apache/xml/security/stax/ext/AbstractInputProcessor.java
santuario/xml-security-java/trunk/src/main/java/org/apache/xml/security/stax/ext/AbstractOutputProcessor.java
santuario/xml-security-java/trunk/src/main/java/org/apache/xml/security/stax/ext/ResourceResolver.java
santuario/xml-security-java/trunk/src/main/java/org/apache/xml/security/stax/ext/XMLSecurityProperties.java
santuario/xml-security-java/trunk/src/main/java/org/apache/xml/security/stax/impl/processor/input/AbstractSignatureReferenceVerifyInputProcessor.java
santuario/xml-security-java/trunk/src/main/java/org/apache/xml/security/stax/impl/processor/output/XMLSignatureOutputProcessor.java
santuario/xml-security-java/trunk/src/main/java/org/apache/xml/security/stax/impl/resourceResolvers/ResolverFilesystem.java
santuario/xml-security-java/trunk/src/main/java/org/apache/xml/security/stax/impl/resourceResolvers/ResolverHttp.java
santuario/xml-security-java/trunk/src/main/java/org/apache/xml/security/stax/impl/resourceResolvers/ResolverSameDocument.java
santuario/xml-security-java/trunk/src/main/java/org/apache/xml/security/stax/impl/resourceResolvers/ResolverXPointer.java
santuario/xml-security-java/trunk/src/test/java/org/apache/xml/security/test/stax/signature/AbstractSignatureCreationTest.java
santuario/xml-security-java/trunk/src/test/java/org/apache/xml/security/test/stax/signature/SignatureCreationTest.java
Modified: santuario/xml-security-java/trunk/src/main/java/org/apache/xml/security/stax/ext/AbstractInputProcessor.java
URL: http://svn.apache.org/viewvc/santuario/xml-security-java/trunk/src/main/java/org/apache/xml/security/stax/ext/AbstractInputProcessor.java?rev=1721123&r1=1721122&r2=1721123&view=diff
==============================================================================
--- santuario/xml-security-java/trunk/src/main/java/org/apache/xml/security/stax/ext/AbstractInputProcessor.java (original)
+++ santuario/xml-security-java/trunk/src/main/java/org/apache/xml/security/stax/ext/AbstractInputProcessor.java Mon Dec 21 11:02:57 2015
@@ -99,6 +99,6 @@ public abstract class AbstractInputProce
}
public Attribute getReferenceIDAttribute(XMLSecStartElement xmlSecStartElement) {
- return xmlSecStartElement.getAttributeByName(XMLSecurityConstants.ATT_NULL_Id);
+ return xmlSecStartElement.getAttributeByName(securityProperties.getIdAttributeNS());
}
}
Modified: santuario/xml-security-java/trunk/src/main/java/org/apache/xml/security/stax/ext/AbstractOutputProcessor.java
URL: http://svn.apache.org/viewvc/santuario/xml-security-java/trunk/src/main/java/org/apache/xml/security/stax/ext/AbstractOutputProcessor.java?rev=1721123&r1=1721122&r2=1721123&view=diff
==============================================================================
--- santuario/xml-security-java/trunk/src/main/java/org/apache/xml/security/stax/ext/AbstractOutputProcessor.java (original)
+++ santuario/xml-security-java/trunk/src/main/java/org/apache/xml/security/stax/ext/AbstractOutputProcessor.java Mon Dec 21 11:02:57 2015
@@ -252,7 +252,7 @@ public abstract class AbstractOutputProc
if (secureParts != null) {
securePart = secureParts.get(xmlSecStartElement.getName());
if (securePart == null) {
- Attribute attribute = xmlSecStartElement.getAttributeByName(XMLSecurityConstants.ATT_NULL_Id);
+ Attribute attribute = xmlSecStartElement.getAttributeByName(securityProperties.getIdAttributeNS());
if (attribute != null) {
securePart = secureParts.get(attribute.getValue());
}
Modified: santuario/xml-security-java/trunk/src/main/java/org/apache/xml/security/stax/ext/ResourceResolver.java
URL: http://svn.apache.org/viewvc/santuario/xml-security-java/trunk/src/main/java/org/apache/xml/security/stax/ext/ResourceResolver.java?rev=1721123&r1=1721122&r2=1721123&view=diff
==============================================================================
--- santuario/xml-security-java/trunk/src/main/java/org/apache/xml/security/stax/ext/ResourceResolver.java (original)
+++ santuario/xml-security-java/trunk/src/main/java/org/apache/xml/security/stax/ext/ResourceResolver.java Mon Dec 21 11:02:57 2015
@@ -23,6 +23,8 @@ import org.apache.xml.security.stax.ext.
import java.io.InputStream;
+import javax.xml.namespace.QName;
+
/**
* @author $Author$
* @version $Revision$ $Date$
@@ -31,7 +33,7 @@ public interface ResourceResolver {
boolean isSameDocumentReference();
- boolean matches(XMLSecStartElement xmlSecStartElement);
+ boolean matches(XMLSecStartElement xmlSecStartElement, QName idAttributeNS);
InputStream getInputStreamFromExternalReference() throws XMLSecurityException;
}
Modified: santuario/xml-security-java/trunk/src/main/java/org/apache/xml/security/stax/ext/XMLSecurityProperties.java
URL: http://svn.apache.org/viewvc/santuario/xml-security-java/trunk/src/main/java/org/apache/xml/security/stax/ext/XMLSecurityProperties.java?rev=1721123&r1=1721122&r2=1721123&view=diff
==============================================================================
--- santuario/xml-security-java/trunk/src/main/java/org/apache/xml/security/stax/ext/XMLSecurityProperties.java (original)
+++ santuario/xml-security-java/trunk/src/main/java/org/apache/xml/security/stax/ext/XMLSecurityProperties.java Mon Dec 21 11:02:57 2015
@@ -26,6 +26,8 @@ import java.util.ArrayList;
import java.util.LinkedList;
import java.util.List;
+import javax.xml.namespace.QName;
+
/**
* Main configuration class to supply keys etc.
@@ -69,6 +71,8 @@ public class XMLSecurityProperties {
private int signaturePosition = 0;
+ private QName idAttributeNS = XMLSecurityConstants.ATT_NULL_Id;
+
public XMLSecurityProperties() {
}
@@ -99,6 +103,7 @@ public class XMLSecurityProperties {
this.useSingleCert = xmlSecurityProperties.useSingleCert;
this.signatureVerificationKey = xmlSecurityProperties.signatureVerificationKey;
this.signaturePosition = xmlSecurityProperties.signaturePosition;
+ this.idAttributeNS = xmlSecurityProperties.idAttributeNS;
}
public SecurityTokenConstants.KeyIdentifier getSignatureKeyIdentifier() {
@@ -128,7 +133,25 @@ public class XMLSecurityProperties {
this.signaturePosition = signaturePosition;
}
+ /**
+ * Return the qualified name of the ID attribute used to sign the document.
+ * By default, ID is used.
+ *
+ * @return the qualified name of the ID attribute
+ */
+ public QName getIdAttributeNS() {
+ return idAttributeNS;
+ }
+
/**
+ * Sets the qualified name of the ID attribute used to sign the document.
+ * @param idAttributeNS Qualified Name of the ID attribute to use
+ */
+ public void setIdAttributeNS(QName idAttributeNS) {
+ this.idAttributeNS = idAttributeNS;
+ }
+
+ /**
* returns the KeyIdentifierType which will be used in the secured document
*
* @return The KeyIdentifierType
Modified: santuario/xml-security-java/trunk/src/main/java/org/apache/xml/security/stax/impl/processor/input/AbstractSignatureReferenceVerifyInputProcessor.java
URL: http://svn.apache.org/viewvc/santuario/xml-security-java/trunk/src/main/java/org/apache/xml/security/stax/impl/processor/input/AbstractSignatureReferenceVerifyInputProcessor.java?rev=1721123&r1=1721122&r2=1721123&view=diff
==============================================================================
--- santuario/xml-security-java/trunk/src/main/java/org/apache/xml/security/stax/impl/processor/input/AbstractSignatureReferenceVerifyInputProcessor.java (original)
+++ santuario/xml-security-java/trunk/src/main/java/org/apache/xml/security/stax/impl/processor/input/AbstractSignatureReferenceVerifyInputProcessor.java Mon Dec 21 11:02:57 2015
@@ -187,7 +187,7 @@ public abstract class AbstractSignatureR
List<ReferenceType> referenceTypes = Collections.emptyList();
for (int i = 0; i < sameDocumentReferences.size(); i++) {
KeyValue<ResourceResolver, ReferenceType> keyValue = sameDocumentReferences.get(i);
- if (keyValue.getKey().matches(xmlSecStartElement)) {
+ if (keyValue.getKey().matches(xmlSecStartElement, getSecurityProperties().getIdAttributeNS())) {
if (referenceTypes == Collections.<ReferenceType>emptyList()) {
referenceTypes = new ArrayList<ReferenceType>();
}
Modified: santuario/xml-security-java/trunk/src/main/java/org/apache/xml/security/stax/impl/processor/output/XMLSignatureOutputProcessor.java
URL: http://svn.apache.org/viewvc/santuario/xml-security-java/trunk/src/main/java/org/apache/xml/security/stax/impl/processor/output/XMLSignatureOutputProcessor.java?rev=1721123&r1=1721122&r2=1721123&view=diff
==============================================================================
--- santuario/xml-security-java/trunk/src/main/java/org/apache/xml/security/stax/impl/processor/output/XMLSignatureOutputProcessor.java (original)
+++ santuario/xml-security-java/trunk/src/main/java/org/apache/xml/security/stax/impl/processor/output/XMLSignatureOutputProcessor.java Mon Dec 21 11:02:57 2015
@@ -86,12 +86,12 @@ public class XMLSignatureOutputProcessor
signaturePartDef.setGenerateXPointer(securePart.isGenerateXPointer());
signaturePartDef.setSigRefId(IDGenerator.generateID(null));
- Attribute attribute = xmlSecStartElement.getAttributeByName(XMLSecurityConstants.ATT_NULL_Id);
+ Attribute attribute = xmlSecStartElement.getAttributeByName(securityProperties.getIdAttributeNS());
if (attribute != null) {
signaturePartDef.setSigRefId(attribute.getValue());
} else {
List<XMLSecAttribute> attributeList = new ArrayList<XMLSecAttribute>(1);
- attributeList.add(createAttribute(XMLSecurityConstants.ATT_NULL_Id, signaturePartDef.getSigRefId()));
+ attributeList.add(createAttribute(securityProperties.getIdAttributeNS(), signaturePartDef.getSigRefId()));
xmlSecEvent = addAttributes(xmlSecStartElement, attributeList);
}
} else {
Modified: santuario/xml-security-java/trunk/src/main/java/org/apache/xml/security/stax/impl/resourceResolvers/ResolverFilesystem.java
URL: http://svn.apache.org/viewvc/santuario/xml-security-java/trunk/src/main/java/org/apache/xml/security/stax/impl/resourceResolvers/ResolverFilesystem.java?rev=1721123&r1=1721122&r2=1721123&view=diff
==============================================================================
--- santuario/xml-security-java/trunk/src/main/java/org/apache/xml/security/stax/impl/resourceResolvers/ResolverFilesystem.java (original)
+++ santuario/xml-security-java/trunk/src/main/java/org/apache/xml/security/stax/impl/resourceResolvers/ResolverFilesystem.java Mon Dec 21 11:02:57 2015
@@ -26,6 +26,8 @@ import org.apache.xml.security.stax.ext.
import java.io.InputStream;
import java.net.URI;
+import javax.xml.namespace.QName;
+
/**
* Resolver for local filesystem resources. Use the standard java security-manager to
* restrict filesystem accesses.
@@ -68,7 +70,7 @@ public class ResolverFilesystem implemen
}
@Override
- public boolean matches(XMLSecStartElement xmlSecStartElement) {
+ public boolean matches(XMLSecStartElement xmlSecStartElement, QName idAttributeNS) {
return false;
}
Modified: santuario/xml-security-java/trunk/src/main/java/org/apache/xml/security/stax/impl/resourceResolvers/ResolverHttp.java
URL: http://svn.apache.org/viewvc/santuario/xml-security-java/trunk/src/main/java/org/apache/xml/security/stax/impl/resourceResolvers/ResolverHttp.java?rev=1721123&r1=1721122&r2=1721123&view=diff
==============================================================================
--- santuario/xml-security-java/trunk/src/main/java/org/apache/xml/security/stax/impl/resourceResolvers/ResolverHttp.java (original)
+++ santuario/xml-security-java/trunk/src/main/java/org/apache/xml/security/stax/impl/resourceResolvers/ResolverHttp.java Mon Dec 21 11:02:57 2015
@@ -28,6 +28,8 @@ import java.io.InputStream;
import java.net.*;
import java.util.regex.Pattern;
+import javax.xml.namespace.QName;
+
/**
* Resolver for external http[s] resources.
*
@@ -76,7 +78,7 @@ public class ResolverHttp implements Res
}
@Override
- public boolean matches(XMLSecStartElement xmlSecStartElement) {
+ public boolean matches(XMLSecStartElement xmlSecStartElement, QName idAttributeNS) {
return false;
}
Modified: santuario/xml-security-java/trunk/src/main/java/org/apache/xml/security/stax/impl/resourceResolvers/ResolverSameDocument.java
URL: http://svn.apache.org/viewvc/santuario/xml-security-java/trunk/src/main/java/org/apache/xml/security/stax/impl/resourceResolvers/ResolverSameDocument.java?rev=1721123&r1=1721122&r2=1721123&view=diff
==============================================================================
--- santuario/xml-security-java/trunk/src/main/java/org/apache/xml/security/stax/impl/resourceResolvers/ResolverSameDocument.java (original)
+++ santuario/xml-security-java/trunk/src/main/java/org/apache/xml/security/stax/impl/resourceResolvers/ResolverSameDocument.java Mon Dec 21 11:02:57 2015
@@ -22,6 +22,7 @@ import org.apache.xml.security.exception
import org.apache.xml.security.stax.ext.*;
import org.apache.xml.security.stax.ext.stax.XMLSecStartElement;
+import javax.xml.namespace.QName;
import javax.xml.stream.events.Attribute;
import java.io.InputStream;
@@ -69,7 +70,7 @@ public class ResolverSameDocument implem
}
@Override
- public boolean matches(XMLSecStartElement xmlSecStartElement) {
+ public boolean matches(XMLSecStartElement xmlSecStartElement, QName idAttributeNS) {
if (id.isEmpty()) {
if (firstElementOccured) {
return false;
@@ -77,7 +78,7 @@ public class ResolverSameDocument implem
firstElementOccured = true;
return true;
} else {
- Attribute attribute = xmlSecStartElement.getAttributeByName(XMLSecurityConstants.ATT_NULL_Id);
+ Attribute attribute = xmlSecStartElement.getAttributeByName(idAttributeNS);
if (attribute != null && attribute.getValue().equals(id)) {
return true;
}
Modified: santuario/xml-security-java/trunk/src/main/java/org/apache/xml/security/stax/impl/resourceResolvers/ResolverXPointer.java
URL: http://svn.apache.org/viewvc/santuario/xml-security-java/trunk/src/main/java/org/apache/xml/security/stax/impl/resourceResolvers/ResolverXPointer.java?rev=1721123&r1=1721122&r2=1721123&view=diff
==============================================================================
--- santuario/xml-security-java/trunk/src/main/java/org/apache/xml/security/stax/impl/resourceResolvers/ResolverXPointer.java (original)
+++ santuario/xml-security-java/trunk/src/main/java/org/apache/xml/security/stax/impl/resourceResolvers/ResolverXPointer.java Mon Dec 21 11:02:57 2015
@@ -21,9 +21,9 @@ package org.apache.xml.security.stax.imp
import org.apache.xml.security.exceptions.XMLSecurityException;
import org.apache.xml.security.stax.ext.ResourceResolver;
import org.apache.xml.security.stax.ext.ResourceResolverLookup;
-import org.apache.xml.security.stax.ext.XMLSecurityConstants;
import org.apache.xml.security.stax.ext.stax.XMLSecStartElement;
+import javax.xml.namespace.QName;
import javax.xml.stream.events.Attribute;
import java.io.InputStream;
import java.util.regex.Matcher;
@@ -92,7 +92,7 @@ public class ResolverXPointer implements
}
@Override
- public boolean matches(XMLSecStartElement xmlSecStartElement) {
+ public boolean matches(XMLSecStartElement xmlSecStartElement, QName idAttributeNS) {
//when id is null we have #xpointer(/) and then we just return true for the first start-element
if (id == null) {
if (!rootNodeOccured) {
@@ -102,7 +102,7 @@ public class ResolverXPointer implements
return false;
}
//case #xpointer(id('ID')):
- Attribute attribute = xmlSecStartElement.getAttributeByName(XMLSecurityConstants.ATT_NULL_Id);
+ Attribute attribute = xmlSecStartElement.getAttributeByName(idAttributeNS);
if (attribute != null && attribute.getValue().equals(id)) {
return true;
}
Modified: santuario/xml-security-java/trunk/src/test/java/org/apache/xml/security/test/stax/signature/AbstractSignatureCreationTest.java
URL: http://svn.apache.org/viewvc/santuario/xml-security-java/trunk/src/test/java/org/apache/xml/security/test/stax/signature/AbstractSignatureCreationTest.java?rev=1721123&r1=1721122&r2=1721123&view=diff
==============================================================================
--- santuario/xml-security-java/trunk/src/test/java/org/apache/xml/security/test/stax/signature/AbstractSignatureCreationTest.java (original)
+++ santuario/xml-security-java/trunk/src/test/java/org/apache/xml/security/test/stax/signature/AbstractSignatureCreationTest.java Mon Dec 21 11:02:57 2015
@@ -73,7 +73,7 @@ public class AbstractSignatureCreationTe
) throws Exception {
verifyUsingDOM(document, cert, secureParts, null);
}
-
+
/**
* Verify the document using DOM
*/
@@ -83,9 +83,9 @@ public class AbstractSignatureCreationTe
List<SecurePart> secureParts,
ResourceResolverSpi resourceResolverSpi
) throws Exception {
- verifyUsingDOM(document, cert, secureParts, resourceResolverSpi, true);
+ verifyUsingDOM(document, cert, secureParts, resourceResolverSpi, true, "Id");
}
-
+
/**
* Verify the document using DOM
*/
@@ -94,7 +94,8 @@ public class AbstractSignatureCreationTe
X509Certificate cert,
List<SecurePart> secureParts,
ResourceResolverSpi resourceResolverSpi,
- boolean keyInfoRequired
+ boolean keyInfoRequired,
+ String idAttributeNS
) throws Exception {
XPathFactory xpf = XPathFactory.newInstance();
XPath xpath = xpf.newXPath();
@@ -113,7 +114,7 @@ public class AbstractSignatureCreationTe
Element signedElement =
(Element) xpath.evaluate(expression, document, XPathConstants.NODE);
Assert.assertNotNull(signedElement);
- signedElement.setIdAttributeNS(null, "Id", true);
+ signedElement.setIdAttributeNS(null, idAttributeNS, true);
}
XMLSignature signature = new XMLSignature(sigElement, "");
Modified: santuario/xml-security-java/trunk/src/test/java/org/apache/xml/security/test/stax/signature/SignatureCreationTest.java
URL: http://svn.apache.org/viewvc/santuario/xml-security-java/trunk/src/test/java/org/apache/xml/security/test/stax/signature/SignatureCreationTest.java?rev=1721123&r1=1721122&r2=1721123&view=diff
==============================================================================
--- santuario/xml-security-java/trunk/src/test/java/org/apache/xml/security/test/stax/signature/SignatureCreationTest.java (original)
+++ santuario/xml-security-java/trunk/src/test/java/org/apache/xml/security/test/stax/signature/SignatureCreationTest.java Mon Dec 21 11:02:57 2015
@@ -357,6 +357,61 @@ public class SignatureCreationTest exten
}
@Test
+ public void testIdAttributeNS() throws Exception {
+ // Set up the Configuration
+ XMLSecurityProperties properties = new XMLSecurityProperties();
+ List<XMLSecurityConstants.Action> actions = new ArrayList<XMLSecurityConstants.Action>();
+ actions.add(XMLSecurityConstants.SIGNATURE);
+ properties.setActions(actions);
+
+ // Specify the signature position
+ properties.setIdAttributeNS(new QName(null, "ID"));
+
+ // Set the key up
+ KeyStore keyStore = KeyStore.getInstance("jks");
+ keyStore.load(
+ this.getClass().getClassLoader().getResource("transmitter.jks").openStream(),
+ "default".toCharArray()
+ );
+ Key key = keyStore.getKey("transmitter", "default".toCharArray());
+ properties.setSignatureKey(key);
+ X509Certificate cert = (X509Certificate) keyStore.getCertificate("transmitter");
+ properties.setSignatureCerts(new X509Certificate[]{cert});
+
+ SecurePart securePart
+ = new SecurePart(null,
+ SecurePart.Modifier.Content,
+ new String[]{
+ "http://www.w3.org/2000/09/xmldsig#enveloped-signature",
+ "http://www.w3.org/TR/2001/REC-xml-c14n-20010315"
+ },
+ "http://www.w3.org/2000/09/xmldsig#sha1");
+ securePart.setSecureEntireRequest(true);
+ properties.addSignaturePart(securePart);
+
+ OutboundXMLSec outboundXMLSec = XMLSec.getOutboundXMLSec(properties);
+ ByteArrayOutputStream baos = new ByteArrayOutputStream();
+ XMLStreamWriter xmlStreamWriter = outboundXMLSec.processOutMessage(baos, "UTF-8");
+
+ InputStream sourceDocument
+ = this.getClass().getClassLoader().getResourceAsStream(
+ "org/apache/xml/security/testcases/SAML2ArtifactResponseUnsigned.xml");
+ XMLStreamReader xmlStreamReader = xmlInputFactory.createXMLStreamReader(sourceDocument);
+
+ XmlReaderToWriter.writeAll(xmlStreamReader, xmlStreamWriter);
+ xmlStreamWriter.close();
+
+ //System.out.println("Got:\n" + new String(baos.toByteArray(), "UTF-8"));
+
+ Document document
+ = XMLUtils.createDocumentBuilder(false).parse(new ByteArrayInputStream(baos.toByteArray()));
+
+ // Verify using DOM
+ verifyUsingDOM(document, cert, properties.getSignatureSecureParts(),null,true,"ID");
+ }
+
+
+ @Test
public void testMultipleElements() throws Exception {
// Set up the Configuration
XMLSecurityProperties properties = new XMLSecurityProperties();
@@ -1228,7 +1283,7 @@ public class SignatureCreationTest exten
XMLUtils.createDocumentBuilder(false).parse(new ByteArrayInputStream(baos.toByteArray()));
// Verify using DOM
- verifyUsingDOM(document, cert, properties.getSignatureSecureParts(), null, false);
+ verifyUsingDOM(document, cert, properties.getSignatureSecureParts(), null, false, "Id");
}
}
Added: santuario/xml-security-java/trunk/src/test/resources/org/apache/xml/security/testcases/SAML2ArtifactResponseUnsigned.xml
URL: http://svn.apache.org/viewvc/santuario/xml-security-java/trunk/src/test/resources/org/apache/xml/security/testcases/SAML2ArtifactResponseUnsigned.xml?rev=1721123&view=auto
==============================================================================
--- santuario/xml-security-java/trunk/src/test/resources/org/apache/xml/security/testcases/SAML2ArtifactResponseUnsigned.xml (added)
+++ santuario/xml-security-java/trunk/src/test/resources/org/apache/xml/security/testcases/SAML2ArtifactResponseUnsigned.xml Mon Dec 21 11:02:57 2015
@@ -0,0 +1 @@
+<samlp:ArtifactResponse xmlns:samlp="urn:oasis:names:tc:SAML:2.0:protocol" ID="_e5e553f51fe1a009374bdf2186a685d8" IssueInstant="2006-10-11T03:12:59Z" Version="2.0"><samlp:Status><samlp:StatusCode Value="urn:oasis:names:tc:SAML:2.0:status:Success"/></samlp:Status><samlp:Response Destination="https://sp.example.org/SAML/POST" ID="rident" IssueInstant="1970-01-02T01:01:02.100Z" Version="2.0" xmlns:saml="urn:oasis:names:tc:SAML:2.0:assertion"><saml:Issuer>https://idp.example.org/</saml:Issuer><samlp:Status><samlp:StatusCode Value="urn:oasis:names:tc:SAML:2.0:status:Success"/></samlp:Status><saml:Assertion ID="aident" IssueInstant="1970-01-02T01:01:02.100Z" Version="2.0"><saml:Issuer>https://idp.example.org/</saml:Issuer><saml:Subject><saml:NameID>John Doe</saml:NameID></saml:Subject><saml:AuthnStatement AuthnInstant="1970-01-02T01:01:02.100Z"><saml:AuthnContext><saml:AuthnContextClassRef>foo</saml:AuthnContextClassRef></saml:AuthnContext></saml:AuthnStatement></saml:Assertion></samlp:Re
sponse></samlp:ArtifactResponse>
Propchange: santuario/xml-security-java/trunk/src/test/resources/org/apache/xml/security/testcases/SAML2ArtifactResponseUnsigned.xml
------------------------------------------------------------------------------
svn:executable = *