Changeset 1079


Ignore:
Timestamp:
08/14/11 22:48:01 (9 years ago)
Author:
philsmart
Message:
 
File:
1 edited

Legend:

Unmodified
Added
Removed
  • raptor-mua/trunk/src/main/java/uk/ac/cardiff/raptormua/engine/statistics/processor/SamlMetadataNameFormatter.java

    r1052 r1079  
    1717 * 
    1818 */ 
     19 
    1920package uk.ac.cardiff.raptormua.engine.statistics.processor; 
    2021 
     
    2223import java.util.ArrayList; 
    2324import java.util.List; 
    24 import java.util.concurrent.locks.Lock; 
    2525 
    2626import org.opensaml.DefaultBootstrap; 
    27 import org.opensaml.saml2.metadata.EntitiesDescriptor; 
    2827import org.opensaml.saml2.metadata.EntityDescriptor; 
    29 import org.opensaml.saml2.metadata.Organization; 
     28import org.opensaml.saml2.metadata.OrganizationDisplayName; 
    3029import org.opensaml.saml2.metadata.OrganizationName; 
    31 import org.opensaml.saml2.metadata.OrganizationDisplayName; 
    3230import org.opensaml.saml2.metadata.provider.FilesystemMetadataProvider; 
    3331import org.opensaml.saml2.metadata.provider.MetadataProvider; 
    3432import org.opensaml.saml2.metadata.provider.MetadataProviderException; 
    3533import org.opensaml.xml.ConfigurationException; 
    36 import org.opensaml.xml.parse.BasicParserPool; //import org.opensaml.saml2.metadata.provider.FileBackedHTTPMetadataProvider; 
     34import org.opensaml.xml.parse.BasicParserPool; 
    3735import org.slf4j.Logger; 
    3836import org.slf4j.LoggerFactory; 
    39 //import org.opensaml.saml2.metadata.provider.MetadataProviderException; 
    4037 
    4138import uk.ac.cardiff.raptormua.engine.statistics.StatisticsPostProcessor; 
     
    4340import uk.ac.cardiff.raptormua.engine.statistics.records.Observation; 
    4441 
    45  
    4642/** 
    4743 * @author philsmart 
    48  * 
     44 *  
    4945 */ 
    5046public class SamlMetadataNameFormatter implements StatisticsPostProcessor { 
     
    6258    private String SAMLMetadataURI; 
    6359 
    64     public SamlMetadataNameFormatter(List<String> SAMLMetadataURIs) {    
    65         try { 
    66             providers = new ArrayList<MetadataProvider>(); 
    67             loadSAMLMetadata(SAMLMetadataURIs); 
    68         } catch (MetadataProviderException e) { 
    69             log.error("ShibbolethMetadataNameFormatter could not load SAML metadata file",e); 
    70            
    71         } catch (ConfigurationException e) { 
    72             log.error("Error parsing SAML metadata file ",e); 
    73         } 
     60    public SamlMetadataNameFormatter(List<String> SAMLMetadataURIs) { 
     61        try { 
     62            providers = new ArrayList<MetadataProvider>(); 
     63            loadSAMLMetadata(SAMLMetadataURIs); 
     64        } catch (MetadataProviderException e) { 
     65            log.error("ShibbolethMetadataNameFormatter could not load SAML metadata file", e); 
     66 
     67        } catch (ConfigurationException e) { 
     68            log.error("Error parsing SAML metadata file ", e); 
     69        } 
    7470    } 
    75      
    76     public SamlMetadataNameFormatter(String SAMLMetadataURI) {        
     71 
     72    public SamlMetadataNameFormatter(String SAMLMetadataURI) { 
    7773        try { 
    7874            providers = new ArrayList<MetadataProvider>(); 
     
    8177            loadSAMLMetadata(SAMLMetadataURIs); 
    8278        } catch (MetadataProviderException e) { 
    83             log.error("ShibbolethMetadataNameFormatter could not load SAML metadata file",e); 
    84            
     79            log.error("ShibbolethMetadataNameFormatter could not load SAML metadata file", e); 
     80 
    8581        } catch (ConfigurationException e) { 
    86             log.error("Error parsing SAML metadata file ",e); 
     82            log.error("Error parsing SAML metadata file ", e); 
    8783        } 
    8884    } 
    8985 
     86    public Observation[] postProcess(Observation[] observations) throws PostprocessorException { 
     87        log.debug("{} post processor called, entries into postprocessor: {}", this.getClass(), observations.length); 
     88        for (Observation obs : observations) { 
     89            if (obs instanceof Group) { 
     90                Group obsG = (Group) obs; 
     91                String oldName = obsG.getGroupName(); 
     92                String mapTo = null; 
     93                try { 
     94                    mapTo = getOrganisationDisplayName(oldName); 
     95                } catch (Exception e) { 
     96                    // do nothing, so keep original 
     97                } 
     98                if (mapTo != null) 
     99                    obsG.setGroupName(mapTo); 
    90100 
    91         public Observation[] postProcess(Observation[] observations) throws PostprocessorException { 
    92                 log.debug("Entries into postprocessor: {}",observations.length); 
    93                 for (Observation obs : observations) { 
    94                     if (obs instanceof Group) { 
    95                         Group obsG = (Group)obs; 
    96                         String oldName = obsG.getGroupName(); 
    97                         String mapTo = null; 
    98                             try { 
    99                                 mapTo = getOrganisationDisplayName(oldName); 
    100                             } catch (Exception e) { 
    101                                   //do nothing, so keep original 
    102                             } 
    103                             if (mapTo!=null) 
    104                                 obsG.setGroupName(mapTo); 
     101            } 
    105102 
    106                     } 
    107  
    108                 } 
    109                 return observations; 
    110         } 
     103        } 
     104        return observations; 
     105    } 
    111106 
    112107    /** 
    113      * This method returns the organizational name of the entityID passed into it from the SAML metadata This will fail if the organizational name is not the 
    114      * first name in the list of organizational names can use https://idp.cardiff.ac.uk/shibboleth for testing. 
    115      * 
     108     * This method returns the organizational name of the entityID passed into it from the SAML metadata This will fail 
     109     * if the organizational name is not the first name in the list of organizational names can use 
     110     * https://idp.cardiff.ac.uk/shibboleth for testing. 
     111     *  
    116112     * @param entityID 
    117113     * @return 
     
    119115     */ 
    120116    private String getOrganisationName(String entityID) throws MetadataProviderException, NullPointerException { 
    121         OrganizationName org = (OrganizationName) getEntityDescriptor(entityID).getOrganization().getOrganizationNames().get(0); 
    122         return org.getName().getLocalString(); 
     117        OrganizationName org = 
     118                (OrganizationName) getEntityDescriptor(entityID).getOrganization().getOrganizationNames().get(0); 
     119        return org.getName().getLocalString(); 
    123120    } 
    124121 
    125122    /** 
    126      * This method returns the organizational display name of the entityID passed into it from the SAML metadata This will fail if the organizational name is not the 
    127      * first name in the list of organizational names can use https://idp.cardiff.ac.uk/shibboleth for testing. 
    128      * 
     123     * This method returns the organizational display name of the entityID passed into it from the SAML metadata This 
     124     * will fail if the organizational name is not the first name in the list of organizational names can use 
     125     * https://idp.cardiff.ac.uk/shibboleth for testing. 
     126     *  
    129127     * @param entityID 
    130128     * @return 
     
    132130     */ 
    133131    private String getOrganisationDisplayName(String entityID) throws MetadataProviderException, NullPointerException { 
    134         OrganizationDisplayName orgName = (OrganizationDisplayName) getEntityDescriptor(entityID).getOrganization().getDisplayNames().get(0); 
    135         return orgName.getName().getLocalString(); 
     132        OrganizationDisplayName orgName = 
     133                (OrganizationDisplayName) getEntityDescriptor(entityID).getOrganization().getDisplayNames().get(0); 
     134        return orgName.getName().getLocalString(); 
    136135    } 
    137      
     136 
    138137    /** 
    139138     * Gets the valid metadata for a given entity. 
     
    146145     *             is simply no EntityDescriptor with the given ID 
    147146     */ 
    148     public EntityDescriptor getEntityDescriptor(String entityID) throws MetadataProviderException {       
     147    public EntityDescriptor getEntityDescriptor(String entityID) throws MetadataProviderException { 
    149148        EntityDescriptor descriptor = null; 
    150149        try { 
    151150            for (MetadataProvider provider : providers) { 
    152                 log.debug("Checking child metadata provider for entity descriptor with entity ID: {}", entityID); 
     151                log.trace("Checking child metadata provider for entity descriptor with entity ID: {}", entityID); 
    153152                descriptor = provider.getEntityDescriptor(entityID); 
    154153                if (descriptor != null) { 
     
    162161    } 
    163162 
    164     private void loadSAMLMetadata(List<String> SAMLMetadataURIs) throws MetadataProviderException, ConfigurationException { 
    165         DefaultBootstrap.bootstrap(); 
    166         parser = new BasicParserPool(); 
    167         parser.setNamespaceAware(true); 
    168          
    169         for (String metadataURI : SAMLMetadataURIs){ 
    170                 FilesystemMetadataProvider provider = new FilesystemMetadataProvider(new File(metadataURI)); 
    171                 provider.setParserPool(parser); 
    172                 provider.initialize(); 
    173                 providers.add(provider); 
    174                 log.debug("Loaded SAML metatada {}",metadataURI); 
    175         } 
     163    private void loadSAMLMetadata(List<String> SAMLMetadataURIs) throws MetadataProviderException, 
     164            ConfigurationException { 
     165        DefaultBootstrap.bootstrap(); 
     166        parser = new BasicParserPool(); 
     167        parser.setNamespaceAware(true); 
     168 
     169        for (String metadataURI : SAMLMetadataURIs) { 
     170            FilesystemMetadataProvider provider = new FilesystemMetadataProvider(new File(metadataURI)); 
     171            provider.setParserPool(parser); 
     172            provider.initialize(); 
     173            providers.add(provider); 
     174            log.debug("Loaded SAML metatada {}", metadataURI); 
     175        } 
    176176    } 
    177  
    178177 
    179178    /** 
     
    184183    } 
    185184 
    186  
    187185    /** 
    188186     * @return the providers 
     
    192190    } 
    193191 
    194  
    195  
    196192} 
Note: See TracChangeset for help on using the changeset viewer.