Author: anil.saldhana(a)jboss.com
Date: 2011-07-22 00:36:49 -0400 (Fri, 22 Jul 2011)
New Revision: 1108
Added:
federation/trunk/picketlink-fed-api/src/test/java/org/picketlink/test/identity/federation/api/saml/v2/SAML2ResponseUnitTestCase.java
federation/trunk/picketlink-fed-api/src/test/resources/saml/v2/response/
federation/trunk/picketlink-fed-api/src/test/resources/saml/v2/response/saml2-response-adfs-claims.xml
federation/trunk/picketlink-fed-core/src/test/resources/parser/saml2/saml2-response-adfs-claims.xml
Modified:
federation/trunk/picketlink-fed-core/src/main/java/org/picketlink/identity/federation/core/parsers/util/SAMLParserUtil.java
federation/trunk/picketlink-fed-core/src/main/java/org/picketlink/identity/federation/core/saml/v2/constants/JBossSAMLURIConstants.java
federation/trunk/picketlink-fed-core/src/test/java/org/picketlink/test/identity/federation/core/parser/saml/SAMLResponseParserTestCase.java
Log:
PLFED-211: verify that we are parsing the adfs claims successfully
Added:
federation/trunk/picketlink-fed-api/src/test/java/org/picketlink/test/identity/federation/api/saml/v2/SAML2ResponseUnitTestCase.java
===================================================================
---
federation/trunk/picketlink-fed-api/src/test/java/org/picketlink/test/identity/federation/api/saml/v2/SAML2ResponseUnitTestCase.java
(rev 0)
+++
federation/trunk/picketlink-fed-api/src/test/java/org/picketlink/test/identity/federation/api/saml/v2/SAML2ResponseUnitTestCase.java 2011-07-22
04:36:49 UTC (rev 1108)
@@ -0,0 +1,48 @@
+/*
+ * JBoss, Home of Professional Open Source.
+ * Copyright 2008, Red Hat Middleware LLC, and individual contributors
+ * as indicated by the @author tags. See the copyright.txt file in the
+ * distribution for a full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site:
http://www.fsf.org.
+ */
+package org.picketlink.test.identity.federation.api.saml.v2;
+
+import static org.junit.Assert.assertNotNull;
+
+import java.io.InputStream;
+
+import org.junit.Test;
+import org.picketlink.identity.federation.api.saml.v2.response.SAML2Response;
+import org.picketlink.identity.federation.saml.v2.SAML2Object;
+
+/**
+ * @author Anil.Saldhana(a)redhat.com
+ * @since Jul 21, 2011
+ */
+public class SAML2ResponseUnitTestCase
+{
+ @Test
+ public void parseADFSClaims() throws Exception
+ {
+ ClassLoader tcl = Thread.currentThread().getContextClassLoader();
+ InputStream configStream =
tcl.getResourceAsStream("saml/v2/response/saml2-response-adfs-claims.xml");
+ SAML2Response samlResponse = new SAML2Response();
+ SAML2Object samlObject = samlResponse.getSAML2ObjectFromStream(configStream);
+ assertNotNull(samlObject);
+ }
+
+}
\ No newline at end of file
Added:
federation/trunk/picketlink-fed-api/src/test/resources/saml/v2/response/saml2-response-adfs-claims.xml
===================================================================
---
federation/trunk/picketlink-fed-api/src/test/resources/saml/v2/response/saml2-response-adfs-claims.xml
(rev 0)
+++
federation/trunk/picketlink-fed-api/src/test/resources/saml/v2/response/saml2-response-adfs-claims.xml 2011-07-22
04:36:49 UTC (rev 1108)
@@ -0,0 +1,66 @@
+<samlp:Response xmlns:samlp="urn:oasis:names:tc:SAML:2.0:protocol"
+ Consent="urn:oasis:names:tc:SAML:2.0:consent:unspecified"
+ Destination="https://something"
+ ID="_48db7f2f-a2d2-4e45-94bc-bb680a47d073"
InResponseTo="CPSID_47811a63-caf3-4e4e-84cb-fa872cafff05"
+ IssueInstant="2011-07-19T21:23:42.077Z" Version="2.0">
+ <Issuer
xmlns="urn:oasis:names:tc:SAML:2.0:assertion">urn:adfs:services:trust
+ </Issuer>
+ <samlp:Status>
+ <samlp:StatusCode Value="urn:oasis:names:tc:SAML:2.0:status:Success"
/>
+ </samlp:Status>
+ <Assertion xmlns="urn:oasis:names:tc:SAML:2.0:assertion"
ID="_334b1e3d-8783-4ea6-b5a9-0dd6317999d2"
+ IssueInstant="2011-07-19T21:23:42.077Z" Version="2.0">
+ <Issuer>urn:adfs:services:trust</Issuer>
+ <ds:Signature
xmlns:ds="http://www.w3.org/2000/09/xmldsig#">
+ <ds:SignedInfo>
+ <ds:CanonicalizationMethod
Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#" />
+ <ds:SignatureMethod
+
Algorithm="http://www.w3.org/2001/04/xmldsig-more#rsa-sha256" />
+ <ds:Reference URI="#_334b1e3d-8783-4ea6-b5a9-0dd6317999d2">
+ <ds:Transforms>
+ <ds:Transform
+
Algorithm="http://www.w3.org/2000/09/xmldsig#enveloped-signature" />
+ <ds:Transform
Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"
/>
+ </ds:Transforms>
+ <ds:DigestMethod
Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"
/>
+ <ds:DigestValue>6UvO3uhEz2ErtcrijZ4WfvhrPGEoP+fdmiMOg0mOeMQ=
+ </ds:DigestValue>
+ </ds:Reference>
+ </ds:SignedInfo>
+ <ds:SignatureValue>JGR4KOgUKksRKGn0c2OvyVhCIbOX5rafDiaXezTyGPsQJnVhbYUa6xDnDEb1kMXefL3IxAWL2o1PgYlnrrGfuP3QgAeF1B+w9JlO4/H7DTeumMWz7ZvpsmUMARrcFBJjsOXgIZxDU3UY1yzn6IMZonQRz2CO6kVo2q3zemlb8TAssZttj71Wl/fceRDlkV/+suQChaaXeDWVW2T+ITnt2JSJY2GL6PpT8K+hHAyfS0PgC9o3RedAwIZT73ZiCQugZYxBgjQbZXT72x6arh8phWVtENCr6JEcXFUrAGnYzOn3/48M6w9MQ2GhHB4XqgWAQrrpcG6nw47q+Z4zn+9Wig==
+ </ds:SignatureValue>
+ <KeyInfo
xmlns="http://www.w3.org/2000/09/xmldsig#">
+ <ds:X509Data>
+ <ds:X509Certificate>MIIC7jCCAdagAwIBAgIQXp/JPRE5SaJCiQcYG8wqBzANBgkqhkiG9w0BAQsFADAzMTEwLwYDVQQDEyhBREZTIFNpZ25pbmcgLSBDUFMtRVhULUZTLmV4dC5zdy5yaW0ubmV0MB4XDTExMDUwODIyMDQ1OVoXDTEyMDUwNzIyMDQ1OVowMzExMC8GA1UEAxMoQURGUyBTaWduaW5nIC0gQ1BTLUVYVC1GUy5leHQuc3cucmltLm5ldDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBANN57C+4eyqeB44BiUB4xmyTcUMhJR55yjnJWWse8KllXJYnFzZzJPvVC1SPlACz2EzuATT5gWFhHyhqolgqAR5a0pke1wXVN4aHKOkUzmDhdd2JfOGFoJRIV9wgkX1bbA2FS+kJMl0ewdgxKdjOlKM+LXNmFteqRYZq2+0ss7vtZJ8/ls9t6cRNd2qI+7zJvPqvs1Beaiia9P45oXn7YPK4TJKIR3aq4vmI1q2cSFK1a1b76YDvzYYAASCpeGJ+20lh3j81/5D408MrjaDb1pMXWhK01okcypQeNwaGoEQwlFm8M5eQCRgnJbHzASE8NMdV+2NW2vn+GNbp327gOk0CAwEAATANBgkqhkiG9w0BAQsFAAOCAQEAkYq2FmFTkP9NRXJn/J3XU+9Idv4h76vNdIT4hvfnzhlKGqVZANgIVgXk6aIzSv22x3vxkjSvMDQkhINHLEcKzabWdpAtwUUiqBUykwg+MvzolLkuG6yNT59KrUPbteqxQrhK5O+VCsDIaxjWjvSW0O7ACuPgQFPcnDZDcVXJWOCy6sUmnMSuD1kMmCJ6ubu72IrlnPKWp1obfVl1EV1GOWwx6LSn/WyZ0+ca4bkOLhMku5v+7myQLMWxS5sqb9578ZG51qrfJRde3wCOGAfRBCUa/8H/6xvkp7T6j0Fx4uH!
j8XBn8wjL8epgWSyH381owGepLRJ+evRIjtbYVEAs7w==
+ </ds:X509Certificate>
+ </ds:X509Data>
+ </KeyInfo>
+ </ds:Signature>
+ <Subject>
+ <SubjectConfirmation Method="urn:oasis:names:tc:SAML:2.0:cm:bearer">
+ <SubjectConfirmationData
+ InResponseTo="CPSID_47811a63-caf3-4e4e-84cb-fa872cafff05"
+ NotOnOrAfter="2011-07-19T21:28:42.077Z"
Recipient="https://somebody" />
+ </SubjectConfirmation>
+ </Subject>
+ <Conditions NotBefore="2011-07-19T21:23:42.077Z"
+ NotOnOrAfter="2011-07-19T22:23:42.077Z">
+ <AudienceRestriction>
+ <Audience>https://somebody</Audience>
+ </AudienceRestriction>
+ </Conditions>
+ <AttributeStatement>
+ <Attribute
Name="http://schemas.xmlsoap.org/claims/EmailAddress">
+ <AttributeValue>admin(a)test.net</AttributeValue>
+ </Attribute>
+ <Attribute
Name="http://schemas.xmlsoap.org/claims/PUID">
+ <AttributeValue>1004567899</AttributeValue>
+ </Attribute>
+ </AttributeStatement>
+ <AuthnStatement AuthnInstant="2011-07-19T21:10:57.923Z">
+ <AuthnContext>
+ <AuthnContextClassRef>urn:federation:authentication:windows</AuthnContextClassRef>
+ </AuthnContext>
+ </AuthnStatement>
+ </Assertion>
+</samlp:Response>
\ No newline at end of file
Modified:
federation/trunk/picketlink-fed-core/src/main/java/org/picketlink/identity/federation/core/parsers/util/SAMLParserUtil.java
===================================================================
---
federation/trunk/picketlink-fed-core/src/main/java/org/picketlink/identity/federation/core/parsers/util/SAMLParserUtil.java 2011-07-21
15:21:22 UTC (rev 1107)
+++
federation/trunk/picketlink-fed-core/src/main/java/org/picketlink/identity/federation/core/parsers/util/SAMLParserUtil.java 2011-07-22
04:36:49 UTC (rev 1108)
@@ -45,6 +45,7 @@
import org.picketlink.identity.federation.saml.v2.assertion.AuthnContextClassRefType;
import org.picketlink.identity.federation.saml.v2.assertion.AuthnContextDeclRefType;
import org.picketlink.identity.federation.saml.v2.assertion.AuthnContextType;
+import
org.picketlink.identity.federation.saml.v2.assertion.AuthnContextType.AuthnContextTypeSequence;
import org.picketlink.identity.federation.saml.v2.assertion.AuthnStatementType;
import org.picketlink.identity.federation.saml.v2.assertion.NameIDType;
import org.picketlink.identity.federation.saml.v2.assertion.SubjectLocalityType;
@@ -310,7 +311,10 @@
String text = StaxParserUtil.getElementText(xmlEventReader);
AuthnContextClassRefType aAuthnContextClassRefType = new
AuthnContextClassRefType(URI.create(text));
- authnContextType.addURIType(aAuthnContextClassRefType);
+ AuthnContextTypeSequence authnContextSequence = authnContextType.new
AuthnContextTypeSequence();
+ authnContextSequence.setClassRef(aAuthnContextClassRefType);
+
+ authnContextType.setSequence(authnContextSequence);
EndElement endElement = StaxParserUtil.getNextEndElement(xmlEventReader);
StaxParserUtil.validate(endElement, JBossSAMLConstants.AUTHN_CONTEXT.get());
}
Modified:
federation/trunk/picketlink-fed-core/src/main/java/org/picketlink/identity/federation/core/saml/v2/constants/JBossSAMLURIConstants.java
===================================================================
---
federation/trunk/picketlink-fed-core/src/main/java/org/picketlink/identity/federation/core/saml/v2/constants/JBossSAMLURIConstants.java 2011-07-21
15:21:22 UTC (rev 1107)
+++
federation/trunk/picketlink-fed-core/src/main/java/org/picketlink/identity/federation/core/saml/v2/constants/JBossSAMLURIConstants.java 2011-07-22
04:36:49 UTC (rev 1108)
@@ -36,13 +36,36 @@
AC_UNSPECIFIED("urn:oasis:names:tc:SAML:2.0:ac:classes:unspecified"),
AC_IP("urn:oasis:names:tc:SAML:2.0:ac:classes:InternetProtocol"),
-
- BEARER( "urn:oasis:names:tc:SAML:2.0:cm:bearer" ),
-
ASSERTION_NSURI("urn:oasis:names:tc:SAML:2.0:assertion"),
ATTRIBUTE_FORMAT_BASIC("urn:oasis:names:tc:SAML:2.0:attrname-format:basic"),
ATTRIBUTE_FORMAT_URI("urn:oasis:names:tc:SAML:2.0:attrname-format:uri"),
+
+
+ BEARER( "urn:oasis:names:tc:SAML:2.0:cm:bearer" ),
+ CLAIMS_EMAIL_ADDRESS_2005(
"http://schemas.xmlsoap.org/ws/2005/05/identity/claims/emailaddress"),
+ CLAIMS_EMAIL_ADDRESS( "http://schemas.xmlsoap.org/claims/EmailAddress"),
+ CLAIMS_GIVEN_NAME(
"http://schemas.xmlsoap.org/ws/2005/05/identity/claims/givenname"),
+
CLAIMS_NAME("http://schemas.xmlsoap.org/ws/2005/05/identity/claims/n...,
+
CLAIMS_USER_PRINCIPAL_NAME_2005("http://schemas.xmlsoap.org/ws/2005/...,
+
CLAIMS_USER_PRINCIPAL_NAME("http://schemas.xmlsoap.org/claims/UPN&qu...,
+
CLAIMS_COMMON_NAME("http://schemas.xmlsoap.org/claims/CommonName"),
+
CLAIMS_GROUP("http://schemas.xmlsoap.org/claims/Group"),
+
CLAIMS_ROLE("http://schemas.microsoft.com/ws/2008/06/identity/claims...,
+
CLAIMS_SURNAME("http://schemas.xmlsoap.org/ws/2005/05/identity/claim...,
+
CLAIMS_PRIVATE_ID("http://schemas.xmlsoap.org/ws/2005/05/identity/cl...,
+
CLAIMS_NAME_IDENTIFIER("http://schemas.xmlsoap.org/ws/2005/05/identi...,
+
CLAIMS_AUTHENTICATION_METHOD("http://schemas.microsoft.com/ws/2008/0...,
+
CLAIMS_DENY_ONLY_GROUP_SID("http://schemas.xmlsoap.org/ws/2005/05/id...,
+
CLAIMS_DENY_ONLY_PRIMARY_SID("http://schemas.microsoft.com/ws/2008/0...,
+
CLAIMS_DENY_ONLY_PRIMARY_GROUP_SID("http://schemas.microsoft.com/ws/...,
+
CLAIMS_GROUP_SID("http://schemas.microsoft.com/ws/2008/06/identity/c...,
+
CLAIMS_PRIMARY_GROUP_SID("http://schemas.microsoft.com/ws/2008/06/id...,
+
CLAIMS_PRIMARY_SID("http://schemas.microsoft.com/ws/2008/06/identity...,
+
CLAIMS_WINDOWS_ACCOUNT_NAME("http://schemas.microsoft.com/ws/2008/06...,
+
CLAIMS_PUID("http://schemas.xmlsoap.org/claims/PUID"),
+
+
HOLDER_OF_KEY( "urn:oasis:names:tc:SAML:2.0:cm:holder-of-key" ),
METADATA_NSURI( "urn:oasis:names:tc:SAML:2.0:metadata" ),
Modified:
federation/trunk/picketlink-fed-core/src/test/java/org/picketlink/test/identity/federation/core/parser/saml/SAMLResponseParserTestCase.java
===================================================================
---
federation/trunk/picketlink-fed-core/src/test/java/org/picketlink/test/identity/federation/core/parser/saml/SAMLResponseParserTestCase.java 2011-07-21
15:21:22 UTC (rev 1107)
+++
federation/trunk/picketlink-fed-core/src/test/java/org/picketlink/test/identity/federation/core/parser/saml/SAMLResponseParserTestCase.java 2011-07-22
04:36:49 UTC (rev 1108)
@@ -29,18 +29,22 @@
import java.io.InputStream;
import java.util.Iterator;
import java.util.List;
+import java.util.Set;
import org.junit.Test;
import org.picketlink.identity.federation.core.parsers.saml.SAMLParser;
+import org.picketlink.identity.federation.core.saml.v2.constants.JBossSAMLURIConstants;
import org.picketlink.identity.federation.core.saml.v2.util.DocumentUtil;
import org.picketlink.identity.federation.core.saml.v2.util.XMLTimeUtil;
import org.picketlink.identity.federation.core.saml.v2.writers.SAMLResponseWriter;
import org.picketlink.identity.federation.core.util.StaxUtil;
import org.picketlink.identity.federation.saml.v2.assertion.AssertionType;
import org.picketlink.identity.federation.saml.v2.assertion.AttributeStatementType;
+import
org.picketlink.identity.federation.saml.v2.assertion.AttributeStatementType.ASTChoiceType;
import org.picketlink.identity.federation.saml.v2.assertion.AttributeType;
import org.picketlink.identity.federation.saml.v2.assertion.AuthnContextDeclRefType;
import org.picketlink.identity.federation.saml.v2.assertion.AuthnContextType;
+import
org.picketlink.identity.federation.saml.v2.assertion.AuthnContextType.AuthnContextTypeSequence;
import org.picketlink.identity.federation.saml.v2.assertion.AuthnStatementType;
import org.picketlink.identity.federation.saml.v2.assertion.NameIDType;
import org.picketlink.identity.federation.saml.v2.assertion.StatementAbstractType;
@@ -244,4 +248,49 @@
System.out.println(writtenString);
validateSchema(writtenString);
}
+
+ @Test
+ public void testSAMLResponseADFSClaims() throws Exception
+ {
+ ClassLoader tcl = Thread.currentThread().getContextClassLoader();
+ InputStream configStream =
tcl.getResourceAsStream("parser/saml2/saml2-response-adfs-claims.xml");
+
+ SAMLParser parser = new SAMLParser();
+ ResponseType response = (ResponseType) parser.parse(configStream);
+ assertNotNull("ResponseType is not null", response);
+
+ List<RTChoiceType> choices = response.getAssertions();
+ assertEquals(1, choices.size());
+ RTChoiceType rtc = choices.get(0);
+ AssertionType assertion = rtc.getAssertion();
+ Set<StatementAbstractType> statements = assertion.getStatements();
+ for (StatementAbstractType statement : statements)
+ {
+ if (statement instanceof AuthnStatementType)
+ {
+ AuthnStatementType authnStat = (AuthnStatementType) statement;
+ AuthnContextType authnContext = authnStat.getAuthnContext();
+
+ AuthnContextTypeSequence sequence = authnContext.getSequence();
+ assertNotNull(sequence);
+ assertEquals("urn:federation:authentication:windows",
sequence.getClassRef().getValue().toString());
+ }
+ else if (statement instanceof AttributeStatementType)
+ {
+ AttributeStatementType attribStat = (AttributeStatementType) statement;
+ List<ASTChoiceType> attributes = attribStat.getAttributes();
+ assertEquals(2, attributes.size());
+ for (ASTChoiceType astChoice : attributes)
+ {
+ AttributeType attribute = astChoice.getAttribute();
+ String attributeName = attribute.getName();
+ if
(!(JBossSAMLURIConstants.CLAIMS_EMAIL_ADDRESS.get().equals(attributeName) ||
JBossSAMLURIConstants.CLAIMS_PUID
+ .get().equals(attributeName)))
+ throw new RuntimeException("Unknown attr name:" +
attributeName);
+ }
+ }
+ else
+ throw new RuntimeException("Unknown statement type:" + statement);
+ }
+ }
}
\ No newline at end of file
Added:
federation/trunk/picketlink-fed-core/src/test/resources/parser/saml2/saml2-response-adfs-claims.xml
===================================================================
---
federation/trunk/picketlink-fed-core/src/test/resources/parser/saml2/saml2-response-adfs-claims.xml
(rev 0)
+++
federation/trunk/picketlink-fed-core/src/test/resources/parser/saml2/saml2-response-adfs-claims.xml 2011-07-22
04:36:49 UTC (rev 1108)
@@ -0,0 +1,66 @@
+<samlp:Response xmlns:samlp="urn:oasis:names:tc:SAML:2.0:protocol"
+ Consent="urn:oasis:names:tc:SAML:2.0:consent:unspecified"
+ Destination="https://something"
+ ID="_48db7f2f-a2d2-4e45-94bc-bb680a47d073"
InResponseTo="CPSID_47811a63-caf3-4e4e-84cb-fa872cafff05"
+ IssueInstant="2011-07-19T21:23:42.077Z" Version="2.0">
+ <Issuer
xmlns="urn:oasis:names:tc:SAML:2.0:assertion">urn:adfs:services:trust
+ </Issuer>
+ <samlp:Status>
+ <samlp:StatusCode Value="urn:oasis:names:tc:SAML:2.0:status:Success"
/>
+ </samlp:Status>
+ <Assertion xmlns="urn:oasis:names:tc:SAML:2.0:assertion"
ID="_334b1e3d-8783-4ea6-b5a9-0dd6317999d2"
+ IssueInstant="2011-07-19T21:23:42.077Z" Version="2.0">
+ <Issuer>urn:adfs:services:trust</Issuer>
+ <ds:Signature
xmlns:ds="http://www.w3.org/2000/09/xmldsig#">
+ <ds:SignedInfo>
+ <ds:CanonicalizationMethod
Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#" />
+ <ds:SignatureMethod
+
Algorithm="http://www.w3.org/2001/04/xmldsig-more#rsa-sha256" />
+ <ds:Reference URI="#_334b1e3d-8783-4ea6-b5a9-0dd6317999d2">
+ <ds:Transforms>
+ <ds:Transform
+
Algorithm="http://www.w3.org/2000/09/xmldsig#enveloped-signature" />
+ <ds:Transform
Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"
/>
+ </ds:Transforms>
+ <ds:DigestMethod
Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"
/>
+ <ds:DigestValue>6UvO3uhEz2ErtcrijZ4WfvhrPGEoP+fdmiMOg0mOeMQ=
+ </ds:DigestValue>
+ </ds:Reference>
+ </ds:SignedInfo>
+ <ds:SignatureValue>JGR4KOgUKksRKGn0c2OvyVhCIbOX5rafDiaXezTyGPsQJnVhbYUa6xDnDEb1kMXefL3IxAWL2o1PgYlnrrGfuP3QgAeF1B+w9JlO4/H7DTeumMWz7ZvpsmUMARrcFBJjsOXgIZxDU3UY1yzn6IMZonQRz2CO6kVo2q3zemlb8TAssZttj71Wl/fceRDlkV/+suQChaaXeDWVW2T+ITnt2JSJY2GL6PpT8K+hHAyfS0PgC9o3RedAwIZT73ZiCQugZYxBgjQbZXT72x6arh8phWVtENCr6JEcXFUrAGnYzOn3/48M6w9MQ2GhHB4XqgWAQrrpcG6nw47q+Z4zn+9Wig==
+ </ds:SignatureValue>
+ <KeyInfo
xmlns="http://www.w3.org/2000/09/xmldsig#">
+ <ds:X509Data>
+ <ds:X509Certificate>MIIC7jCCAdagAwIBAgIQXp/JPRE5SaJCiQcYG8wqBzANBgkqhkiG9w0BAQsFADAzMTEwLwYDVQQDEyhBREZTIFNpZ25pbmcgLSBDUFMtRVhULUZTLmV4dC5zdy5yaW0ubmV0MB4XDTExMDUwODIyMDQ1OVoXDTEyMDUwNzIyMDQ1OVowMzExMC8GA1UEAxMoQURGUyBTaWduaW5nIC0gQ1BTLUVYVC1GUy5leHQuc3cucmltLm5ldDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBANN57C+4eyqeB44BiUB4xmyTcUMhJR55yjnJWWse8KllXJYnFzZzJPvVC1SPlACz2EzuATT5gWFhHyhqolgqAR5a0pke1wXVN4aHKOkUzmDhdd2JfOGFoJRIV9wgkX1bbA2FS+kJMl0ewdgxKdjOlKM+LXNmFteqRYZq2+0ss7vtZJ8/ls9t6cRNd2qI+7zJvPqvs1Beaiia9P45oXn7YPK4TJKIR3aq4vmI1q2cSFK1a1b76YDvzYYAASCpeGJ+20lh3j81/5D408MrjaDb1pMXWhK01okcypQeNwaGoEQwlFm8M5eQCRgnJbHzASE8NMdV+2NW2vn+GNbp327gOk0CAwEAATANBgkqhkiG9w0BAQsFAAOCAQEAkYq2FmFTkP9NRXJn/J3XU+9Idv4h76vNdIT4hvfnzhlKGqVZANgIVgXk6aIzSv22x3vxkjSvMDQkhINHLEcKzabWdpAtwUUiqBUykwg+MvzolLkuG6yNT59KrUPbteqxQrhK5O+VCsDIaxjWjvSW0O7ACuPgQFPcnDZDcVXJWOCy6sUmnMSuD1kMmCJ6ubu72IrlnPKWp1obfVl1EV1GOWwx6LSn/WyZ0+ca4bkOLhMku5v+7myQLMWxS5sqb9578ZG51qrfJRde3wCOGAfRBCUa/8H/6xvkp7T6j0Fx4uH!
j8XBn8wjL8epgWSyH381owGepLRJ+evRIjtbYVEAs7w==
+ </ds:X509Certificate>
+ </ds:X509Data>
+ </KeyInfo>
+ </ds:Signature>
+ <Subject>
+ <SubjectConfirmation Method="urn:oasis:names:tc:SAML:2.0:cm:bearer">
+ <SubjectConfirmationData
+ InResponseTo="CPSID_47811a63-caf3-4e4e-84cb-fa872cafff05"
+ NotOnOrAfter="2011-07-19T21:28:42.077Z"
Recipient="https://somebody" />
+ </SubjectConfirmation>
+ </Subject>
+ <Conditions NotBefore="2011-07-19T21:23:42.077Z"
+ NotOnOrAfter="2011-07-19T22:23:42.077Z">
+ <AudienceRestriction>
+ <Audience>https://somebody</Audience>
+ </AudienceRestriction>
+ </Conditions>
+ <AttributeStatement>
+ <Attribute
Name="http://schemas.xmlsoap.org/claims/EmailAddress">
+ <AttributeValue>admin(a)test.net</AttributeValue>
+ </Attribute>
+ <Attribute
Name="http://schemas.xmlsoap.org/claims/PUID">
+ <AttributeValue>1004567899</AttributeValue>
+ </Attribute>
+ </AttributeStatement>
+ <AuthnStatement AuthnInstant="2011-07-19T21:10:57.923Z">
+ <AuthnContext>
+ <AuthnContextClassRef>urn:federation:authentication:windows</AuthnContextClassRef>
+ </AuthnContext>
+ </AuthnStatement>
+ </Assertion>
+</samlp:Response>
\ No newline at end of file