[jboss-cvs] Picketlink SVN: r534 - federation/trunk/picketlink-fed-core/src/test/java/org/picketlink/test/identity/federation/core/parser/saml.
jboss-cvs-commits at lists.jboss.org
jboss-cvs-commits at lists.jboss.org
Thu Nov 4 17:47:35 EDT 2010
Author: anil.saldhana at jboss.com
Date: 2010-11-04 17:47:35 -0400 (Thu, 04 Nov 2010)
New Revision: 534
Modified:
federation/trunk/picketlink-fed-core/src/test/java/org/picketlink/test/identity/federation/core/parser/saml/SAMLAssertionParserTestCase.java
Log:
take care of x500 attributes
Modified: federation/trunk/picketlink-fed-core/src/test/java/org/picketlink/test/identity/federation/core/parser/saml/SAMLAssertionParserTestCase.java
===================================================================
--- federation/trunk/picketlink-fed-core/src/test/java/org/picketlink/test/identity/federation/core/parser/saml/SAMLAssertionParserTestCase.java 2010-11-04 21:33:08 UTC (rev 533)
+++ federation/trunk/picketlink-fed-core/src/test/java/org/picketlink/test/identity/federation/core/parser/saml/SAMLAssertionParserTestCase.java 2010-11-04 21:47:35 UTC (rev 534)
@@ -39,8 +39,10 @@
import org.picketlink.identity.federation.saml.v2.assertion.AttributeStatementType;
import org.picketlink.identity.federation.saml.v2.assertion.AttributeType;
import org.picketlink.identity.federation.saml.v2.assertion.AudienceRestrictionType;
+import org.picketlink.identity.federation.saml.v2.assertion.AuthnStatementType;
import org.picketlink.identity.federation.saml.v2.assertion.ConditionsType;
import org.picketlink.identity.federation.saml.v2.assertion.NameIDType;
+import org.picketlink.identity.federation.saml.v2.assertion.StatementAbstractType;
import org.picketlink.identity.federation.saml.v2.assertion.SubjectConfirmationDataType;
import org.picketlink.identity.federation.saml.v2.assertion.SubjectConfirmationType;
import org.picketlink.identity.federation.saml.v2.assertion.SubjectType;
@@ -57,46 +59,44 @@
{
ClassLoader tcl = Thread.currentThread().getContextClassLoader();
InputStream configStream = tcl.getResourceAsStream( "parser/saml2/saml2-assertion.xml" );
-
+
SAMLParser parser = new SAMLParser();
AssertionType assertion = (AssertionType) parser.parse(configStream);
assertNotNull( assertion );
-
+
assertEquals( "ID_ab0392ef-b557-4453-95a8-a7e168da8ac5", assertion.getID() );
assertEquals( XMLTimeUtil.parse( "2010-09-30T19:13:37.869Z" ), assertion.getIssueInstant() );
//Issuer
assertEquals( "Test STS", assertion.getIssuer().getValue() );
-
+
//Subject
SubjectType subject = assertion.getSubject();
List<JAXBElement<?>> content = subject.getContent();
-
+
int size = content.size();
-
+
for( int i = 0 ; i < size; i++ )
{
JAXBElement<?> node = content.get(i);
if( node.getDeclaredType().equals( NameIDType.class ))
{
NameIDType subjectNameID = (NameIDType) node.getValue();
-
+
assertEquals( "jduke", subjectNameID.getValue() );
assertEquals( "urn:picketlink:identity-federation", subjectNameID.getNameQualifier() );
}
-
+
if( node.getDeclaredType().equals( ConditionsType.class ))
- {
-
+ {
//Conditions
ConditionsType conditions = (ConditionsType) node.getValue();
assertEquals( XMLTimeUtil.parse( "2010-09-30T19:13:37.869Z" ) , conditions.getNotBefore() );
- assertEquals( XMLTimeUtil.parse( "2010-09-30T21:13:37.869Z" ) , conditions.getNotOnOrAfter() );
-
+ assertEquals( XMLTimeUtil.parse( "2010-09-30T21:13:37.869Z" ) , conditions.getNotOnOrAfter() );
}
}
}
-
-
+
+
/**
* This test validates the parsing of audience restrictions inside the conditions
* @throws Exception
@@ -106,35 +106,35 @@
{
ClassLoader tcl = Thread.currentThread().getContextClassLoader();
InputStream configStream = tcl.getResourceAsStream( "parser/saml2/saml2-assertion-audiencerestriction.xml" );
-
+
SAMLParser parser = new SAMLParser();
AssertionType assertion = (AssertionType) parser.parse(configStream);
assertNotNull( assertion );
-
+
assertEquals( "ID_cf9efbf0-9d7f-4b4a-b77f-d83ecaafd374", assertion.getID() );
assertEquals( XMLTimeUtil.parse( "2010-09-30T19:13:37.911Z" ), assertion.getIssueInstant() );
assertEquals( "2.0", assertion.getVersion() );
-
+
//Issuer
assertEquals( "Test STS", assertion.getIssuer().getValue() );
-
+
//Subject
SubjectType subject = assertion.getSubject();
List<JAXBElement<?>> content = subject.getContent();
-
+
int size = content.size();
-
+
for( int i = 0 ; i < size; i++ )
{
JAXBElement<?> node = content.get(i);
if( node.getDeclaredType().equals( NameIDType.class ))
{
NameIDType subjectNameID = (NameIDType) node.getValue();
-
+
assertEquals( "jduke", subjectNameID.getValue() );
assertEquals( "urn:picketlink:identity-federation", subjectNameID.getNameQualifier() );
}
-
+
if( node.getDeclaredType().equals( ConditionsType.class ))
{
//Conditions
@@ -150,31 +150,61 @@
}
}
}
-
-
+
+
@Test
public void testAssertionWithX500Attribute() throws Exception
{
ClassLoader tcl = Thread.currentThread().getContextClassLoader();
InputStream configStream = tcl.getResourceAsStream( "parser/saml2/saml2-assertion-x500attrib.xml" );
-
+
SAMLParser parser = new SAMLParser();
AssertionType assertion = (AssertionType) parser.parse(configStream);
assertNotNull( assertion );
-
+
assertEquals( "ID_b07b804c-7c29-ea16-7300-4f3d6f7928ac", assertion.getID() );
assertEquals( XMLTimeUtil.parse( "2004-12-05T09:22:05Z" ), assertion.getIssueInstant() );
assertEquals( "2.0", assertion.getVersion() );
-
+
//Issuer
assertEquals( "https://idp.example.org/SAML2", assertion.getIssuer().getValue() );
-
+
+ List<StatementAbstractType> statements = assertion.getStatementOrAuthnStatementOrAuthzDecisionStatement();
+ assertEquals( 2, statements.size() );
+
+ AuthnStatementType authnStatement = (AuthnStatementType) statements.get(0);
+ assertEquals( XMLTimeUtil.parse( "2004-12-05T09:22:00Z" ), authnStatement.getAuthnInstant() );
+ assertEquals( "b07b804c-7c29-ea16-7300-4f3d6f7928ac", authnStatement.getSessionIndex() );
+
+
+ AttributeStatementType attributeStatement = (AttributeStatementType) statements.get( 1 );
+ List<Object> attributes = attributeStatement.getAttributeOrEncryptedAttribute();
+ assertEquals( 1, attributes.size() );
+ AttributeType attribute = (AttributeType) attributes.get(0);
+ assertEquals( "eduPersonAffiliation", attribute.getFriendlyName() );
+ assertEquals( "urn:oid:1.3.6.1.4.1.5923.1.1.1.1", attribute.getName() );
+ assertEquals( "urn:oasis:names:tc:SAML:2.0:attrname-format:uri", attribute.getNameFormat() );
+
+ //Ensure that we have x500:encoding
+ QName x500EncodingName = new QName( JBossSAMLURIConstants.X500_NSURI.get(),
+ JBossSAMLConstants.ENCODING.get() );
+ String encodingValue = attribute.getOtherAttributes().get( x500EncodingName );
+ assertEquals( "LDAP", encodingValue );
+
+ List<Object> attributeValues = attribute.getAttributeValue();
+ assertEquals( 2, attributeValues.size() );
+
+ String str = (String ) attributeValues.get( 0 );
+ if( ! ( str.equals( "member") || str.equals( "staff" )))
+ throw new RuntimeException( "attrib value not found" );
+
//Subject
SubjectType subject = assertion.getSubject();
List<JAXBElement<?>> content = subject.getContent();
-
+
int size = content.size();
-
+ assertEquals( 2, size );
+
for( int i = 0 ; i < size; i++ )
{
JAXBElement<?> node = content.get(i);
@@ -182,11 +212,11 @@
if( clazz.equals( NameIDType.class ))
{
NameIDType subjectNameID = (NameIDType) node.getValue();
-
+
assertEquals( "3f7b3dcf-1674-4ecd-92c8-1544f346baf8", subjectNameID.getValue() );
assertEquals( "urn:oasis:names:tc:SAML:2.0:nameid-format:transient", subjectNameID.getFormat() );
}
-
+
if( clazz.equals( ConditionsType.class ))
{
//Conditions
@@ -200,45 +230,17 @@
assertEquals( 1, audienceRestrictionType.getAudience().size() );
assertEquals( "https://sp.example.com/SAML2", audienceRestrictionType.getAudience().get( 0 ));
}
-
+
else if( clazz.equals( SubjectConfirmationType.class ))
{
SubjectConfirmationType subjectConfirmation = (SubjectConfirmationType) node.getValue();
assertEquals( "urn:oasis:names:tc:SAML:2.0:cm:bearer", subjectConfirmation.getMethod() );
-
+
SubjectConfirmationDataType subjectConfirmationData = subjectConfirmation.getSubjectConfirmationData();
assertEquals( "ID_aaf23196-1773-2113-474a-fe114412ab72", subjectConfirmationData.getInResponseTo() );
assertEquals( XMLTimeUtil.parse( "2004-12-05T09:27:05Z" ), subjectConfirmationData.getNotOnOrAfter() );
assertEquals( "https://sp.example.com/SAML2/SSO/POST", subjectConfirmationData.getRecipient());
}
-
- else if( clazz.equals( AttributeStatementType.class ))
- {
- AttributeStatementType attributeStatement = (AttributeStatementType) node.getValue();
- List<Object> attributes = attributeStatement.getAttributeOrEncryptedAttribute();
- assertEquals( 2, attributes.size() );
-
- for( Object attr: attributes )
- {
- AttributeType attribute = (AttributeType) attr;
- assertEquals( "eduPersonAffiliation", attribute.getFriendlyName() );
- assertEquals( "urn:oid:1.3.6.1.4.1.5923.1.1.1.1", attribute.getName() );
- assertEquals( "urn:oasis:names:tc:SAML:2.0:attrname-format:uri", attribute.getNameFormat() );
-
- //Ensure that we have x500:encoding
- QName x500EncodingName = new QName( JBossSAMLURIConstants.X500_NSURI.get(),
- JBossSAMLConstants.ENCODING.get() );
- String encodingValue = attribute.getOtherAttributes().get( x500EncodingName );
- assertEquals( "LDAP", encodingValue );
-
- List<Object> attributeValues = attribute.getAttributeValue();
- assertEquals( 1, attributeValues.size() );
-
- String str = (String ) attributeValues.get( 0 );
- if( ! ( str.equals( "member") || str.equals( "staff" )))
- throw new RuntimeException( "attrib value not found" );
- }
- }
}
}
}
\ No newline at end of file
More information about the jboss-cvs-commits
mailing list