Author: anil.saldhana(a)jboss.com
Date: 2011-02-23 12:43:59 -0500 (Wed, 23 Feb 2011)
New Revision: 772
Modified:
federation/trunk/picketlink-fed-core/src/main/java/org/picketlink/identity/federation/core/saml/md/providers/MetaDataBuilderDelegate.java
federation/trunk/picketlink-fed-core/src/main/java/org/picketlink/identity/federation/core/saml/v2/writers/SAMLMetadataWriter.java
federation/trunk/picketlink-fed-core/src/test/java/org/picketlink/test/identity/federation/core/saml/v2/metadata/SAMLMetadataWriterUnitTestCase.java
federation/trunk/picketlink-fed-model/src/main/java/org/picketlink/identity/federation/newmodel/saml/v2/metadata/EntityDescriptorType.java
Log:
PLFED-142: fix the metadata related issues
Modified:
federation/trunk/picketlink-fed-core/src/main/java/org/picketlink/identity/federation/core/saml/md/providers/MetaDataBuilderDelegate.java
===================================================================
---
federation/trunk/picketlink-fed-core/src/main/java/org/picketlink/identity/federation/core/saml/md/providers/MetaDataBuilderDelegate.java 2011-02-23
17:11:52 UTC (rev 771)
+++
federation/trunk/picketlink-fed-core/src/main/java/org/picketlink/identity/federation/core/saml/md/providers/MetaDataBuilderDelegate.java 2011-02-23
17:43:59 UTC (rev 772)
@@ -26,6 +26,7 @@
import java.util.List;
import org.picketlink.identity.federation.core.saml.v2.constants.JBossSAMLConstants;
+import org.picketlink.identity.federation.core.saml.v2.constants.JBossSAMLURIConstants;
import org.picketlink.identity.federation.newmodel.saml.v2.assertion.AttributeType;
import org.picketlink.identity.federation.newmodel.saml.v2.metadata.EndpointType;
import
org.picketlink.identity.federation.newmodel.saml.v2.metadata.EntityDescriptorType;
@@ -168,8 +169,10 @@
List<AttributeType> attributes,
OrganizationType org)
{
- List<String> emptyList = new ArrayList<String>();
- SPSSODescriptorType sp = new SPSSODescriptorType( emptyList );
+ List<String> protocolEnumList = new ArrayList<String>();
+ protocolEnumList.add( JBossSAMLURIConstants.PROTOCOL_NSURI.get() );
+
+ SPSSODescriptorType sp = new SPSSODescriptorType( protocolEnumList );
sp.addSingleLogoutService( sloEndPoint );
sp.addKeyDescriptor( keyDescriptorType );
sp.setAuthnRequestsSigned(requestsSigned);
Modified:
federation/trunk/picketlink-fed-core/src/main/java/org/picketlink/identity/federation/core/saml/v2/writers/SAMLMetadataWriter.java
===================================================================
---
federation/trunk/picketlink-fed-core/src/main/java/org/picketlink/identity/federation/core/saml/v2/writers/SAMLMetadataWriter.java 2011-02-23
17:11:52 UTC (rev 771)
+++
federation/trunk/picketlink-fed-core/src/main/java/org/picketlink/identity/federation/core/saml/v2/writers/SAMLMetadataWriter.java 2011-02-23
17:43:59 UTC (rev 772)
@@ -52,6 +52,7 @@
import org.picketlink.identity.federation.newmodel.saml.v2.metadata.LocalizedURIType;
import org.picketlink.identity.federation.newmodel.saml.v2.metadata.OrganizationType;
import
org.picketlink.identity.federation.newmodel.saml.v2.metadata.RequestedAttributeType;
+import org.picketlink.identity.federation.newmodel.saml.v2.metadata.RoleDescriptorType;
import org.picketlink.identity.federation.newmodel.saml.v2.metadata.SPSSODescriptorType;
import org.picketlink.identity.federation.newmodel.saml.v2.metadata.SSODescriptorType;
import org.w3c.dom.Element;
@@ -98,6 +99,11 @@
List<EDTDescriptorChoiceType> edtDescChoices =
edtChoice.getDescriptors();
for( EDTDescriptorChoiceType edtDescChoice : edtDescChoices )
{
+ RoleDescriptorType roleDesc = edtDescChoice.getRoleDescriptor();
+
+ if( roleDesc != null )
+ throw new RuntimeException( "Role Descriptor type not handled"
);
+
IDPSSODescriptorType idpSSO = edtDescChoice.getIdpDescriptor();
if( idpSSO != null )
write( edtDescChoice.getIdpDescriptor() );
@@ -116,7 +122,10 @@
}
}
OrganizationType organization = entityDescriptor.getOrganization();
- writeOrganization(organization);
+ if( organization != null )
+ {
+ writeOrganization(organization);
+ }
List<ContactType> contactPersons = entityDescriptor.getContactPerson();
for( ContactType contact : contactPersons )
@@ -130,7 +139,7 @@
public void write( SSODescriptorType ssoDescriptor ) throws ProcessingException
{
- throw new RuntimeException( "should not called" );
+ throw new RuntimeException( "should not be called" );
}
public void write( SPSSODescriptorType spSSODescriptor ) throws ProcessingException
@@ -325,6 +334,8 @@
public void writeOrganization( OrganizationType org ) throws ProcessingException
{
+ if( org == null )
+ throw new ProcessingException( "Organization is null" );
StaxUtil.writeStartElement(writer, METADATA_PREFIX,
JBossSAMLConstants.ORGANIZATION.get(),
METADATA_NSURI.get());
Modified:
federation/trunk/picketlink-fed-core/src/test/java/org/picketlink/test/identity/federation/core/saml/v2/metadata/SAMLMetadataWriterUnitTestCase.java
===================================================================
---
federation/trunk/picketlink-fed-core/src/test/java/org/picketlink/test/identity/federation/core/saml/v2/metadata/SAMLMetadataWriterUnitTestCase.java 2011-02-23
17:11:52 UTC (rev 771)
+++
federation/trunk/picketlink-fed-core/src/test/java/org/picketlink/test/identity/federation/core/saml/v2/metadata/SAMLMetadataWriterUnitTestCase.java 2011-02-23
17:43:59 UTC (rev 772)
@@ -25,14 +25,24 @@
import java.io.ByteArrayOutputStream;
import java.io.InputStream;
+import java.net.URI;
+import java.util.ArrayList;
+import java.util.List;
import javax.xml.stream.XMLStreamWriter;
import org.junit.Test;
import org.picketlink.identity.federation.core.parsers.saml.SAMLParser;
+import
org.picketlink.identity.federation.core.saml.md.providers.MetaDataBuilderDelegate;
+import org.picketlink.identity.federation.core.saml.v2.util.DocumentUtil;
import org.picketlink.identity.federation.core.saml.v2.writers.SAMLMetadataWriter;
import org.picketlink.identity.federation.core.util.StaxUtil;
+import org.picketlink.identity.federation.newmodel.saml.v2.assertion.AttributeType;
+import org.picketlink.identity.federation.newmodel.saml.v2.metadata.EndpointType;
import
org.picketlink.identity.federation.newmodel.saml.v2.metadata.EntityDescriptorType;
+import org.picketlink.identity.federation.newmodel.saml.v2.metadata.KeyDescriptorType;
+import org.picketlink.identity.federation.newmodel.saml.v2.metadata.OrganizationType;
+import org.picketlink.identity.federation.newmodel.saml.v2.metadata.SPSSODescriptorType;
/**
@@ -84,4 +94,36 @@
System.out.println( new String( baos.toByteArray() ));
}
+
+ /**
+ * PLFED-142
+ * @throws Exception
+ */
+ @Test
+ public void testDynamicMetadataCreation() throws Exception
+ {
+ OrganizationType org = new OrganizationType();
+ AttributeType attributeType = new AttributeType( "hello" );
+ List<AttributeType> attributes = new ArrayList<AttributeType>();
+ attributes.add(attributeType);
+
+ URI test = URI.create( "http://test");
+ EndpointType sloEndPoint = new EndpointType( test, test );
+ KeyDescriptorType keyDescriptorType = new KeyDescriptorType();
+ String str = "<a/>";
+ keyDescriptorType.setKeyInfo( DocumentUtil.getDocument( str ).getDocumentElement()
);
+
+ SPSSODescriptorType spSSO = MetaDataBuilderDelegate.createSPSSODescriptor(false,
keyDescriptorType, sloEndPoint, attributes, org);
+ EntityDescriptorType entity =
MetaDataBuilderDelegate.createEntityDescriptor(spSSO);
+
+
+ ByteArrayOutputStream baos = new ByteArrayOutputStream();
+
+ XMLStreamWriter writer = StaxUtil.getXMLStreamWriter( baos );
+
+ //write it back
+ SAMLMetadataWriter mdWriter = new SAMLMetadataWriter( writer );
+ mdWriter.writeEntityDescriptor( entity ) ;
+ System.out.println( new String( baos.toByteArray() ));
+ }
}
\ No newline at end of file
Modified:
federation/trunk/picketlink-fed-model/src/main/java/org/picketlink/identity/federation/newmodel/saml/v2/metadata/EntityDescriptorType.java
===================================================================
---
federation/trunk/picketlink-fed-model/src/main/java/org/picketlink/identity/federation/newmodel/saml/v2/metadata/EntityDescriptorType.java 2011-02-23
17:11:52 UTC (rev 771)
+++
federation/trunk/picketlink-fed-model/src/main/java/org/picketlink/identity/federation/newmodel/saml/v2/metadata/EntityDescriptorType.java 2011-02-23
17:43:59 UTC (rev 772)
@@ -90,7 +90,15 @@
private PDPDescriptorType pdpDescriptor;
public EDTDescriptorChoiceType(RoleDescriptorType roleDescriptor)
{
- this.roleDescriptor = roleDescriptor;
+ if( roleDescriptor instanceof IDPSSODescriptorType )
+ {
+ this.idpDescriptor = (IDPSSODescriptorType) roleDescriptor;
+ }
+ else if( roleDescriptor instanceof SPSSODescriptorType )
+ {
+ this.spDescriptor = (SPSSODescriptorType) roleDescriptor;
+ }
+ else this.roleDescriptor = roleDescriptor;
}
public EDTDescriptorChoiceType(IDPSSODescriptorType idpDescriptor)
{
Show replies by date