From dcece198527eb3012a081402ad2e117e2136a4a4 Mon Sep 17 00:00:00 2001 From: Leif Johansson Date: Mon, 1 Aug 2011 11:30:31 +0200 Subject: import trunk@2167 --- .../middleware/shibboleth/wayf/IdPSite.html | 250 --------------------- 1 file changed, 250 deletions(-) delete mode 100644 doc/src-xref/edu/internet2/middleware/shibboleth/wayf/IdPSite.html (limited to 'doc/src-xref/edu/internet2/middleware/shibboleth/wayf/IdPSite.html') diff --git a/doc/src-xref/edu/internet2/middleware/shibboleth/wayf/IdPSite.html b/doc/src-xref/edu/internet2/middleware/shibboleth/wayf/IdPSite.html deleted file mode 100644 index 5457cfd..0000000 --- a/doc/src-xref/edu/internet2/middleware/shibboleth/wayf/IdPSite.html +++ /dev/null @@ -1,250 +0,0 @@ - - - - -IdPSite xref - - - -
View Javadoc
-
-1   /*
-2    * Copyright [2005] [University Corporation for Advanced Internet Development, Inc.]
-3    *
-4    * Licensed under the Apache License, Version 2.0 (the "License");
-5    * you may not use this file except in compliance with the License.
-6    * You may obtain a copy of the License at
-7    *
-8    * http://www.apache.org/licenses/LICENSE-2.0
-9    *
-10   * Unless required by applicable law or agreed to in writing, software
-11   * distributed under the License is distributed on an "AS IS" BASIS,
-12   * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-13   * See the License for the specific language governing permissions and
-14   * limitations under the License.
-15   */
-16  
-17  package edu.internet2.middleware.shibboleth.wayf;
-18  
-19  import java.util.Comparator;
-20  import java.util.List;
-21  import java.util.Locale;
-22  
-23  import javax.servlet.http.HttpServletRequest;
-24  
-25  import org.opensaml.saml2.common.Extensions;
-26  import org.opensaml.saml2.metadata.EntityDescriptor;
-27  import org.opensaml.saml2.metadata.IDPSSODescriptor;
-28  import org.opensaml.saml2.metadata.Organization;
-29  import org.opensaml.saml2.metadata.OrganizationDisplayName;
-30  import org.opensaml.saml2.metadata.SingleSignOnService;
-31  
-32  /**
-33   * A class which abstracts an IdP for the sake of the WAYF display.  Given an {@link EntityDescriptor} as
-34   * input it provides bean style get functions for the name (EntityId), the display name 
-35   * (a hybrid of Organization name or EntityId and the IdP's SSO connection point.
-36   * 
-37   */
-38  public class IdPSite {
-39  
-40      /** The OpenSaml element that this stands for. */
-41      private EntityDescriptor entity;
-42      
-43      /** The language we set up */
-44      private String displayLanguage;
-45      
-46      /**
-47       * Create a new element from the provided Entity.
-48       * @param entityParam - What to create from
-49       */
-50      public IdPSite(EntityDescriptor entityParam) {
-51          entity = entityParam;
-52      }
-53      
-54      /**
-55       * Get the name for the enclosed entity. 
-56       * @return the name for the enclosed entity.
-57       */
-58      public String getName() {
-59              return entity.getEntityID();
-60      }
-61      
-62      /**
-63       * Get the user friendly name for the entity, collecting the locale from the 
-64       * browser if possible
-65       * @param req the request
-66       * @return a user friendly name.
-67       */
-68      public String getDisplayName(HttpServletRequest req) {
-69          //
-70          // Get the browser locale, failing that the server one
-71          //
-72          Locale locale = req.getLocale();
-73          if (null == locale) {
-74              Locale.getDefault();
-75          }
-76          String lang = locale.getLanguage();
-77              
-78          return getDisplayName(lang);
-79      }
-80      /**
-81       * Get the user friendly name for the entity, using provided language
-82       * @param lang the language.
-83       * 
-84       * @return a user friendly name.
-85       */
-86      private String getDisplayName(String lang) {
-87          Organization org = entity.getOrganization();
-88      
-89          if (org == null) {
-90              return entity.getEntityID();
-91          } 
-92          
-93          List<OrganizationDisplayName> list = org.getDisplayNames();
-94  
-95          //
-96          // Lookup first by locale
-97          //
-98          
-99          for (OrganizationDisplayName name:list) {
-100             if (null !=name && lang.equals(name.getName().getLanguage())) {
-101                 return name.getName().getLocalString();
-102             }
-103         }
-104         
-105         //
-106         // If that doesn't work then anything goes
-107         //
-108         
-109         for (OrganizationDisplayName name:list) {
-110             if (null !=name && null != name.getName().getLocalString()) {
-111                 return name.getName().getLocalString();
-112             }
-113         }
-114      
-115         //
-116         // If there is still nothing then use the entity Id
-117         //
-118         return entity.getEntityID();
-119     }
-120     /**
-121      * Get the user friendly name for the entity, the language we previously set up.
-122      * 
-123      * @return a user friendly name.
-124      */
-125     public String getDisplayName() {
-126         return getDisplayName(displayLanguage);
-127     }
-128     
-129     /**
-130      * Return all the extension elements.
-131      * @return the extensions
-132      */
-133     public Extensions getExtensions() {
-134         IDPSSODescriptor idpss = entity.getIDPSSODescriptor(XMLConstants.SHIB_NS);
-135         if (null == idpss) {
-136             //
-137             // Get the SAML2 protocol
-138             //
-139             idpss = entity.getIDPSSODescriptor(XMLConstants.SALM2_PROTOCOL);
-140         }
-141         if (null == idpss) {
-142             return null;
-143         }
-144         return idpss.getExtensions();
-145     }
-146     
-147     /**
-148      * Comparison so we can sort the output for jsp.
-149      * @param What to compare against
-150      * @return numeric encoding of comparison 
-151      * @see java.lang.Comparator
-152      */
-153     protected int compareTo(Object o, HttpServletRequest req) {
-154             
-155 
-156         String myDisplayName;
-157         String otherDisplayName;
-158         IdPSite other;
-159 
-160         if (equals(o)) {
-161             return 0;
-162         }
-163 
-164         myDisplayName = getDisplayName(req);
-165         if (null == myDisplayName) {
-166             myDisplayName = "";
-167         } 
-168         
-169         other = (IdPSite) o;
-170         otherDisplayName = other.getDisplayName(req);
-171         if (null == otherDisplayName) {
-172             otherDisplayName = "";
-173         }
-174 
-175         int result = myDisplayName.toLowerCase().compareTo(otherDisplayName.toLowerCase());
-176         if (result == 0) {
-177                 result = myDisplayName.compareTo(otherDisplayName);
-178         }
-179         return result;
-180     }
-181 
-182     /**
-183      * When a user has selected an IdP, this provides the address to which we redirect.
-184      * @return http address for the IdP this represents.  
-185      */
-186     public String getAddressForWAYF() {
-187         List<SingleSignOnService> ssoList;
-188         
-189         ssoList = entity.getIDPSSODescriptor(XMLConstants.SHIB_NS).getSingleSignOnServices();
-190         
-191         for (SingleSignOnService signOnService: ssoList) {
-192             if (XMLConstants.IDP_SSO_BINDING.equals(signOnService.getBinding())) {
-193                 return signOnService.getLocation();
-194             }
-195         }
-196         return null;
-197     }
-198 
-199     /**
-200      * Prior to display we set the display language from the
-201      * browser. There is probably a proper way to do this using
-202      * jsp, but I want to keep the API between JSP and java the same 1.3->2.0
-203      * @param lang the language to set
-204      */
-205     public void setDisplayLanguage(String lang) {
-206         this.displayLanguage = lang;
-207     }
-208     
-209     public static class Compare implements Comparator<IdPSite> {
-210 
-211         /**
-212          * This allows us to set up sorted lists of entities with respect to
-213          * the browser request.
-214          * 
-215          * @see java.util.Comparator#compare(java.lang.Object, java.lang.Object)
-216          */
-217         private HttpServletRequest req = null;
-218         
-219         private Compare() {
-220             //
-221             // No public method
-222         }
-223         
-224         public Compare(HttpServletRequest req) {
-225             this.req = req;
-226         }
-227         
-228         public int compare(IdPSite o1, IdPSite o2) {
-229             // TODO Auto-generated method stub
-230             return o1.compareTo(o2, req);
-231         }
-232         
-233     }
-234 
-235 }       
-236 
-
-
- - -- cgit v1.1