Changeset 13


Ignore:
Timestamp:
10/23/11 19:00:31 (8 years ago)
Author:
philsmart
Message:
 
Location:
wayfless-url-generator/trunk/src/main
Files:
3 added
9 edited

Legend:

Unmodified
Added
Removed
  • wayfless-url-generator/trunk/src/main/java/uk/ac/cardiff/wayf/urlgenerator/metadata/DefaultSamlMetadataHandler.java

    r12 r13  
    2323    private final Logger log = LoggerFactory.getLogger(SamlMetadataHandler.class); 
    2424 
    25     public List getIdentityProviders() { 
     25    public List<EntityDescriptor> getIdentityProviders() { 
    2626        // TODO does not yet extract only identity providers 
    2727        ArrayList<EntityDescriptor> identityProviders = new ArrayList<EntityDescriptor>(); 
     
    2929            EntitiesDescriptor entitiesDdescriptor = (EntitiesDescriptor) metadataProvider.getMetadata(); 
    3030            List<EntitiesDescriptor> descriptors = entitiesDdescriptor.getEntitiesDescriptors(); 
    31             log.info("Has found {} EntitiesDescriptor(s)", descriptors.size()); 
     31            log.info("Has found {} EntitiesDescriptor(s) in total", descriptors.size()); 
    3232 
    3333            for (EntitiesDescriptor descriptor : descriptors) { 
     
    4343        return identityProviders; 
    4444    } 
     45 
     46    public List<EntityDescriptor> getServiceProviders() { 
     47        // TODO does not yet extract only identity providers 
     48        ArrayList<EntityDescriptor> serviceProviders = new ArrayList<EntityDescriptor>(); 
     49        try { 
     50            EntitiesDescriptor entitiesDdescriptor = (EntitiesDescriptor) metadataProvider.getMetadata(); 
     51            List<EntitiesDescriptor> descriptors = entitiesDdescriptor.getEntitiesDescriptors(); 
     52            log.info("Has found {} EntitiesDescriptor(s) in total", descriptors.size()); 
     53 
     54            for (EntitiesDescriptor descriptor : descriptors) { 
     55                List<EntityDescriptor> entities = descriptor.getEntityDescriptors(); 
     56                for (EntityDescriptor entity : entities) { 
     57                    serviceProviders.add(entity); 
     58                } 
     59            } 
     60 
     61        } catch (MetadataProviderException e) { 
     62            log.error("Could not retrieve metadata", e); 
     63        } 
     64        return serviceProviders; 
     65    } 
    4566} 
  • wayfless-url-generator/trunk/src/main/java/uk/ac/cardiff/wayf/urlgenerator/metadata/SamlMetadataHandler.java

    r12 r13  
    1010    public List<EntityDescriptor> getIdentityProviders(); 
    1111 
     12    public List<EntityDescriptor> getServiceProviders(); 
     13 
    1214} 
  • wayfless-url-generator/trunk/src/main/java/uk/ac/cardiff/wayf/urlgenerator/metadata/SamlMetadataResolver.java

    r12 r13  
    2020    } 
    2121 
     22    public List<EntityDescriptor> getServiceProviders() { 
     23        return metadataHandler.getServiceProviders(); 
     24    } 
     25 
    2226    /** 
    2327     * @param metadataHandler the metadataHandler to set 
  • wayfless-url-generator/trunk/src/main/java/uk/ac/cardiff/wugen/generator/service/impl/MetadataServiceImpl.java

    r12 r13  
    88 
    99import org.opensaml.saml2.metadata.EntityDescriptor; 
     10import org.opensaml.saml2.metadata.OrganizationDisplayName; 
    1011 
    1112import uk.ac.cardiff.wayf.urlgenerator.metadata.SamlMetadataResolver; 
     
    1617    private SamlMetadataResolver samlMetadataResolver; 
    1718 
     19    /** 
     20     * Returns a list of <code>SelectItem</code>s that represent identity providers from the loaded SAML metadata. 
     21     */ 
    1822    public List<SelectItem> getIdentityProviders() { 
    1923        List<EntityDescriptor> entities = samlMetadataResolver.getIdentityProviders(); 
     24        return convertToSelectItem(entities); 
     25    } 
     26 
     27    /** 
     28     * Returns a list of <code>SelectItem</code>s that represent service providers from the loaded SAML metadata. 
     29     */ 
     30    public List<SelectItem> getServiceProviders() { 
     31        List<EntityDescriptor> entities = samlMetadataResolver.getServiceProviders(); 
     32        return convertToSelectItem(entities); 
     33    } 
     34 
     35    /** 
     36     * Method that converts a list of <code>EntityDescriptor</code>s to a list of <code>SelectItem</code> for display. 
     37     * The entityID is used as the item key, and if one exists the Organization Display Name (the first one) is used as 
     38     * the item label. If an Organization Display Name does not exist, the entityId is used as the item label. 
     39     *  
     40     * @param entities that are converted to <code>SelectItem</code>s 
     41     * @return 
     42     */ 
     43    private List<SelectItem> convertToSelectItem(List<EntityDescriptor> entities) { 
     44        // TODO only entityId is being used due to a design issue with the richface comboBox, that is, it does not 
     45        // accept labels and values, just labels 
    2046        ArrayList<SelectItem> providerNames = new ArrayList<SelectItem>(); 
    2147        for (EntityDescriptor entity : entities) { 
    22             providerNames.add(new SelectItem(entity.getEntityID())); 
     48            SelectItem provider = null; 
     49            List<OrganizationDisplayName> displayNames = entity.getOrganization().getDisplayNames(); 
     50            if (displayNames != null && displayNames.size() > 0) { 
     51                String displayName = displayNames.get(0).getName().getLocalString(); 
     52                provider = new SelectItem(entity.getEntityID()); 
     53            } else { 
     54                provider = new SelectItem(entity.getEntityID()); 
     55            } 
     56            providerNames.add(provider); 
    2357        } 
    2458        return providerNames; 
  • wayfless-url-generator/trunk/src/main/webapp/WEB-INF/config/wugen-core.xml

    r12 r13  
    11<?xml version="1.0" encoding="UTF-8"?> 
    2 <!-- 
    3  
    4     Copyright (C) 2010 Cardiff University, Wales <smartp@cf.ac.uk> 
    5  
    6     Licensed under the Apache License, Version 2.0 (the "License"); 
    7     you may not use this file except in compliance with the License. 
    8     You may obtain a copy of the License at 
    9  
    10             http://www.apache.org/licenses/LICENSE-2.0 
    11  
    12     Unless required by applicable law or agreed to in writing, software 
    13     distributed under the License is distributed on an "AS IS" BASIS, 
    14     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 
    15     See the License for the specific language governing permissions and 
    16     limitations under the License. 
    17  
    18 --> 
    19 <beans xmlns="http://www.springframework.org/schema/beans" 
    20        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    21        xmlns:context="http://www.springframework.org/schema/context" 
    22        xsi:schemaLocation=" 
     2<!-- Copyright (C) 2010 Cardiff University, Wales <smartp@cf.ac.uk> Licensed under the Apache License, Version 2.0 (the "License");  
     3    you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0  
     4    Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS  
     5    IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language  
     6    governing permissions and limitations under the License. --> 
     7<beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
     8    xmlns:context="http://www.springframework.org/schema/context" 
     9    xsi:schemaLocation=" 
    2310           http://www.springframework.org/schema/beans 
    2411           http://www.springframework.org/schema/beans/spring-beans-2.5.xsd 
     
    2714 
    2815 
    29         <bean id="wugenEngine" class="uk.ac.cardiff.wugen.generator.engine.WugenEngine"> 
    30         <property name="metadataResolver"><ref bean="samlMetadataResolver"/></property>  
    31         </bean> 
    32      
     16    <bean id="wugenEngine" class="uk.ac.cardiff.wugen.generator.engine.WugenEngine"> 
     17        <property name="metadataResolver"> 
     18            <ref bean="samlMetadataResolver" /> 
     19        </property> 
     20    </bean> 
     21 
    3322    <bean id="metadataService" class="uk.ac.cardiff.wugen.generator.service.impl.MetadataServiceImpl"> 
    34         <property name="samlMetadataResolver"><ref bean="samlMetadataResolver"/></property>  
     23        <property name="samlMetadataResolver"> 
     24            <ref bean="samlMetadataResolver" /> 
     25        </property> 
    3526    </bean> 
    36          
    37         <bean id="samlMetadataResolver" class=" uk.ac.cardiff.wayf.urlgenerator.metadata.SamlMetadataResolver"> 
    38            <property name="metadataHandler"><ref bean="samlMetadataHandler"/></property> 
    39         </bean> 
    40          
    41         <bean id="samlMetadataHandler" class=" uk.ac.cardiff.wayf.urlgenerator.metadata.DefaultSamlMetadataHandler"> 
    42            <property name="samlMetadata"> 
     27 
     28    <bean id="setupService" class="uk.ac.cardiff.wugen.generator.service.impl.SetupServiceImpl"> 
     29        <property name="samlMetadataResolver"> 
     30            <ref bean="samlMetadataResolver" /> 
     31        </property> 
     32    </bean> 
     33 
     34    <bean id="samlMetadataResolver" class=" uk.ac.cardiff.wayf.urlgenerator.metadata.SamlMetadataResolver"> 
     35        <property name="metadataHandler"> 
     36            <ref bean="samlMetadataHandler" /> 
     37        </property> 
     38    </bean> 
     39 
     40    <bean id="samlMetadataHandler" class=" uk.ac.cardiff.wayf.urlgenerator.metadata.DefaultSamlMetadataHandler"> 
     41        <property name="samlMetadata"> 
    4342            <list> 
    4443                <bean class="org.opensaml.saml2.metadata.provider.FileBackedHTTPMetadataProvider"> 
    45                     <constructor-arg index="0" value="http://iam.cf.ac.uk/cufederation/metadata.cufederation.xml"/> 
    46                     <constructor-arg index="1" value="50000"/> 
    47                     <constructor-arg index="2" value="/tmp/metadata.xml"/> 
     44                    <constructor-arg index="0" value="http://iam.cf.ac.uk/cufederation/metadata.cufederation.xml" /> 
     45                    <constructor-arg index="1" value="50000" /> 
     46                    <constructor-arg index="2" value="/tmp/metadata.xml" /> 
    4847                </bean> 
    49                  <bean class="org.opensaml.saml2.metadata.provider.FileBackedHTTPMetadataProvider"> 
    50                     <constructor-arg index="0" value="http://iam.cf.ac.uk/cufederation/metadata.cufederation.xml"/> 
    51                     <constructor-arg index="1" value="50000"/> 
    52                     <constructor-arg index="2" value="/tmp/metadata-uk-fed.xml"/> 
     48                <bean class="org.opensaml.saml2.metadata.provider.FileBackedHTTPMetadataProvider"> 
     49                    <constructor-arg index="0" value="http://iam.cf.ac.uk/cufederation/metadata.cufederation.xml" /> 
     50                    <constructor-arg index="1" value="50000" /> 
     51                    <constructor-arg index="2" value="/tmp/metadata-uk-fed.xml" /> 
    5352                </bean> 
    54                  
     53 
    5554            </list> 
    56        </property> 
    57         </bean> 
     55        </property> 
     56    </bean> 
    5857 
    5958</beans> 
  • wayfless-url-generator/trunk/src/main/webapp/WEB-INF/flows/generate/generate-subflow.xml

    r11 r13  
    22    xsi:schemaLocation="http://www.springframework.org/schema/webflow http://www.springframework.org/schema/webflow/spring-webflow-2.0.xsd"> 
    33 
     4    <on-start> 
     5        <evaluate expression="setupService.initialiseInformationBean()" result="flowScope.selectedInformation" /> 
     6    </on-start> 
     7 
    48 
    59    <view-state id="wayfIdpSelector" view="wayfIdpSelector.xhtml"> 
    6          <on-entry> 
    7             <evaluate expression="metadataService.getIdentityProviders()" result="viewScope.idpSelection" /> 
    8         </on-entry> 
     10         
    911        <transition on="spSelectorTrans" to="spSelector" /> 
    1012 
     
    1315 
    1416    <view-state id="spSelector" view="spSelector.xhtml"> 
    15         <transition on="resultsTrans" to="wugResults"/> 
     17        <on-entry> 
     18            <evaluate expression="metadataService.getServiceProviders()" result="viewScope.spSelection" /> 
     19        </on-entry> 
     20        <transition on="resultsTrans" to="wugResults" /> 
    1621 
    1722 
     
    2025 
    2126    <view-state id="wugResults" view="wugResults.xhtml"> 
    22          <transition on="done" to="successfullCreate"/> 
     27        <transition on="done" to="successfullCreate" /> 
    2328 
    2429    </view-state> 
  • wayfless-url-generator/trunk/src/main/webapp/WEB-INF/flows/generate/main-flow.xml

    r11 r13  
    99 
    1010 
     11 
     12 
    1113    <view-state id="generatorStart" view="generatorStart.xhtml"> 
    12         <transition on="generateTrans" to="generateSubflow"/> 
     14        <transition on="generateTrans" to="generateSubflow" /> 
    1315 
    1416    </view-state> 
    15      
    16      
     17 
     18 
    1719    <!-- wayfless generation subflow --> 
    1820    <subflow-state id="generateSubflow" subflow="generate-sub-flow"> 
    19          
     21 
    2022        <transition on="successfullCreate" to="generatorStart" /> 
    21          
     23 
    2224    </subflow-state> 
    2325 
  • wayfless-url-generator/trunk/src/main/webapp/WEB-INF/flows/generate/spSelector.xhtml

    r11 r13  
    1919 "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
    2020<ui:composition xmlns="http://www.w3.org/1999/xhtml" 
    21     xmlns:ui="http://java.sun.com/jsf/facelets" 
    22     xmlns:h="http://java.sun.com/jsf/html" 
    23     xmlns:f="http://java.sun.com/jsf/core" 
    24     xmlns:sf="http://www.springframework.org/tags/faces" 
    25     xmlns:a4j="http://richfaces.org/a4j" 
    26     xmlns:rich="http://richfaces.org/rich" template="/template/full.xhtml"> 
     21        xmlns:ui="http://java.sun.com/jsf/facelets" 
     22        xmlns:h="http://java.sun.com/jsf/html" 
     23        xmlns:f="http://java.sun.com/jsf/core" 
     24        xmlns:sf="http://www.springframework.org/tags/faces" 
     25        xmlns:a4j="http://richfaces.org/a4j" 
     26        xmlns:rich="http://richfaces.org/rich" template="/template/full.xhtml"> 
    2727 
    28     <ui:define name="content"> 
     28        <ui:define name="content"> 
    2929 
    30         <rich:panel bodyClass="rich-laguna-panel-no-header"> 
     30                <rich:panel bodyClass="rich-laguna-panel-no-header"> 
    3131        Please select the Service Provider you want to include in the Wayfless URL. 
    3232         
    33         <rich:spacer height="20xpx" /> 
    34             <center> 
    35                 <h:form id="buttonSelectForm"> 
    36                     <h:commandButton value="Next" action="resultsTrans" /> 
    37                 </h:form> 
    38             </center> 
    39         </rich:panel> 
     33         
     34                         
     35                         <h:form id="SpSelectForm"> 
     36                                <h:panelGrid columns="2" width="350px"> 
     37                                        <h:inputText style="margin:0px;" id="providerInput" size="70" 
     38                                                value="#{flowScope.selectedInformation.selectedSpEntity}" /> 
     39                                        <h:graphicImage value="/template/images/img01.jpg" 
     40                                                onclick="#{rich:component('spSuggestionBox')}.callSuggestion(true)" 
     41                                                alt="" /> 
     42                                </h:panelGrid> 
     43 
     44                                <rich:suggestionbox width="500" 
     45                                        suggestionAction="#{flowScope.selectedInformation.autocompleteSpFieldValues}" 
     46                                        var="provider" fetchValue="#{provider.value}" for="providerInput" 
     47                                        id="spSuggestionBox"> 
     48                                        <h:column> 
     49                                                <h:outputText value="#{provider.label}" /> 
     50                                        </h:column> 
     51                                        <h:column> 
     52                                                <h:outputText value=" (#{provider.value})" /> 
     53                                        </h:column> 
     54                                        <a4j:support event="onselect" /> 
     55                                </rich:suggestionbox> 
     56 
     57                        </h:form> 
     58 
     59                        <rich:spacer height="20xpx" /> 
     60                        <center> 
     61                                <h:form id="buttonSelectForm"> 
     62                                        <h:commandButton value="Next" action="resultsTrans" /> 
     63                                </h:form> 
     64                        </center> 
     65                </rich:panel> 
    4066 
    4167 
    42     </ui:define> 
     68        </ui:define> 
    4369</ui:composition> 
  • wayfless-url-generator/trunk/src/main/webapp/WEB-INF/flows/generate/wayfIdpSelector.xhtml

    r12 r13  
    3131        Please select the Identity Provider you want to include in the Wayfless URL. 
    3232         
    33         <rich:comboBox selectFirstOnUpdate="false" 
    34                                 defaultLabel="Please Select Your IdP"> 
    35                                 <f:selectItems value="#{viewScope.idpSelection}" /> 
    36                         </rich:comboBox> 
     33        <h:form id="idpSelectForm"> 
     34                                <h:panelGrid columns="2" width="350px" > 
     35                                        <h:inputText style="margin:0px;" id="providerInput" size="70" value="#{flowScope.selectedInformation.selectedIdPEntity}"/> 
     36                                        <h:graphicImage value="/template/images/img01.jpg" 
     37                                                onclick="#{rich:component('idpSuggestionBox')}.callSuggestion(true)" 
     38                                                alt="" /> 
     39                                </h:panelGrid> 
     40 
     41                                <rich:suggestionbox width="500" 
     42                                        suggestionAction="#{flowScope.selectedInformation.autocompleteIdPFieldValues}" 
     43                                        var="provider" fetchValue="#{provider.value}" for="providerInput" id="idpSuggestionBox"> 
     44                                        <h:column> 
     45                                                <h:outputText value="#{provider.label}" /> 
     46                                        </h:column> 
     47                                        <h:column> 
     48                                                <h:outputText value=" (#{provider.value})" /> 
     49                                        </h:column> 
     50                                         <a4j:support event="onselect" /> 
     51                                </rich:suggestionbox> 
     52 
     53                        </h:form> 
    3754 
    3855                        <rich:spacer height="20xpx" /> 
Note: See TracChangeset for help on using the changeset viewer.