Return-Path: Delivered-To: apmail-portals-jetspeed-dev-archive@www.apache.org Received: (qmail 96115 invoked from network); 4 Sep 2008 15:06:22 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (140.211.11.2) by minotaur.apache.org with SMTP; 4 Sep 2008 15:06:22 -0000 Received: (qmail 91375 invoked by uid 500); 4 Sep 2008 15:06:18 -0000 Delivered-To: apmail-portals-jetspeed-dev-archive@portals.apache.org Received: (qmail 91350 invoked by uid 500); 4 Sep 2008 15:06:18 -0000 Mailing-List: contact jetspeed-dev-help@portals.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: "Jetspeed Developers List" Delivered-To: mailing list jetspeed-dev@portals.apache.org Received: (qmail 91339 invoked by uid 99); 4 Sep 2008 15:06:18 -0000 Received: from athena.apache.org (HELO athena.apache.org) (140.211.11.136) by apache.org (qpsmtpd/0.29) with ESMTP; Thu, 04 Sep 2008 08:06:18 -0700 X-ASF-Spam-Status: No, hits=-2000.0 required=10.0 tests=ALL_TRUSTED X-Spam-Check-By: apache.org Received: from [140.211.11.4] (HELO eris.apache.org) (140.211.11.4) by apache.org (qpsmtpd/0.29) with ESMTP; Thu, 04 Sep 2008 15:05:28 +0000 Received: by eris.apache.org (Postfix, from userid 65534) id 2F79E238896C; Thu, 4 Sep 2008 08:05:59 -0700 (PDT) Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: svn commit: r692085 - /portals/jetspeed-2/portal/branches/security-refactoring/components/jetspeed-security/src/main/java/org/apache/jetspeed/security/impl/BaseJetspeedPrincipalManager.java Date: Thu, 04 Sep 2008 15:05:57 -0000 To: jetspeed-dev@portals.apache.org From: ate@apache.org X-Mailer: svnmailer-1.0.8 Message-Id: <20080904150559.2F79E238896C@eris.apache.org> X-Virus-Checked: Checked by ClamAV on apache.org Author: ate Date: Thu Sep 4 08:05:57 2008 New Revision: 692085 URL: http://svn.apache.org/viewvc?rev=692085&view=rev Log: implemented addAssociationHandler Modified: portals/jetspeed-2/portal/branches/security-refactoring/components/jetspeed-security/src/main/java/org/apache/jetspeed/security/impl/BaseJetspeedPrincipalManager.java Modified: portals/jetspeed-2/portal/branches/security-refactoring/components/jetspeed-security/src/main/java/org/apache/jetspeed/security/impl/BaseJetspeedPrincipalManager.java URL: http://svn.apache.org/viewvc/portals/jetspeed-2/portal/branches/security-refactoring/components/jetspeed-security/src/main/java/org/apache/jetspeed/security/impl/BaseJetspeedPrincipalManager.java?rev=692085&r1=692084&r2=692085&view=diff ============================================================================== --- portals/jetspeed-2/portal/branches/security-refactoring/components/jetspeed-security/src/main/java/org/apache/jetspeed/security/impl/BaseJetspeedPrincipalManager.java (original) +++ portals/jetspeed-2/portal/branches/security-refactoring/components/jetspeed-security/src/main/java/org/apache/jetspeed/security/impl/BaseJetspeedPrincipalManager.java Thu Sep 4 08:05:57 2008 @@ -16,7 +16,9 @@ */ package org.apache.jetspeed.security.impl; +import java.util.HashMap; import java.util.List; +import java.util.Map; import org.apache.jetspeed.security.DependentPrincipalException; import org.apache.jetspeed.security.JetspeedPermission; @@ -32,84 +34,147 @@ /** * @version $Id$ - * */ -public abstract class BaseJetspeedPrincipalManager implements JetspeedPrincipalManager { - - private JetspeedPrincipalAccessManager jetspeedPrincipalAccessManager; - private JetspeedPrincipalAssociationHandler jetspeedPrincipalAssociationHandler; - private JetspeedPrincipalStorageManager jetspeedPrincipalStorageManager; - private JetspeedPrincipalPermissionStorageManager jetspeedPrincipalPermissionStorageManager; - - public BaseJetspeedPrincipalManager() { - super(); - } - - public BaseJetspeedPrincipalManager(JetspeedPrincipalStorageManager jetspeedPrincipalStorageManager,JetspeedPrincipalPermissionStorageManager jetspeedPrincipalPermissionStorageManager) - { - this.jetspeedPrincipalStorageManager = jetspeedPrincipalStorageManager; - this.jetspeedPrincipalPermissionStorageManager = jetspeedPrincipalPermissionStorageManager; - } - - public void addAssociationHandler(JetspeedPrincipalAssociationHandler jpah) { - this.jetspeedPrincipalAssociationHandler = jpah; - } - - public void setAccessManager(JetspeedPrincipalAccessManager pam) { - - this.jetspeedPrincipalAccessManager = pam; - } - - public List getAssociatedFrom(String principalName, String associationName) { - return jetspeedPrincipalAccessManager.getAssociatedFrom(principalName, getPrincipalType(), associationName); - } - public List getAssociatedNamesFrom(String principalName, String associationName) { - return jetspeedPrincipalAccessManager.getAssociatedNamesFrom(principalName, getPrincipalType(), associationName); - } - - public List getAssociatedNamesTo(String principalName, String associationName) { - return jetspeedPrincipalAccessManager.getAssociatedNamesTo(principalName, getPrincipalType(), associationName); - } - - public List getAssociatedTo(String principalName, String associationName) { - return jetspeedPrincipalAccessManager.getAssociatedTo(principalName, getPrincipalType(), associationName); - } - - public JetspeedPrincipal getPrincipal(String name) { - return jetspeedPrincipalAccessManager.getPrincipal(name, getPrincipalType()); - } - - public List getPrincipalNames(String nameFilter) { - return jetspeedPrincipalAccessManager.getPrincipalNames(nameFilter, getPrincipalType()); - } - - public JetspeedPrincipalType getPrincipalType() { - return null; - } - - public List getPrincipals(String nameFilter) { - return jetspeedPrincipalAccessManager.getPrincipals(nameFilter, getPrincipalType()); - } - - public boolean principalExists(String name) { - return false; - } - - public void grantPermission(JetspeedPrincipal principal, JetspeedPermission permission) { - jetspeedPrincipalPermissionStorageManager.grantPermission(principal, permission); - } - - public void revokeAll(JetspeedPrincipal principal) { - jetspeedPrincipalPermissionStorageManager.revokeAll(principal); - } - - public void revokePermission(JetspeedPrincipal principal, JetspeedPermission permission) { - jetspeedPrincipalPermissionStorageManager.revokePermission(principal, permission); - } - - public void removePrincipal(String name) throws PrincipalNotFoundException, PrincipalNotRemovableException, DependentPrincipalException { - JetspeedPrincipal principal = jetspeedPrincipalAccessManager.getPrincipal(name, getPrincipalType()); - if (principal == null) throw new PrincipalNotFoundException(); - jetspeedPrincipalStorageManager.removePrincipal (principal); - } +public abstract class BaseJetspeedPrincipalManager implements JetspeedPrincipalManager +{ + private static class AssociationHandlerKey + { + String name; + String fromPrincipalType; + String toPrincipalType; + + public AssociationHandlerKey(JetspeedPrincipalAssociationHandler jpah) + { + this(jpah.getAssociationType().getAssociationName(), jpah.getAssociationType().getFromPrincipalType() + .getName(), jpah.getAssociationType() + .getToPrincipalType().getName()); + } + + public AssociationHandlerKey(String name, String fromPrincipalType, String toPrincipalType) + { + this.name = name; + this.fromPrincipalType = fromPrincipalType; + this.toPrincipalType = toPrincipalType; + } + + public boolean equals(AssociationHandlerKey other) + { + return other.name.equals(name) && other.fromPrincipalType.equals(fromPrincipalType) && + other.toPrincipalType.equals(toPrincipalType); + } + + public int hashCode() + { + return name.hashCode() + fromPrincipalType.hashCode() + toPrincipalType.hashCode(); + } + } + + private JetspeedPrincipalType principalType; + private Map assHandlers = new HashMap(); + private JetspeedPrincipalAccessManager jetspeedPrincipalAccessManager; + private JetspeedPrincipalStorageManager jetspeedPrincipalStorageManager; + private JetspeedPrincipalPermissionStorageManager jetspeedPrincipalPermissionStorageManager; + + public BaseJetspeedPrincipalManager( + JetspeedPrincipalType principalType, + JetspeedPrincipalStorageManager jetspeedPrincipalStorageManager, + JetspeedPrincipalPermissionStorageManager jetspeedPrincipalPermissionStorageManager) + { + this.principalType = principalType; + this.jetspeedPrincipalStorageManager = jetspeedPrincipalStorageManager; + this.jetspeedPrincipalPermissionStorageManager = jetspeedPrincipalPermissionStorageManager; + } + + public JetspeedPrincipalType getPrincipalType() + { + return principalType; + } + + public void addAssociationHandler(JetspeedPrincipalAssociationHandler jpah) + { + if (jpah.getAssociationType().getFromPrincipalType().getName().equals(principalType.getName()) || + jpah.getAssociationType().getToPrincipalType().getName().equals(principalType.getName())) + { + AssociationHandlerKey key = new AssociationHandlerKey(jpah); + if (assHandlers.containsKey(key)) + { + throw new IllegalStateException("An AssociationHandler for "+jpah.getAssociationType().getAssociationName()+" already defined"); + } + assHandlers.put(key, jpah); + } + else + { + throw new IllegalArgumentException("AssociationHandler is not handling a "+principalType.getName()+ " JetspeedPrincipal"); + } + } + + public void setAccessManager(JetspeedPrincipalAccessManager pam) + { + this.jetspeedPrincipalAccessManager = pam; + } + + public List getAssociatedFrom(String principalName, String associationName) + { + return jetspeedPrincipalAccessManager.getAssociatedFrom(principalName, getPrincipalType(), associationName); + } + + public List getAssociatedNamesFrom(String principalName, String associationName) + { + return jetspeedPrincipalAccessManager + .getAssociatedNamesFrom(principalName, getPrincipalType(), associationName); + } + + public List getAssociatedNamesTo(String principalName, String associationName) + { + return jetspeedPrincipalAccessManager.getAssociatedNamesTo(principalName, getPrincipalType(), associationName); + } + + public List getAssociatedTo(String principalName, String associationName) + { + return jetspeedPrincipalAccessManager.getAssociatedTo(principalName, getPrincipalType(), associationName); + } + + public JetspeedPrincipal getPrincipal(String name) + { + return jetspeedPrincipalAccessManager.getPrincipal(name, getPrincipalType()); + } + + public List getPrincipalNames(String nameFilter) + { + return jetspeedPrincipalAccessManager.getPrincipalNames(nameFilter, getPrincipalType()); + } + + public List getPrincipals(String nameFilter) + { + return jetspeedPrincipalAccessManager.getPrincipals(nameFilter, getPrincipalType()); + } + + public boolean principalExists(String name) + { + return false; + } + + public void grantPermission(JetspeedPrincipal principal, JetspeedPermission permission) + { + jetspeedPrincipalPermissionStorageManager.grantPermission(principal, permission); + } + + public void revokeAll(JetspeedPrincipal principal) + { + jetspeedPrincipalPermissionStorageManager.revokeAll(principal); + } + + public void revokePermission(JetspeedPrincipal principal, JetspeedPermission permission) + { + jetspeedPrincipalPermissionStorageManager.revokePermission(principal, permission); + } + + public void removePrincipal(String name) throws PrincipalNotFoundException, PrincipalNotRemovableException, + DependentPrincipalException + { + JetspeedPrincipal principal = jetspeedPrincipalAccessManager.getPrincipal(name, getPrincipalType()); + if (principal == null) + throw new PrincipalNotFoundException(); + jetspeedPrincipalStorageManager.removePrincipal(principal); + } } --------------------------------------------------------------------- To unsubscribe, e-mail: jetspeed-dev-unsubscribe@portals.apache.org For additional commands, e-mail: jetspeed-dev-help@portals.apache.org