Author: anil.saldhana(a)jboss.com
Date: 2010-12-16 16:14:08 -0500 (Thu, 16 Dec 2010)
New Revision: 604
Modified:
federation/trunk/picketlink-fed-core/src/main/java/org/picketlink/identity/federation/core/saml/v2/metadata/store/FileBasedMetadataConfigurationStore.java
Log:
further metadata writing
Modified:
federation/trunk/picketlink-fed-core/src/main/java/org/picketlink/identity/federation/core/saml/v2/metadata/store/FileBasedMetadataConfigurationStore.java
===================================================================
---
federation/trunk/picketlink-fed-core/src/main/java/org/picketlink/identity/federation/core/saml/v2/metadata/store/FileBasedMetadataConfigurationStore.java 2010-12-15
22:28:09 UTC (rev 603)
+++
federation/trunk/picketlink-fed-core/src/main/java/org/picketlink/identity/federation/core/saml/v2/metadata/store/FileBasedMetadataConfigurationStore.java 2010-12-16
21:14:08 UTC (rev 604)
@@ -35,19 +35,21 @@
import java.util.Set;
import java.util.StringTokenizer;
-import javax.xml.bind.JAXBElement;
-import javax.xml.bind.JAXBException;
-import javax.xml.bind.Marshaller;
-import javax.xml.bind.Unmarshaller;
import javax.xml.stream.XMLStreamWriter;
import org.apache.log4j.Logger;
import org.picketlink.identity.federation.core.constants.PicketLinkFederationConstants;
+import org.picketlink.identity.federation.core.exceptions.ParsingException;
import org.picketlink.identity.federation.core.exceptions.ProcessingException;
+import
org.picketlink.identity.federation.core.parsers.saml.metadata.SAMLEntityDescriptorParser;
+import org.picketlink.identity.federation.core.parsers.util.StaxParserUtil;
import org.picketlink.identity.federation.core.saml.v2.writers.SAMLMetadataWriter;
-import org.picketlink.identity.federation.core.util.JAXBUtil;
import org.picketlink.identity.federation.core.util.StaxUtil;
import
org.picketlink.identity.federation.newmodel.saml.v2.metadata.EntityDescriptorType;
+import
org.picketlink.identity.federation.newmodel.saml.v2.metadata.EntityDescriptorType.EDTChoiceType;
+import
org.picketlink.identity.federation.newmodel.saml.v2.metadata.EntityDescriptorType.EDTDescriptorChoiceType;
+import
org.picketlink.identity.federation.newmodel.saml.v2.metadata.IDPSSODescriptorType;
+import org.picketlink.identity.federation.newmodel.saml.v2.metadata.SPSSODescriptorType;
/**
* File based metadata store that uses
@@ -65,8 +67,6 @@
private String baseDirectory = null;
- private String pkgName =
"org.picketlink.identity.federation.saml.v2.metadata";
-
public FileBasedMetadataConfigurationStore()
{
bootstrap();
@@ -168,15 +168,25 @@
/**
* @see IMetadataConfigurationStore#load(String)
- */
- @SuppressWarnings("unchecked")
+ */
public EntityDescriptorType load(String id) throws IOException
{
File persistedFile = validateIdAndReturnMDFile(id);
+
+ SAMLEntityDescriptorParser parser = new SAMLEntityDescriptorParser();
+ try
+ {
+ return (EntityDescriptorType) parser.parse( StaxParserUtil.getXMLEventReader(
new FileInputStream( persistedFile )) );
+ }
+ catch (ParsingException e)
+ {
+ throw new RuntimeException( e );
+ }/*
Unmarshaller un;
try
{
+
un = JAXBUtil.getUnmarshaller(pkgName);
JAXBElement<EntityDescriptorType> je =
(JAXBElement<EntityDescriptorType>) un.unmarshal(persistedFile);
@@ -187,7 +197,7 @@
IOException ioe =new IOException(e.getLocalizedMessage());
ioe.initCause(e);
throw ioe;
- }
+ }*/
}
@@ -195,10 +205,7 @@
* @see IMetadataConfigurationStore#persist(EntityDescriptorType, String)
*/
public void persist(EntityDescriptorType entity, String id) throws IOException
- {
- boolean isIDP = false;
- boolean isSP = false;
-
+ {
File persistedFile = validateIdAndReturnMDFile(id);
try
@@ -211,55 +218,28 @@
catch (ProcessingException e)
{
throw new RuntimeException( e );
- }
-
-
- /*ObjectFactory of = new ObjectFactory();
-
- JAXBElement<?> jentity = of.createEntityDescriptor(entity);
-
- Marshaller m;
- try
- {
- m = JAXBUtil.getMarshaller(pkgName);
- m.marshal(jentity, persistedFile);
- }
- catch (JAXBException e)
- {
- IOException ioe =new IOException(e.getLocalizedMessage());
- ioe.initCause(e);
- throw ioe;
- }*/
+ }
if(trace) log.trace("Persisted into " + persistedFile.getPath());
-
-
- throw new RuntimeException();
- /*//We need to figure out whether this is sp or idp from the entity data
- List<RoleDescriptorType> roleDescriptorTypes =
entity..getRoleDescriptorOrIDPSSODescriptorOrSPSSODescriptor();
- for( RoleDescriptorType rdt: roleDescriptorTypes )
+ //Process the EDT
+ List<EDTChoiceType> edtChoiceTypeList = entity.getChoiceType();
+ for( EDTChoiceType edtChoiceType : edtChoiceTypeList )
{
- if( rdt instanceof IDPSSODescriptorType )
+ List<EDTDescriptorChoiceType> edtDescriptorChoiceTypeList =
edtChoiceType.getDescriptors();
+ for( EDTDescriptorChoiceType edtDesc : edtDescriptorChoiceTypeList )
{
- isIDP = true;
- break;
- }
- if( rdt instanceof SPSSODescriptorType )
- {
- isSP = true;
- break;
- }
- }
-
- if( isSP )
- {
- addServiceProvider(id);
- }
- else if( isIDP )
- {
- addIdentityProvider( id);
- }
- */
+ IDPSSODescriptorType idpSSO = edtDesc.getIdpDescriptor();
+ if( idpSSO != null )
+ {
+ addIdentityProvider(id);
+ }
+ SPSSODescriptorType spSSO = edtDesc.getSpDescriptor();
+ if( spSSO != null )
+ {
+ addServiceProvider(id);
+ }
+ }
+ }
}
/**
Show replies by date