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<JetspeedPrincipal> getAssociatedFrom(String principalName,
String associationName) {
- return
jetspeedPrincipalAccessManager.getAssociatedFrom(principalName,
getPrincipalType(), associationName);
- }
- public List<String> getAssociatedNamesFrom(String principalName, String
associationName) {
- return
jetspeedPrincipalAccessManager.getAssociatedNamesFrom(principalName,
getPrincipalType(), associationName);
- }
-
- public List<String> getAssociatedNamesTo(String principalName, String
associationName) {
- return
jetspeedPrincipalAccessManager.getAssociatedNamesTo(principalName,
getPrincipalType(), associationName);
- }
-
- public List<JetspeedPrincipal> getAssociatedTo(String principalName,
String associationName) {
- return
jetspeedPrincipalAccessManager.getAssociatedTo(principalName,
getPrincipalType(), associationName);
- }
-
- public JetspeedPrincipal getPrincipal(String name) {
- return jetspeedPrincipalAccessManager.getPrincipal(name,
getPrincipalType());
- }
-
- public List<String> getPrincipalNames(String nameFilter) {
- return
jetspeedPrincipalAccessManager.getPrincipalNames(nameFilter,
getPrincipalType());
- }
-
- public JetspeedPrincipalType getPrincipalType() {
- return null;
- }
-
- public List<JetspeedPrincipal> 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<AssociationHandlerKey, JetspeedPrincipalAssociationHandler>
assHandlers = new HashMap<AssociationHandlerKey,
JetspeedPrincipalAssociationHandler>();
+ 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<JetspeedPrincipal> getAssociatedFrom(String principalName,
String associationName)
+ {
+ return jetspeedPrincipalAccessManager.getAssociatedFrom(principalName,
getPrincipalType(), associationName);
+ }
+
+ public List<String> getAssociatedNamesFrom(String principalName, String
associationName)
+ {
+ return jetspeedPrincipalAccessManager
+
.getAssociatedNamesFrom(principalName, getPrincipalType(), associationName);
+ }
+
+ public List<String> getAssociatedNamesTo(String principalName, String
associationName)
+ {
+ return
jetspeedPrincipalAccessManager.getAssociatedNamesTo(principalName,
getPrincipalType(), associationName);
+ }
+
+ public List<JetspeedPrincipal> getAssociatedTo(String principalName,
String associationName)
+ {
+ return jetspeedPrincipalAccessManager.getAssociatedTo(principalName,
getPrincipalType(), associationName);
+ }
+
+ public JetspeedPrincipal getPrincipal(String name)
+ {
+ return jetspeedPrincipalAccessManager.getPrincipal(name,
getPrincipalType());
+ }
+
+ public List<String> getPrincipalNames(String nameFilter)
+ {
+ return jetspeedPrincipalAccessManager.getPrincipalNames(nameFilter,
getPrincipalType());
+ }
+
+ public List<JetspeedPrincipal> 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: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]