taylor      2005/01/03 00:13:37

  Modified:    components/sso/src/java/org/apache/jetspeed/sso/impl
                        PersistenceBrokerSSOProvider.java
               components/sso/src/test/org/apache/jetspeed/sso
                        TestSSOComponent.java
               jetspeed-api/src/java/org/apache/jetspeed/sso
                        SSOProvider.java
  Log:
  http://issues.apache.org/jira/browse/JS2-178
  
  add a few apis to maintain sso sites
  
  Revision  Changes    Path
  1.11      +70 -14    
jakarta-jetspeed-2/components/sso/src/java/org/apache/jetspeed/sso/impl/PersistenceBrokerSSOProvider.java
  
  Index: PersistenceBrokerSSOProvider.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-jetspeed-2/components/sso/src/java/org/apache/jetspeed/sso/impl/PersistenceBrokerSSOProvider.java,v
  retrieving revision 1.10
  retrieving revision 1.11
  diff -u -r1.10 -r1.11
  --- PersistenceBrokerSSOProvider.java 1 Jan 2005 00:00:05 -0000       1.10
  +++ PersistenceBrokerSSOProvider.java 3 Jan 2005 08:13:37 -0000       1.11
  @@ -15,13 +15,10 @@
    */
   package org.apache.jetspeed.sso.impl;
   
  -import java.security.Principal;
   import java.util.ArrayList;
   import java.util.Collection;
   import java.util.Hashtable;
   import java.util.Iterator;
  -import java.util.LinkedList;
  -import java.util.List;
   
   import org.apache.jetspeed.security.UserPrincipal;
   
  @@ -41,7 +38,6 @@
   
   import org.apache.jetspeed.security.SecurityHelper;
   import org.apache.jetspeed.security.BasePrincipal;
  -import org.apache.jetspeed.security.User;
   import org.apache.jetspeed.security.om.InternalCredential;
   import org.apache.jetspeed.security.om.InternalUserPrincipal;
   import org.apache.jetspeed.security.om.impl.InternalCredentialImpl;
  @@ -59,10 +55,10 @@
   * @author <a href="mailto:[EMAIL PROTECTED]">Roger Ruttimann</a>
   */
   public class PersistenceBrokerSSOProvider extends
  -             InitablePersistenceBrokerDaoSupport implements SSOProvider {
  -     
  +             InitablePersistenceBrokerDaoSupport implements SSOProvider 
  +{    
        private Hashtable mapSite = new Hashtable();    
  -     /**
  +     /**
        * PersitenceBrokerSSOProvider()
        * @param repository Location of repository mapping file.  Must be 
available within the classpath.
        * @param prefsFactoryImpl 
<code>java.util.prefs.PreferencesFactory</code> implementation to use.
  @@ -79,8 +75,8 @@
       {
           Criteria queryCriteria = new Criteria();
           Query query = QueryFactory.newQuery(SSOSiteImpl.class, 
queryCriteria);
  -        Iterator result = 
getPersistenceBrokerTemplate().getIteratorByQuery(query);
  -        return result;
  +        Collection c = 
getPersistenceBrokerTemplate().getCollectionByQuery(query);
  +        return c.iterator();        
       }
       
        /* (non-Javadoc)
  @@ -228,8 +224,6 @@
            }
            // Add to site
            this.mapSite.put(site, ssoSite);
  -         // Clear cache
  -         //this.mapSite.clear();
        }
   
        /* (non-Javadoc)
  @@ -302,8 +296,6 @@
               throw new 
SSOException(SSOException.FAILED_STORING_SITE_INFO_IN_DB + e.toString() );
            }
            
  -         // Clear cache
  -       //  this.mapSite.clear();
        }
        
        /**
  @@ -594,7 +586,7 @@
                        while (itPrincipals.hasNext())
                        {
                                SSOPrincipal tmp = 
(SSOPrincipal)itPrincipals.next();
  -                             if (         
tmp.getFullPath().compareToIgnoreCase(fullPath) == 0
  +                             if 
(tmp.getFullPath().compareToIgnoreCase(fullPath) == 0
                                        && tmp.getSiteID() == site.getSiteId())
                                {
                                        // Found -- get the remotePrincipal
  @@ -658,4 +650,68 @@
            }
            return null;
        }
  +    
  +    public SSOSite getSite(String siteName)
  +    {
  +        Criteria filter = new Criteria();
  +        filter.addEqualTo("name", siteName);
  +        Query query = QueryFactory.newQuery(SSOSiteImpl.class, filter);
  +        SSOSite site = (SSOSite) 
getPersistenceBrokerTemplate().getObjectByQuery(query);
  +        return site;       
  +    }
  +    
  +    public void updateSite(SSOSite site)
  +    throws SSOException
  +    {
  +        try
  +        {
  +            getPersistenceBrokerTemplate().store(site);
  +            this.mapSite.put(site.getName(), site);                        
  +        }
  +        catch (Exception e)
  +        {
  +            String msg = "Unable to remove SSO Site: " + site.getName();
  +            logger.error(msg, e);
  +            throw new SSOException(msg, e);
  +        }        
  +    }
  +    
  +    public void addSite(String siteName, String siteUrl)
  +    throws SSOException
  +    {
  +        try
  +        {
  +            SSOSite ssoSite = new SSOSiteImpl();
  +            ssoSite.setSiteURL(siteUrl);
  +            ssoSite.setName(siteName);
  +            ssoSite.setCertificateRequired(false);
  +            ssoSite.setAllowUserSet(true);            
  +            getPersistenceBrokerTemplate().store(ssoSite);
  +            this.mapSite.put(siteName, ssoSite);            
  +        }
  +        catch (Exception e)
  +        {
  +            String msg = "Unable to remove SSO Site: " + siteName;
  +            logger.error(msg, e);
  +            throw new SSOException(msg, e);
  +        }                
  +    }
  +    
  +    public void removeSite(SSOSite site)
  +    throws SSOException
  +    {
  +        try
  +        {
  +            getPersistenceBrokerTemplate().delete(site);
  +            this.mapSite.remove(site);
  +
  +        }
  +        catch (Exception e)
  +        {
  +            String msg = "Unable to remove SSO Site: " + site.getName();
  +            logger.error(msg, e);
  +            throw new SSOException(msg, e);
  +        }        
  +    }
  +        
   }
  
  
  
  1.9       +9 -0      
jakarta-jetspeed-2/components/sso/src/test/org/apache/jetspeed/sso/TestSSOComponent.java
  
  Index: TestSSOComponent.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-jetspeed-2/components/sso/src/test/org/apache/jetspeed/sso/TestSSOComponent.java,v
  retrieving revision 1.8
  retrieving revision 1.9
  diff -u -r1.8 -r1.9
  --- TestSSOComponent.java     5 Dec 2004 00:46:38 -0000       1.8
  +++ TestSSOComponent.java     3 Jan 2005 08:13:37 -0000       1.9
  @@ -27,6 +27,7 @@
   
   import java.security.Principal;
   import java.util.HashSet;
  +import java.util.Iterator;
   import java.util.Set;
   
   
  @@ -211,6 +212,14 @@
                throw new Exception(ssoex.getMessage());
                }
                */
  +        
  +        Iterator sites = ssoBroker.getSites("");
  +        while (sites.hasNext())
  +        {
  +            SSOSite site = (SSOSite)sites.next();
  +            System.out.println("Site = " + site.getName());
  +        }
  +        
       }
   
       /**
  
  
  
  1.6       +9 -0      
jakarta-jetspeed-2/jetspeed-api/src/java/org/apache/jetspeed/sso/SSOProvider.java
  
  Index: SSOProvider.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-jetspeed-2/jetspeed-api/src/java/org/apache/jetspeed/sso/SSOProvider.java,v
  retrieving revision 1.5
  retrieving revision 1.6
  diff -u -r1.5 -r1.6
  --- SSOProvider.java  1 Jan 2005 00:00:05 -0000       1.5
  +++ SSOProvider.java  3 Jan 2005 08:13:37 -0000       1.6
  @@ -52,4 +52,13 @@
           throws SSOException;
       
       Iterator getSites(String filter);
  +    
  +    SSOSite getSite(String siteName);
  +    
  +    void updateSite(SSOSite site) throws SSOException;
  +    
  +    void addSite(String siteName, String siteUrl) throws SSOException; 
  +    
  +    void removeSite(SSOSite site) throws SSOException;
  +    
   }
  
  
  

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to