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]