You are viewing a plain text version of this content. The canonical link for it is here.
Posted to jetspeed-dev@portals.apache.org by rw...@apache.org on 2009/02/08 22:28:38 UTC
svn commit: r742172 [2/7] - in
/portals/jetspeed-2/portal/branches/JPA_BRANCH: ./
components/jetspeed-page-manager/
components/jetspeed-page-manager/src/main/java/org/apache/jetspeed/page/jpa/
components/jetspeed-profiler/ components/jetspeed-profiler/...
Modified: portals/jetspeed-2/portal/branches/JPA_BRANCH/components/jetspeed-security/src/main/java/org/apache/jetspeed/security/impl/GroupManagerImpl.java
URL: http://svn.apache.org/viewvc/portals/jetspeed-2/portal/branches/JPA_BRANCH/components/jetspeed-security/src/main/java/org/apache/jetspeed/security/impl/GroupManagerImpl.java?rev=742172&r1=742171&r2=742172&view=diff
==============================================================================
--- portals/jetspeed-2/portal/branches/JPA_BRANCH/components/jetspeed-security/src/main/java/org/apache/jetspeed/security/impl/GroupManagerImpl.java (original)
+++ portals/jetspeed-2/portal/branches/JPA_BRANCH/components/jetspeed-security/src/main/java/org/apache/jetspeed/security/impl/GroupManagerImpl.java Sun Feb 8 21:28:35 2009
@@ -16,62 +16,28 @@
*/
package org.apache.jetspeed.security.impl;
-import java.util.List;
-
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
import org.apache.jetspeed.security.Group;
import org.apache.jetspeed.security.GroupManager;
-import org.apache.jetspeed.security.JetspeedPrincipal;
-import org.apache.jetspeed.security.JetspeedPrincipalAssociationType;
import org.apache.jetspeed.security.JetspeedPrincipalType;
-import org.apache.jetspeed.security.SecurityException;
-import org.apache.jetspeed.security.User;
-import org.apache.jetspeed.security.UserManager;
import org.apache.jetspeed.security.spi.JetspeedPrincipalAccessManager;
import org.apache.jetspeed.security.spi.JetspeedPrincipalStorageManager;
/**
- * <p>
* Implements the service interface for managing Jetsped Security Groups.
- * </p>
- * <p>
- * Group hierarchy elements are being returned as a {@link Group}collection.
- * The backing implementation must appropriately map the group hierarchy to a
- * preferences sub-tree.
- * </p>
- * <p>
- * The convention {principal}.{subprincipal} has been chosen to name groups hierarchies.
- * </p>
- * <p>Modified 2008-08-05 - DST - decoupled java preferences</p>
+ *
* @author <a href="mailto:dlestrat@apache.org">David Le Strat </a>
* @author <a href="mailto:taylor@apache.org">David Sean Taylor </a>
* @version $Id$
*/
-public class GroupManagerImpl extends BaseJetspeedPrincipalManager implements GroupManager
+public class GroupManagerImpl extends AbstractGroupManagerImpl implements GroupManager
{
+ private static final long serialVersionUID = 8645807335279079200L;
- /** The logger. */
- private static final Log log = LogFactory.getLog(GroupManagerImpl.class);
-
- private JetspeedPrincipalType userType;
- private JetspeedPrincipalType roleType;
- private UserManager userManager;
-
- public GroupManagerImpl(JetspeedPrincipalType principalType,JetspeedPrincipalType userType,JetspeedPrincipalType roleType,
- JetspeedPrincipalAccessManager jpam, JetspeedPrincipalStorageManager jpsm)
+ public GroupManagerImpl(JetspeedPrincipalType principalType, JetspeedPrincipalType userType, JetspeedPrincipalType roleType,
+ JetspeedPrincipalAccessManager jpam, JetspeedPrincipalStorageManager jpsm)
{
- super(principalType, jpam, jpsm);
- this.userType = userType;
- this.roleType = roleType;
+ super(principalType, userType, roleType, jpam, jpsm);
}
- public void checkInitialized()
- {
- if (userManager == null)
- {
- userManager = (UserManager)getPrincipalManagerProvider().getManager(userType);
- }
- }
/* (non-Javadoc)
* @see org.apache.jetspeed.security.GroupManager#newGroup(java.lang.String, boolean)
@@ -81,206 +47,5 @@
GroupImpl group = new GroupImpl(name);
group.setMapped(mapped);
return group;
- }
-
- /* (non-Javadoc)
- * @see org.apache.jetspeed.security.GroupManager#newTransientGroup(java.lang.String)
- */
- public Group newTransientGroup(String name)
- {
- TransientGroup group = new TransientGroup(name);
- return group;
- }
-
- /**
- * @see org.apache.jetspeed.security.GroupManager#addGroup(java.lang.String)
- */
- public Group addGroup(String groupName) throws SecurityException
- {
- return addGroup(groupName, true);
- }
-
- /**
- * @see org.apache.jetspeed.security.GroupManager#addGroup(java.lang.String, boolean)
- */
- public Group addGroup(String groupName, boolean mapped) throws SecurityException
- {
- Group group = newGroup(groupName, mapped);
-
- super.addPrincipal(group, null);
-
- if (log.isDebugEnabled())
- log.debug("Added group: " + groupName);
-
- return group;
- }
-
- /**
- * @see org.apache.jetspeed.security.GroupManager#removeGroup(java.lang.String)
- */
- public void removeGroup(String groupName) throws SecurityException
- {
- super.removePrincipal(groupName);
- }
-
- /**
- * @see org.apache.jetspeed.security.GroupManager#groupExists(java.lang.String)
- */
- public boolean groupExists(String groupName)
- {
- return super.principalExists(groupName);
- }
-
- /**
- * @see org.apache.jetspeed.security.GroupManager#getGroup(java.lang.String)
- */
- public Group getGroup(String groupName) throws SecurityException
- {
- Group group = (Group) super.getPrincipal(groupName);
-
- if (null == group)
- {
- throw new SecurityException(SecurityException.PRINCIPAL_DOES_NOT_EXIST.createScoped(JetspeedPrincipalType.GROUP, groupName));
- }
-
- return group;
- }
-
- /**
- * @see org.apache.jetspeed.security.GroupManager#getGroupsForUser(java.lang.String)
- */
- @SuppressWarnings("unchecked")
- public List<Group> getGroupsForUser(String username)
- throws SecurityException
- {
- return (List<Group>) super.getAssociatedFrom(username, userType, JetspeedPrincipalAssociationType.IS_MEMBER_OF);
- }
-
- /**
- * @see org.apache.jetspeed.security.GroupManager#getGroupsInRole(java.lang.String)
- */
- @SuppressWarnings("unchecked")
- public List<Group> getGroupsInRole(String roleName)
- throws SecurityException
- {
- return (List<Group>) super.getAssociatedTo(roleName, roleType, JetspeedPrincipalAssociationType.IS_MEMBER_OF);
- }
-
- /**
- * @see org.apache.jetspeed.security.GroupManager#addUserToGroup(java.lang.String,
- * java.lang.String)
- */
- public void addUserToGroup(String username, String groupName)
- throws SecurityException
- {
- checkInitialized();
- User user = userManager.getUser(username);
- if (user == null)
- {
- throw new SecurityException(SecurityException.PRINCIPAL_DOES_NOT_EXIST.createScoped(JetspeedPrincipalType.USER, username));
- }
- Group group = getGroup(groupName);
- if (group == null)
- {
- throw new SecurityException(SecurityException.PRINCIPAL_DOES_NOT_EXIST.createScoped(JetspeedPrincipalType.GROUP, groupName));
- }
- super.addAssociation(user, group, JetspeedPrincipalAssociationType.IS_MEMBER_OF);
- }
-
- /**
- * @see org.apache.jetspeed.security.GroupManager#removeUserFromGroup(java.lang.String,
- * java.lang.String)
- */
- public void removeUserFromGroup(String username, String groupName)
- throws SecurityException
- {
- checkInitialized();
- User user = userManager.getUser(username);
- if (user == null)
- {
- throw new SecurityException(SecurityException.PRINCIPAL_DOES_NOT_EXIST.createScoped(JetspeedPrincipalType.USER, username));
- }
- Group group = getGroup(groupName);
- if (group == null)
- {
- throw new SecurityException(SecurityException.PRINCIPAL_DOES_NOT_EXIST.createScoped(JetspeedPrincipalType.GROUP, groupName));
- }
- super.removeAssociation(user, group, JetspeedPrincipalAssociationType.IS_MEMBER_OF);
- }
-
- /**
- * @see org.apache.jetspeed.security.GroupManager#isUserInGroup(java.lang.String,
- * java.lang.String)
- */
- public boolean isUserInGroup(String username, String groupName)
- throws SecurityException
- {
- return getAssociatedNamesFrom(username, userType, JetspeedPrincipalAssociationType.IS_MEMBER_OF).contains(groupName);
- }
-
- /**
- * @see org.apache.jetspeed.security.GroupManager#getGroups(java.lang.String)
- */
- @SuppressWarnings("unchecked")
- public List<Group> getGroups(String nameFilter) throws SecurityException
- {
- return (List<Group>) super.getPrincipals(nameFilter);
- }
-
- public List<String> getGroupNames(String nameFilter) throws SecurityException
- {
- return getPrincipalNames(nameFilter);
- }
-
- /**
- * @see org.apache.jetspeed.security.GroupManager#updateGroup(org.apache.jetspeed.security.Group)
- */
- public void updateGroup(Group group) throws SecurityException
- {
- super.updatePrincipal(group);
- }
-
- /* (non-Javadoc)
- * @see org.apache.jetspeed.security.GroupManager#addGroupToGroup(org.apache.jetspeed.security.Group, org.apache.jetspeed.security.Group, java.lang.String)
- */
- public void addGroupToGroup(Group from, Group to, String associationName) throws SecurityException
- {
- this.addAssociation(from, to, associationName);
- }
-
- /* (non-Javadoc)
- * @see org.apache.jetspeed.security.GroupManager#removeGroupFromGroup(org.apache.jetspeed.security.Group, org.apache.jetspeed.security.Group, java.lang.String)
- */
- public void removeGroupFromGroup(Group from, Group to, String associationName) throws SecurityException
- {
- removeAssociation(from, to, associationName);
- }
-
- /* (non-Javadoc)
- * @see org.apache.jetspeed.security.GroupManager#getGroupsAssociatedFrom(org.apache.jetspeed.security.Group, java.lang.String)
- */
- @SuppressWarnings("unchecked")
- public List<Group> getGroupsAssociatedFrom(Group from, String associationName)
- {
- return (List<Group>)getAssociatedFrom(from.getName(), from.getType(), associationName);
- }
-
- /* (non-Javadoc)
- * @see org.apache.jetspeed.security.GroupManager#getGroupsAssociatedTo(org.apache.jetspeed.security.Group, java.lang.String)
- */
- @SuppressWarnings("unchecked")
- public List<Group> getGroupsAssociatedTo(Group to, String associationName)
- {
- return (List<Group>)getAssociatedFrom(to.getName(), to.getType(), associationName);
- }
-
- public JetspeedPrincipal newPrincipal(String name, boolean mapped)
- {
- return newGroup(name, mapped);
- }
-
- public JetspeedPrincipal newTransientPrincipal(String name)
- {
- return newTransientGroup(name);
- }
+ }
}
\ No newline at end of file
Modified: portals/jetspeed-2/portal/branches/JPA_BRANCH/components/jetspeed-security/src/main/java/org/apache/jetspeed/security/impl/LoginModuleProxyImpl.java
URL: http://svn.apache.org/viewvc/portals/jetspeed-2/portal/branches/JPA_BRANCH/components/jetspeed-security/src/main/java/org/apache/jetspeed/security/impl/LoginModuleProxyImpl.java?rev=742172&r1=742171&r2=742172&view=diff
==============================================================================
--- portals/jetspeed-2/portal/branches/JPA_BRANCH/components/jetspeed-security/src/main/java/org/apache/jetspeed/security/impl/LoginModuleProxyImpl.java (original)
+++ portals/jetspeed-2/portal/branches/JPA_BRANCH/components/jetspeed-security/src/main/java/org/apache/jetspeed/security/impl/LoginModuleProxyImpl.java Sun Feb 8 21:28:35 2009
@@ -18,6 +18,7 @@
import org.apache.jetspeed.security.AuthenticationProvider;
import org.apache.jetspeed.security.LoginModuleProxy;
+import org.apache.jetspeed.security.RoleManager;
import org.apache.jetspeed.security.UserManager;
/**
@@ -35,6 +36,9 @@
/** The {@link UserManager}. */
private UserManager userMgr;
+ /** The {@link RoleManager}. */
+ private RoleManager roleMgr;
+
/** The portal user role. */
private String portalUserRole;
@@ -46,12 +50,13 @@
*
* @param authProvider The authentication provider
* @param userMgr The user manager.
+ * @param roleMgr The role manager.
* @param portalUserRole The portal user role shared by all portal users: used
* in web.xml authorization to detect authenticated portal
* users.
*
*/
- public LoginModuleProxyImpl(AuthenticationProvider authProvider, UserManager userMgr, String portalUserRole)
+ public LoginModuleProxyImpl(AuthenticationProvider authProvider, UserManager userMgr, RoleManager roleMgr, String portalUserRole)
{
// The authentication provider
this.authProvider = authProvider;
@@ -59,6 +64,9 @@
// The user manager.
this.userMgr = userMgr;
+ // The role manager.
+ this.roleMgr = roleMgr;
+
// The portal user role
this.portalUserRole = (portalUserRole != null ? portalUserRole : DEFAULT_PORTAL_USER_ROLE_NAME);
@@ -66,9 +74,17 @@
// TODO Can we fix this?
LoginModuleProxyImpl.loginModuleProxy = this;
}
- public LoginModuleProxyImpl(AuthenticationProvider authProvider, UserManager userMgr)
+ public LoginModuleProxyImpl(AuthenticationProvider authProvider, UserManager userMgr, RoleManager roleMgr)
+ {
+ this(authProvider, userMgr, roleMgr, DEFAULT_PORTAL_USER_ROLE_NAME);
+ }
+
+ /**
+ * @see org.apache.jetspeed.security.LoginModuleProxy#getRoleManager()
+ */
+ public RoleManager getRoleManager()
{
- this(authProvider, userMgr, DEFAULT_PORTAL_USER_ROLE_NAME);
+ return this.roleMgr;
}
/**
Modified: portals/jetspeed-2/portal/branches/JPA_BRANCH/components/jetspeed-security/src/main/java/org/apache/jetspeed/security/impl/PermissionManagerImpl.java
URL: http://svn.apache.org/viewvc/portals/jetspeed-2/portal/branches/JPA_BRANCH/components/jetspeed-security/src/main/java/org/apache/jetspeed/security/impl/PermissionManagerImpl.java?rev=742172&r1=742171&r2=742172&view=diff
==============================================================================
--- portals/jetspeed-2/portal/branches/JPA_BRANCH/components/jetspeed-security/src/main/java/org/apache/jetspeed/security/impl/PermissionManagerImpl.java (original)
+++ portals/jetspeed-2/portal/branches/JPA_BRANCH/components/jetspeed-security/src/main/java/org/apache/jetspeed/security/impl/PermissionManagerImpl.java Sun Feb 8 21:28:35 2009
@@ -24,76 +24,44 @@
import java.util.HashMap;
import java.util.List;
-import org.apache.jetspeed.JetspeedActions;
-import org.apache.jetspeed.security.JetspeedPermission;
import org.apache.jetspeed.security.PermissionManager;
+import org.apache.jetspeed.security.JetspeedPermission;
import org.apache.jetspeed.security.JetspeedPrincipal;
-import org.apache.jetspeed.security.SecurityException;
import org.apache.jetspeed.security.spi.JetspeedPermissionAccessManager;
import org.apache.jetspeed.security.spi.JetspeedPermissionStorageManager;
import org.apache.jetspeed.security.spi.PersistentJetspeedPermission;
-import org.apache.jetspeed.security.spi.impl.BaseJetspeedPermission;
import org.apache.jetspeed.security.spi.impl.JetspeedPermissionFactory;
+import org.apache.jetspeed.security.spi.impl.PersistentJetspeedPermissionImpl;
/**
* @version $Id$
- *
*/
-public class PermissionManagerImpl implements PermissionManager
+public class PermissionManagerImpl extends AbstractPermissionManagerImpl implements PermissionManager
{
- private HashMap<String, JetspeedPermissionFactory> factoryMap = new HashMap<String, JetspeedPermissionFactory>();
- private JetspeedPermissionAccessManager jpam;
- private JetspeedPermissionStorageManager jpsm;
- private static ThreadLocal<HashMap<Long,Permissions>> permissionsCache = new ThreadLocal<HashMap<Long,Permissions>>();
-
public PermissionManagerImpl(List<JetspeedPermissionFactory> factories, JetspeedPermissionAccessManager jpam, JetspeedPermissionStorageManager jpsm)
{
- for (JetspeedPermissionFactory pf : factories)
- {
- factoryMap.put(pf.getType(), pf);
- }
- this.jpam = jpam;
- this.jpsm = jpsm;
- }
-
- private HashMap<Long,Permissions> getPermissionsMap()
- {
- HashMap<Long,Permissions> map = permissionsCache.get();
- if (map == null)
- {
- map = new HashMap<Long,Permissions>();
- permissionsCache.set(map);
- }
- return map;
- }
-
- protected PersistentJetspeedPermission getPersistentJetspeedPermission(JetspeedPermission permission)
- {
- if (permission instanceof PersistentJetspeedPermission)
- {
- return (PersistentJetspeedPermission)permission;
- }
- else
- {
- return ((BaseJetspeedPermission)permission).getPermission();
- }
+ super(factories, jpam, jpsm);
}
+ /* (non-Javadoc)
+ * @see org.apache.jetspeed.security.PermissionFactory#newPermission(java.lang.String, java.lang.String, java.lang.String)
+ */
public JetspeedPermission newPermission(String type, String name, String actions)
{
- return factoryMap.get(type).newPermission(name, actions);
+ return factoryMap.get(type).newPermission(new PersistentJetspeedPermissionImpl(type, name), actions);
}
+ /* (non-Javadoc)
+ * @see org.apache.jetspeed.security.PermissionFactory#newPermission(java.lang.String, java.lang.String, int)
+ */
public JetspeedPermission newPermission(String type, String name, int mask)
{
- return factoryMap.get(type).newPermission(name, mask);
+ return factoryMap.get(type).newPermission(new PersistentJetspeedPermissionImpl(type, name), mask);
}
- public int parseActions(String actions)
- {
- return JetspeedActions.getContainerActionsMask(actions);
- }
-
+ /* (non-Javadoc)
+ * @see org.apache.jetspeed.security.PermissionManager#getPermissions(org.apache.jetspeed.security.JetspeedPrincipal)
+ */
@SuppressWarnings("unchecked")
public Permissions getPermissions(JetspeedPrincipal principal)
{
@@ -121,6 +89,9 @@
return permissions;
}
+ /* (non-Javadoc)
+ * @see org.apache.jetspeed.security.PermissionManager#getPermissions(java.security.Principal[])
+ */
@SuppressWarnings("unchecked")
public Permissions getPermissions(Principal[] principals)
{
@@ -154,84 +125,4 @@
}
return allPermissions;
}
-
- @SuppressWarnings("unchecked")
- public List<JetspeedPermission> getPermissions()
- {
- return (List<JetspeedPermission>)jpam.getPermissions();
- }
-
- @SuppressWarnings("unchecked")
- public List<JetspeedPermission> getPermissions(String typeName)
- {
- return (List<JetspeedPermission>)jpam.getPermissions(typeName);
- }
-
- @SuppressWarnings("unchecked")
- public List<JetspeedPermission> getPermissions(String typeName, String nameFilter)
- {
- return (List<JetspeedPermission>)jpam.getPermissions(typeName, nameFilter);
- }
-
- public List<JetspeedPrincipal> getPrincipals(JetspeedPermission permission)
- {
- return jpam.getPrincipals(getPersistentJetspeedPermission(permission), null);
- }
-
- public List<JetspeedPrincipal> getPrincipals(JetspeedPermission permission, String principalType)
- {
- return jpam.getPrincipals(getPersistentJetspeedPermission(permission), principalType);
- }
-
- public boolean permissionExists(JetspeedPermission permission)
- {
- return jpam.permissionExists(permission);
- }
-
- public void addPermission(JetspeedPermission permission) throws SecurityException
- {
- jpsm.addPermission(getPersistentJetspeedPermission(permission));
- }
-
- public void updatePermission(JetspeedPermission permission) throws SecurityException
- {
- jpsm.updatePermission(getPersistentJetspeedPermission(permission));
- permissionsCache.remove();
- }
-
- public void removePermission(JetspeedPermission permission) throws SecurityException
- {
- jpsm.removePermission(getPersistentJetspeedPermission(permission));
- permissionsCache.remove();
- }
-
- public void grantPermission(JetspeedPermission permission, JetspeedPrincipal principal) throws SecurityException
- {
- jpsm.grantPermission(getPersistentJetspeedPermission(permission), principal);
- permissionsCache.remove();
- }
-
- public void grantPermissionOnlyTo(JetspeedPermission permission, List<JetspeedPrincipal> principals) throws SecurityException
- {
- jpsm.grantPermissionOnlyTo(getPersistentJetspeedPermission(permission), null, principals);
- permissionsCache.remove();
- }
-
- public void grantPermissionOnlyTo(JetspeedPermission permission, String principalType, List<JetspeedPrincipal> principals) throws SecurityException
- {
- jpsm.grantPermissionOnlyTo(getPersistentJetspeedPermission(permission), principalType, principals);
- permissionsCache.remove();
- }
-
- public void revokePermission(JetspeedPermission permission, JetspeedPrincipal principal) throws SecurityException
- {
- jpsm.revokePermission(getPersistentJetspeedPermission(permission), principal);
- permissionsCache.remove();
- }
-
- public void revokeAllPermissions(JetspeedPrincipal principal) throws SecurityException
- {
- jpsm.revokeAllPermissions(principal);
- permissionsCache.remove();
- }
}
Modified: portals/jetspeed-2/portal/branches/JPA_BRANCH/components/jetspeed-security/src/main/java/org/apache/jetspeed/security/impl/PersistentJetspeedPrincipal.java
URL: http://svn.apache.org/viewvc/portals/jetspeed-2/portal/branches/JPA_BRANCH/components/jetspeed-security/src/main/java/org/apache/jetspeed/security/impl/PersistentJetspeedPrincipal.java?rev=742172&r1=742171&r2=742172&view=diff
==============================================================================
--- portals/jetspeed-2/portal/branches/JPA_BRANCH/components/jetspeed-security/src/main/java/org/apache/jetspeed/security/impl/PersistentJetspeedPrincipal.java (original)
+++ portals/jetspeed-2/portal/branches/JPA_BRANCH/components/jetspeed-security/src/main/java/org/apache/jetspeed/security/impl/PersistentJetspeedPrincipal.java Sun Feb 8 21:28:35 2009
@@ -37,6 +37,7 @@
public abstract class PersistentJetspeedPrincipal extends TransientJetspeedPrincipal implements PersistenceBrokerAware, Serializable
{
private Long id;
+ private String name;
private Timestamp creationDate;
private Timestamp modifiedDate;
private boolean enabled = true;
@@ -44,6 +45,7 @@
private boolean readOnly;
private boolean removable = true;
private boolean extendable = true;
+ private Long domainId;
@SuppressWarnings("unchecked")
protected Collection attributes;
@@ -55,7 +57,8 @@
public PersistentJetspeedPrincipal(String name)
{
- super(name);
+ super();
+ this.name = name;
}
public Long getId()
@@ -63,6 +66,11 @@
return id;
}
+ public String getName()
+ {
+ return name;
+ }
+
public void setName(String name)
{
this.name = name;
@@ -145,7 +153,7 @@
{
attributes = new ArrayList<SecurityAttributeValue>();
}
- sa = new SecurityAttributesImpl(this, attributes, isReadOnly(), isExtendable());
+ sa = new SecurityAttributesImpl(this, attributes, SecurityAttributeValueImpl.class, isReadOnly(), isExtendable());
}
return sa;
}
@@ -189,8 +197,18 @@
this.modifiedDate = new Timestamp(System.currentTimeMillis());
}
- protected boolean isSynchronizing(){
+ protected boolean isSynchronizing()
+ {
return SynchronizationStateAccess.isSynchronizing();
}
+ public Long getDomainId()
+ {
+ return domainId;
+ }
+
+ public void setDomainId(Long domainId)
+ {
+ this.domainId = domainId;
+ }
}
Modified: portals/jetspeed-2/portal/branches/JPA_BRANCH/components/jetspeed-security/src/main/java/org/apache/jetspeed/security/impl/RoleManagerImpl.java
URL: http://svn.apache.org/viewvc/portals/jetspeed-2/portal/branches/JPA_BRANCH/components/jetspeed-security/src/main/java/org/apache/jetspeed/security/impl/RoleManagerImpl.java?rev=742172&r1=742171&r2=742172&view=diff
==============================================================================
--- portals/jetspeed-2/portal/branches/JPA_BRANCH/components/jetspeed-security/src/main/java/org/apache/jetspeed/security/impl/RoleManagerImpl.java (original)
+++ portals/jetspeed-2/portal/branches/JPA_BRANCH/components/jetspeed-security/src/main/java/org/apache/jetspeed/security/impl/RoleManagerImpl.java Sun Feb 8 21:28:35 2009
@@ -16,69 +16,27 @@
*/
package org.apache.jetspeed.security.impl;
-import java.util.List;
-
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
-import org.apache.jetspeed.security.Group;
-import org.apache.jetspeed.security.GroupManager;
-import org.apache.jetspeed.security.JetspeedPrincipal;
-import org.apache.jetspeed.security.JetspeedPrincipalAssociationType;
import org.apache.jetspeed.security.JetspeedPrincipalType;
import org.apache.jetspeed.security.Role;
import org.apache.jetspeed.security.RoleManager;
-import org.apache.jetspeed.security.SecurityException;
-import org.apache.jetspeed.security.User;
-import org.apache.jetspeed.security.UserManager;
import org.apache.jetspeed.security.spi.JetspeedPrincipalAccessManager;
import org.apache.jetspeed.security.spi.JetspeedPrincipalStorageManager;
/**
- * <p>
* Implementation for managing roles.
- * </p>
- * <p>
- * Role hierarchy elements are being returned as a {@link Role}collection. The
- * backing implementation must appropriately map the role hierarchy to a
- * preferences sub-tree.
- * </p>
- * <p>
- * The convention {principal}.{subprincipal} has been chosen to name roles
- * hierachies in order to support declarative security. Implementation follow
- * the conventions enforced by the {@link Preferences}API.
- * </p>
*
* @author <a href="mailto:dlestrat@apache.org">David Le Strat </a>
* @author <a href="mailto:taylor@apache.org">David Sean Taylor </a>
* @version $Id$
*/
-public class RoleManagerImpl extends BaseJetspeedPrincipalManager implements RoleManager
+public class RoleManagerImpl extends AbstractRoleManagerImpl implements RoleManager
{
- /** The logger. */
- private static final Log log = LogFactory.getLog(RoleManagerImpl.class);
-
- private JetspeedPrincipalType userType;
- private JetspeedPrincipalType groupType;
- private UserManager userManager;
- private GroupManager groupManager;
-
- public RoleManagerImpl(JetspeedPrincipalType principalType,JetspeedPrincipalType userType,JetspeedPrincipalType groupType,
+ private static final long serialVersionUID = 1283277153286868126L;
+
+ public RoleManagerImpl(JetspeedPrincipalType principalType, JetspeedPrincipalType userType, JetspeedPrincipalType groupType,
JetspeedPrincipalAccessManager jpam, JetspeedPrincipalStorageManager jpsm)
{
- super(principalType, jpam, jpsm);
- this.userType = userType;
- this.groupType = groupType;
- }
- public void checkInitialized()
- {
- if (userManager == null)
- {
- userManager = (UserManager)getPrincipalManagerProvider().getManager(userType);
- }
- if (groupManager == null)
- {
- groupManager = (GroupManager)getPrincipalManagerProvider().getManager(groupType);
- }
+ super(principalType, userType, groupType, jpam, jpsm);
}
/* (non-Javadoc)
@@ -90,255 +48,4 @@
role.setMapped(mapped);
return role;
}
-
- /* (non-Javadoc)
- * @see org.apache.jetspeed.security.RoleManager#newTransientRole(java.lang.String)
- */
- public Role newTransientRole(String name)
- {
- TransientRole role = new TransientRole(name);
- return role;
- }
-
- /**
- * @see org.apache.jetspeed.security.RoleManager#addRole(java.lang.String)
- */
- public Role addRole(String roleName) throws SecurityException
- {
- return addRole(roleName, true);
- }
-
- /**
- * @see org.apache.jetspeed.security.RoleManager#addRole(java.lang.String, boolean)
- */
- public Role addRole(String roleName, boolean mapped) throws SecurityException
- {
- Role role = newRole(roleName, mapped);
-
- super.addPrincipal(role, null);
-
- if (log.isDebugEnabled())
- log.debug("Added role: " + roleName);
-
- return role;
- }
-
- /**
- * @see org.apache.jetspeed.security.RoleManager#removeRole(java.lang.String)
- */
- public void removeRole(String roleName) throws SecurityException
- {
- super.removePrincipal(roleName);
- }
-
- /**
- * @see org.apache.jetspeed.security.RoleManager#roleExists(java.lang.String)
- */
- public boolean roleExists(String roleName)
- {
- return super.principalExists(roleName);
- }
-
- /**
- * @see org.apache.jetspeed.security.RoleManager#getRole(java.lang.String)
- */
- public Role getRole(String roleName) throws SecurityException
- {
- Role role = (Role) super.getPrincipal(roleName);
-
- if (null == role)
- {
- throw new SecurityException(SecurityException.PRINCIPAL_DOES_NOT_EXIST.createScoped(JetspeedPrincipalType.ROLE, roleName));
- }
-
- return role;
- }
-
- /**
- * @see org.apache.jetspeed.security.RoleManager#getRolesForUser(java.lang.String)
- */
- @SuppressWarnings("unchecked")
- public List<Role> getRolesForUser(String username) throws SecurityException
- {
- return (List<Role>)super.getAssociatedFrom(username, userType, JetspeedPrincipalAssociationType.IS_MEMBER_OF);
- }
-
- /**
- * @see org.apache.jetspeed.security.RoleManager#getRolesInGroup(java.lang.String)
- */
- @SuppressWarnings("unchecked")
- public List<Role> getRolesInGroup(String groupName) throws SecurityException
- {
- return (List<Role>)super.getAssociatedFrom(groupName, groupType, JetspeedPrincipalAssociationType.IS_MEMBER_OF);
- }
-
- /**
- * @see org.apache.jetspeed.security.RoleManager#addRoleToUser(java.lang.String,
- * java.lang.String)
- */
- public void addRoleToUser(String username, String roleName) throws SecurityException
- {
- checkInitialized();
- User user = userManager.getUser(username);
- if (user == null)
- {
- throw new SecurityException(SecurityException.PRINCIPAL_DOES_NOT_EXIST.createScoped(JetspeedPrincipalType.USER, username));
- }
- Role role = getRole(roleName);
- if (role == null)
- {
- throw new SecurityException(SecurityException.PRINCIPAL_DOES_NOT_EXIST.createScoped(JetspeedPrincipalType.ROLE, roleName));
- }
- super.addAssociation(user, role, JetspeedPrincipalAssociationType.IS_MEMBER_OF);
- }
-
- /**
- * @see org.apache.jetspeed.security.RoleManager#removeRoleFromUser(java.lang.String,
- * java.lang.String)
- */
- public void removeRoleFromUser(String username, String roleName) throws SecurityException
- {
- checkInitialized();
- User user = userManager.getUser(username);
- if (user == null)
- {
- throw new SecurityException(SecurityException.PRINCIPAL_DOES_NOT_EXIST.createScoped(JetspeedPrincipalType.USER, username));
- }
- Role role = getRole(roleName);
- if (role == null)
- {
- throw new SecurityException(SecurityException.PRINCIPAL_DOES_NOT_EXIST.createScoped(JetspeedPrincipalType.ROLE, roleName));
- }
- super.removeAssociation(user, role, JetspeedPrincipalAssociationType.IS_MEMBER_OF);
- }
-
- /**
- * @see org.apache.jetspeed.security.RoleManager#isUserInRole(java.lang.String,
- * java.lang.String)
- */
- public boolean isUserInRole(String username, String roleName) throws SecurityException
- {
- return getAssociatedNamesFrom(username, userType, JetspeedPrincipalAssociationType.IS_MEMBER_OF).contains(roleName);
- }
-
- /**
- * @see org.apache.jetspeed.security.RoleManager#addRoleToGroup(java.lang.String,
- * java.lang.String)
- */
- public void addRoleToGroup(String roleName, String groupName) throws SecurityException
- {
- checkInitialized();
- Group group = groupManager.getGroup(groupName);
- if (group == null)
- {
- throw new SecurityException(SecurityException.PRINCIPAL_DOES_NOT_EXIST.createScoped(JetspeedPrincipalType.GROUP, groupName));
- }
- Role role = getRole(roleName);
- if (role == null)
- {
- throw new SecurityException(SecurityException.PRINCIPAL_DOES_NOT_EXIST.createScoped(JetspeedPrincipalType.ROLE, roleName));
- }
- super.addAssociation(group, role, JetspeedPrincipalAssociationType.IS_MEMBER_OF);
- }
-
- /**
- * @see org.apache.jetspeed.security.RoleManager#removeRoleFromGroup(java.lang.String,
- * java.lang.String)
- */
- public void removeRoleFromGroup(String roleName, String groupName) throws SecurityException
- {
- checkInitialized();
- Group group = groupManager.getGroup(groupName);
- if (group == null)
- {
- throw new SecurityException(SecurityException.PRINCIPAL_DOES_NOT_EXIST.createScoped(JetspeedPrincipalType.GROUP, groupName));
- }
- Role role = getRole(roleName);
- if (role == null)
- {
- throw new SecurityException(SecurityException.PRINCIPAL_DOES_NOT_EXIST.createScoped(JetspeedPrincipalType.ROLE, roleName));
- }
- super.removeAssociation(group, role, JetspeedPrincipalAssociationType.IS_MEMBER_OF);
- }
-
- /**
- * @see org.apache.jetspeed.security.RoleManager#isGroupInRole(java.lang.String,
- * java.lang.String)
- */
- public boolean isGroupInRole(String groupName, String roleName) throws SecurityException
- {
- return getAssociatedNamesFrom(groupName, groupType, JetspeedPrincipalAssociationType.IS_MEMBER_OF).contains(roleName);
- }
-
- /**
- * @see org.apache.jetspeed.security.RoleManager#getRoles(java.lang.String)
- */
- @SuppressWarnings("unchecked")
- public List<Role> getRoles(String nameFilter) throws SecurityException
- {
- return (List<Role>)super.getPrincipals(nameFilter);
- }
-
- public List<String> getRoleNames(String nameFilter) throws SecurityException
- {
- return getPrincipalNames(nameFilter);
- }
-
- /**
- * @see org.apache.jetspeed.security.RoleManager#updateRole(org.apache.jetspeed.security.Role)
- */
- public void updateRole(Role role) throws SecurityException
- {
- super.updatePrincipal(role);
- }
-
- /* (non-Javadoc)
- * @see org.apache.jetspeed.security.RoleManager#addRoleToRole(org.apache.jetspeed.security.Role, org.apache.jetspeed.security.Role, java.lang.String)
- */
- public void addRoleToRole(Role from, Role to, String associationName) throws SecurityException
- {
- this.addAssociation(from, to, associationName);
- }
-
- /* (non-Javadoc)
- * @see org.apache.jetspeed.security.RoleManager#removeRoleFromRole(org.apache.jetspeed.security.Role, org.apache.jetspeed.security.Role, java.lang.String)
- */
- public void removeRoleFromRole(Role from, Role to, String associationName) throws SecurityException
- {
- removeAssociation(from, to, associationName);
- }
-
- /* (non-Javadoc)
- * @see org.apache.jetspeed.security.RoleManager#getRolesAssociatedFrom(org.apache.jetspeed.security.Role, java.lang.String)
- */
- @SuppressWarnings("unchecked")
- public List<Role> getRolesAssociatedFrom(Role from, String associationName)
- {
- return (List<Role>)getAssociatedFrom(from.getName(), from.getType(), associationName);
- }
-
- /* (non-Javadoc)
- * @see org.apache.jetspeed.security.RoleManager#getRolesAssociatedTo(org.apache.jetspeed.security.Role, java.lang.String)
- */
- @SuppressWarnings("unchecked")
- public List<Role> getRolesAssociatedTo(Role to, String associationName)
- {
- return (List<Role>)getAssociatedFrom(to.getName(), to.getType(), associationName);
- }
-
- /* (non-Javadoc)
- * @see org.apache.jetspeed.security.JetspeedPrincipalManager#newPrincipal(java.lang.String, boolean)
- */
- public JetspeedPrincipal newPrincipal(String name, boolean mapped)
- {
- return newRole(name, mapped);
- }
-
- /* (non-Javadoc)
- * @see org.apache.jetspeed.security.JetspeedPrincipalManager#newTransientPrincipal(java.lang.String)
- */
- public JetspeedPrincipal newTransientPrincipal(String name)
- {
- return newTransientRole(name);
- }
}
\ No newline at end of file
Copied: portals/jetspeed-2/portal/branches/JPA_BRANCH/components/jetspeed-security/src/main/java/org/apache/jetspeed/security/impl/SecurityAttributeValueImpl.java (from r736476, portals/jetspeed-2/portal/branches/JPA_BRANCH/components/jetspeed-security/src/main/java/org/apache/jetspeed/security/impl/SecurityAttributeValue.java)
URL: http://svn.apache.org/viewvc/portals/jetspeed-2/portal/branches/JPA_BRANCH/components/jetspeed-security/src/main/java/org/apache/jetspeed/security/impl/SecurityAttributeValueImpl.java?p2=portals/jetspeed-2/portal/branches/JPA_BRANCH/components/jetspeed-security/src/main/java/org/apache/jetspeed/security/impl/SecurityAttributeValueImpl.java&p1=portals/jetspeed-2/portal/branches/JPA_BRANCH/components/jetspeed-security/src/main/java/org/apache/jetspeed/security/impl/SecurityAttributeValue.java&r1=736476&r2=742172&rev=742172&view=diff
==============================================================================
--- portals/jetspeed-2/portal/branches/JPA_BRANCH/components/jetspeed-security/src/main/java/org/apache/jetspeed/security/impl/SecurityAttributeValue.java (original)
+++ portals/jetspeed-2/portal/branches/JPA_BRANCH/components/jetspeed-security/src/main/java/org/apache/jetspeed/security/impl/SecurityAttributeValueImpl.java Sun Feb 8 21:28:35 2009
@@ -23,7 +23,7 @@
* @version $Id$
*
*/
-public class SecurityAttributeValue implements Serializable
+public class SecurityAttributeValueImpl implements SecurityAttributeValue, Serializable
{
private static final long serialVersionUID = -5305625934872996140L;
@@ -33,13 +33,11 @@
private String name;
private String value;
- /*
- * default constructor required for persistence engine
- */
- public SecurityAttributeValue()
- {}
+ public SecurityAttributeValueImpl()
+ {
+ }
- public SecurityAttributeValue(String name)
+ public void setName(String name)
{
this.name = name;
}
Modified: portals/jetspeed-2/portal/branches/JPA_BRANCH/components/jetspeed-security/src/main/java/org/apache/jetspeed/security/impl/SecurityAttributesImpl.java
URL: http://svn.apache.org/viewvc/portals/jetspeed-2/portal/branches/JPA_BRANCH/components/jetspeed-security/src/main/java/org/apache/jetspeed/security/impl/SecurityAttributesImpl.java?rev=742172&r1=742171&r2=742172&view=diff
==============================================================================
--- portals/jetspeed-2/portal/branches/JPA_BRANCH/components/jetspeed-security/src/main/java/org/apache/jetspeed/security/impl/SecurityAttributesImpl.java (original)
+++ portals/jetspeed-2/portal/branches/JPA_BRANCH/components/jetspeed-security/src/main/java/org/apache/jetspeed/security/impl/SecurityAttributesImpl.java Sun Feb 8 21:28:35 2009
@@ -45,6 +45,7 @@
* unchecked collection to allow using default OJB managed collections which are not Generics extendable
*/
private Collection avColl;
+ private Class<?> avClass;
private boolean readOnly;
private boolean extendable;
private boolean persistent;
@@ -60,16 +61,18 @@
throw new IllegalArgumentException("Provided JetspeedPrincipal is not transient");
}
this.avColl = new ArrayList<SecurityAttributeValue>();
+ this.avClass = null;
this.persistent = false;
this.readOnly = false;
this.extendable = false;
}
@SuppressWarnings("unchecked")
- public SecurityAttributesImpl(JetspeedPrincipal jp, Collection avColl, boolean readOnly, boolean extendable)
+ public SecurityAttributesImpl(JetspeedPrincipal jp, Collection avColl, Class<?> avClass, boolean readOnly, boolean extendable)
{
this.jp = jp;
this.avColl = avColl;
+ this.avClass = avClass;
this.persistent = true;
this.readOnly = jp.getType().getAttributeTypes().isReadOnly() ? true : readOnly;
this.extendable = jp.getType().getAttributeTypes().isExtendable() ? true : extendable;
@@ -200,14 +203,35 @@
throw new SecurityException(SecurityException.ATTRIBUTES_NOT_EXTENDABLE.createScoped(getPrincipal().getType().getName()));
}
// New INFO_CATEGORY attribute, always of type STRING
- SecurityAttributeValue value = new SecurityAttributeValue(name);
+ SecurityAttributeValue value = null;
+ try
+ {
+ value = (SecurityAttributeValue)avClass.newInstance();
+ }
+ catch (InstantiationException ie)
+ {
+ }
+ catch (IllegalAccessException ie)
+ {
+ }
+ value.setName(name);
avColl.add(value);
- sa = new SecurityAttributeImpl(new SecurityAttributeTypeImpl(name), value, persistent);
-
+ sa = new SecurityAttributeImpl(new SecurityAttributeTypeImpl(name), value, persistent);
}
else
{
- SecurityAttributeValue value = new SecurityAttributeValue(name);
+ SecurityAttributeValue value = null;
+ try
+ {
+ value = (SecurityAttributeValue)avClass.newInstance();
+ }
+ catch (InstantiationException ie)
+ {
+ }
+ catch (IllegalAccessException ie)
+ {
+ }
+ value.setName(name);
avColl.add(value);
sa = new SecurityAttributeImpl(sat, value, persistent);
}
Modified: portals/jetspeed-2/portal/branches/JPA_BRANCH/components/jetspeed-security/src/main/java/org/apache/jetspeed/security/impl/TransientJetspeedPrincipal.java
URL: http://svn.apache.org/viewvc/portals/jetspeed-2/portal/branches/JPA_BRANCH/components/jetspeed-security/src/main/java/org/apache/jetspeed/security/impl/TransientJetspeedPrincipal.java?rev=742172&r1=742171&r2=742172&view=diff
==============================================================================
--- portals/jetspeed-2/portal/branches/JPA_BRANCH/components/jetspeed-security/src/main/java/org/apache/jetspeed/security/impl/TransientJetspeedPrincipal.java (original)
+++ portals/jetspeed-2/portal/branches/JPA_BRANCH/components/jetspeed-security/src/main/java/org/apache/jetspeed/security/impl/TransientJetspeedPrincipal.java Sun Feb 8 21:28:35 2009
@@ -17,163 +17,59 @@
package org.apache.jetspeed.security.impl;
-import java.io.Serializable;
-import java.sql.Timestamp;
-import java.util.Map;
-
-import org.apache.jetspeed.security.JetspeedPrincipal;
-import org.apache.jetspeed.security.JetspeedPrincipalManagerProvider;
-import org.apache.jetspeed.security.JetspeedPrincipalType;
-import org.apache.jetspeed.security.SecurityAttributes;
-import org.apache.jetspeed.security.SecurityException;
-
/**
- * @$
+ * TransientJetspeedPrincipal
*
+ * @author <a href="mailto:rwatler@apache.org">Randy Watler</a>
+ * @version $Id$
*/
-public abstract class TransientJetspeedPrincipal implements JetspeedPrincipal, Serializable
+public class TransientJetspeedPrincipal extends AbstractTransientJetspeedPrincipal
{
- protected static JetspeedPrincipalManagerProvider jpmp;
-
+ private static final long serialVersionUID = 5038976589776864304L;
+
+ protected String type;
protected String name;
- @SuppressWarnings("unused")
- private String type;
-
- protected transient JetspeedPrincipalType jpt;
- protected transient SecurityAttributes sa;
private Long domainId;
- public static void setJetspeedPrincipalManagerProvider(JetspeedPrincipalManagerProvider jpmp)
- {
- TransientJetspeedPrincipal.jpmp = jpmp;
- }
-
protected TransientJetspeedPrincipal()
{
- type = jpmp.getPrincipalTypeByClassName(getClass().getName()).getName();
+ super();
}
protected TransientJetspeedPrincipal(String type, String name)
{
+ super(type);
this.name = name;
- this.type = type;
}
- public TransientJetspeedPrincipal(String name)
+ protected TransientJetspeedPrincipal(String name)
{
- this();
- this.name = name;
- }
-
- public Long getId()
- {
- return null;
- }
-
- public String getName()
- {
- return name;
- }
-
- public synchronized JetspeedPrincipalType getType()
- {
- if (jpt == null)
- {
- jpt = jpmp.getPrincipalType(type);
- }
- return jpt;
- }
-
- public Timestamp getCreationDate()
- {
- return null;
- }
-
- public Timestamp getModifiedDate()
- {
- return null;
- }
-
- public boolean isTransient()
- {
- return true;
- }
-
- public boolean isEnabled()
- {
- return true;
- }
-
- public void setEnabled(boolean enabled) throws SecurityException
- {
- throw new UnsupportedOperationException();
- }
-
- public boolean isMapped()
- {
- return false;
- }
-
- public void setMapped(boolean mapped)
- {
- throw new UnsupportedOperationException();
- }
-
- public boolean isReadOnly()
- {
- return false;
- }
-
- public void setReadOnly(boolean readOnly)
- {
- throw new UnsupportedOperationException();
- }
-
- public boolean isRemovable()
- {
- return false;
+ super();
+ this.name = name;
}
- public void setRemovable(boolean removable)
+ public String getTypeName()
{
- throw new UnsupportedOperationException();
+ return type;
}
- public boolean isExtendable()
- {
- return true;
- }
-
- public void setExtendable(boolean extendable)
+ public void setTypeName(String type)
{
- throw new UnsupportedOperationException();
- }
-
- public synchronized SecurityAttributes getSecurityAttributes()
- {
- if (sa == null)
- {
- sa = new SecurityAttributesImpl(this);
- }
- return sa;
+ this.type = type;
}
- public Map<String, String> getInfoMap()
+ public String getName()
{
- return getSecurityAttributes().getInfoMap();
+ return name;
}
- public String toString()
- {
- return getType().getName()+": "+getName()+" (id: "+(getId())+", transient: "+isTransient()+", mapped: "+isMapped()+")";
- }
-
public Long getDomainId()
{
return domainId;
}
-
- public void setDomainId(Long domainId){
- this.domainId=domainId;
+
+ public void setDomainId(Long domainId)
+ {
+ this.domainId = domainId;
}
}
Modified: portals/jetspeed-2/portal/branches/JPA_BRANCH/components/jetspeed-security/src/main/java/org/apache/jetspeed/security/impl/UserManagerImpl.java
URL: http://svn.apache.org/viewvc/portals/jetspeed-2/portal/branches/JPA_BRANCH/components/jetspeed-security/src/main/java/org/apache/jetspeed/security/impl/UserManagerImpl.java?rev=742172&r1=742171&r2=742172&view=diff
==============================================================================
--- portals/jetspeed-2/portal/branches/JPA_BRANCH/components/jetspeed-security/src/main/java/org/apache/jetspeed/security/impl/UserManagerImpl.java (original)
+++ portals/jetspeed-2/portal/branches/JPA_BRANCH/components/jetspeed-security/src/main/java/org/apache/jetspeed/security/impl/UserManagerImpl.java Sun Feb 8 21:28:35 2009
@@ -16,257 +16,47 @@
*/
package org.apache.jetspeed.security.impl;
-import java.security.Principal;
-import java.util.HashMap;
-import java.util.HashSet;
-import java.util.List;
-import java.util.Map;
-import java.util.Set;
-
-import javax.security.auth.Subject;
-
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
-import org.apache.jetspeed.security.AuthenticatedUser;
-import org.apache.jetspeed.security.AuthenticatedUserImpl;
-import org.apache.jetspeed.security.GroupManager;
-import org.apache.jetspeed.security.JetspeedPrincipal;
-import org.apache.jetspeed.security.JetspeedPrincipalAssociationType;
import org.apache.jetspeed.security.JetspeedPrincipalType;
-import org.apache.jetspeed.security.JetspeedSubjectFactory;
-import org.apache.jetspeed.security.PasswordCredential;
-import org.apache.jetspeed.security.PrincipalsSet;
-import org.apache.jetspeed.security.RoleManager;
-import org.apache.jetspeed.security.SecurityException;
import org.apache.jetspeed.security.User;
-import org.apache.jetspeed.security.UserCredential;
import org.apache.jetspeed.security.UserManager;
import org.apache.jetspeed.security.spi.JetspeedPrincipalAccessManager;
import org.apache.jetspeed.security.spi.JetspeedPrincipalStorageManager;
import org.apache.jetspeed.security.spi.UserPasswordCredentialManager;
import org.apache.jetspeed.security.spi.UserSubjectPrincipalsProvider;
-import org.apache.jetspeed.security.spi.UserSubjectPrincipalsResolver;
/**
- * <p>
* Implementation for managing users and provides access to the {@link User}.
- * </p>
*
* @author <a href="mailto:dlestrat@apache.org">David Le Strat </a>
* @author <a href="mailto:vkumar@apache.org">Vivek Kumar </a>
* @version $Id$
*/
-public class UserManagerImpl extends BaseJetspeedPrincipalManager implements UserManager, UserSubjectPrincipalsProvider
+public class UserManagerImpl extends AbstractUserManagerImpl implements UserManager, UserSubjectPrincipalsProvider
{
- private static final Log log = LogFactory.getLog(UserManagerImpl.class);
-
- private String anonymousUser = "guest";
- private JetspeedPrincipalType roleType;
- private JetspeedPrincipalType groupType;
-
- private UserPasswordCredentialManager credentialManager;
- private RoleManager roleManager;
- private GroupManager groupManager;
- private Map<String, UserSubjectPrincipalsResolver> usprMap = new HashMap<String, UserSubjectPrincipalsResolver>();
+ private static final long serialVersionUID = 9190153823246723079L;
public UserManagerImpl(JetspeedPrincipalType principalType, JetspeedPrincipalType roleType, JetspeedPrincipalType groupType,
- JetspeedPrincipalAccessManager jpam, JetspeedPrincipalStorageManager jpsm, UserPasswordCredentialManager credentialManager)
- {
- super(principalType, jpam, jpsm);
- this.credentialManager = credentialManager;
- this.roleType = roleType;
- this.groupType = groupType;
- }
-
- public void checkInitialized()
- {
- if (groupManager == null)
- {
- groupManager = (GroupManager) getPrincipalManagerProvider().getManager(groupType);
- }
- if (roleManager == null)
- {
- roleManager = (RoleManager) getPrincipalManagerProvider().getManager(roleType);
- }
- }
-
- public User addUser(String username) throws SecurityException
- {
- return addUser(username, true);
- }
-
- public User addUser(String username, boolean mapped) throws SecurityException
- {
- User user = newUser(username, mapped);
-
- super.addPrincipal(user, null);
-
- if (log.isDebugEnabled())
- log.debug("Added user: " + username);
-
- return user;
- }
-
- public String getAnonymousUser()
- {
- return anonymousUser;
- }
-
- public PasswordCredential getPasswordCredential(User user) throws SecurityException
- {
- if (credentialManager != null)
- {
- return credentialManager.getPasswordCredential(user);
- }
- return null;
- }
-
- public Subject getSubject(User user) throws SecurityException
- {
- if (credentialManager != null)
- {
- PasswordCredential pwc = getPasswordCredential(user);
- if (pwc != null)
- {
- UserCredential credential = new UserCredentialImpl(pwc);
- HashSet<Object> privateCred = new HashSet<Object>();
- privateCred.add(credential);
- return getSubject(new AuthenticatedUserImpl(user, null, privateCred));
- }
- }
- return getSubject(new AuthenticatedUserImpl(user, null, null));
- }
-
- public Subject getSubject(AuthenticatedUser user) throws SecurityException
- {
- Set<Principal> principals = new PrincipalsSet();
- resolveSubjectPrincipals(user, principals);
- return JetspeedSubjectFactory.createSubject(user.getUser(), getPublicCredentialsForSubject(user), getPrivateCredentialsForSubject(user), principals);
- }
-
- protected Set<Object> getPublicCredentialsForSubject(AuthenticatedUser user)
- {
- HashSet<Object> credentials = new HashSet<Object>();
- if (user.getPublicCredentials() != null)
- {
- credentials.addAll(user.getPublicCredentials());
- }
- return credentials;
- }
-
- protected Set<Object> getPrivateCredentialsForSubject(AuthenticatedUser user)
- {
- HashSet<Object> credentials = new HashSet<Object>();
- if (user.getPrivateCredentials() != null)
- {
- credentials.addAll(user.getPrivateCredentials());
- }
- return credentials;
- }
-
- protected void resolveSubjectPrincipals(AuthenticatedUser user, Set<Principal> principals) throws SecurityException
- {
- checkInitialized();
- HashSet<Long> resolvedIds = new HashSet<Long>();
- for (UserSubjectPrincipalsResolver resolver : usprMap.values())
- {
- resolver.resolve(user.getUser(), resolvedIds, principals, usprMap);
- }
- }
-
- public User getUser(String username) throws SecurityException
- {
- User user = (User)getPrincipal(username);
- if (null == user)
- {
- throw new SecurityException(SecurityException.PRINCIPAL_DOES_NOT_EXIST.createScoped(JetspeedPrincipalType.USER, username));
- }
- return user;
- }
-
- public List<String> getUserNames(String nameFilter) throws SecurityException
- {
- return getPrincipalNames(nameFilter);
- }
-
- public List<User> getUsers(String nameFilter) throws SecurityException
- {
- return (List<User>) getPrincipals(nameFilter);
- }
-
- public List<User> getUsersInGroup(String groupFullPathName) throws SecurityException
+ JetspeedPrincipalAccessManager jpam, JetspeedPrincipalStorageManager jpsm, UserPasswordCredentialManager credentialManager)
{
- return (List<User>) super.getAssociatedTo(groupFullPathName, groupType, JetspeedPrincipalAssociationType.IS_MEMBER_OF);
- }
-
- public List<User> getUsersInRole(String roleFullPathName) throws SecurityException
- {
- return (List<User>) super.getAssociatedTo(roleFullPathName, roleType, JetspeedPrincipalAssociationType.IS_MEMBER_OF);
- }
-
- public List<User> lookupUsers(String attributeName, String attributeValue) throws SecurityException
- {
- return (List<User>) super.getPrincipalsByAttribute(attributeName, attributeValue);
- }
-
- public User newTransientUser(String name)
- {
- TransientUser user = new TransientUser(name);
- return user;
+ super(principalType, roleType, groupType, jpam, jpsm, credentialManager);
}
+ /* (non-Javadoc)
+ * @see org.apache.jetspeed.security.UserManager#newUser(java.lang.String)
+ */
public User newUser(String name)
{
UserImpl user = new UserImpl(name);
return user;
}
+ /* (non-Javadoc)
+ * @see org.apache.jetspeed.security.UserManager#newUser(java.lang.String, boolean)
+ */
public User newUser(String name, boolean mapped)
{
UserImpl user = new UserImpl(name);
user.setMapped(mapped);
return user;
}
-
- public void removeUser(String username) throws SecurityException
- {
- JetspeedPrincipal user;
-
- user = getUser(username);
- super.removePrincipal(user);
- }
-
- public void storePasswordCredential(PasswordCredential credential) throws SecurityException
- {
- if (credentialManager == null)
- {
- throw new UnsupportedOperationException();
- }
- credentialManager.storePasswordCredential(credential);
- }
-
- public void updateUser(User user) throws SecurityException
- {
- super.updatePrincipal(user);
- }
-
- public boolean userExists(String username)
- {
- return super.principalExists(username);
- }
-
- public JetspeedPrincipal newPrincipal(String name, boolean mapped)
- {
- return newUser(name, mapped);
- }
-
- public JetspeedPrincipal newTransientPrincipal(String name)
- {
- return newTransientUser(name);
- }
-
- public void addSubjectPrincipalsResolver(UserSubjectPrincipalsResolver resolver)
- {
- this.usprMap.put(resolver.getPrincipalType().getName(), resolver);
- }
}
\ No newline at end of file
Modified: portals/jetspeed-2/portal/branches/JPA_BRANCH/components/jetspeed-security/src/main/java/org/apache/jetspeed/security/impl/ext/JBossLoginModule.java
URL: http://svn.apache.org/viewvc/portals/jetspeed-2/portal/branches/JPA_BRANCH/components/jetspeed-security/src/main/java/org/apache/jetspeed/security/impl/ext/JBossLoginModule.java?rev=742172&r1=742171&r2=742172&view=diff
==============================================================================
--- portals/jetspeed-2/portal/branches/JPA_BRANCH/components/jetspeed-security/src/main/java/org/apache/jetspeed/security/impl/ext/JBossLoginModule.java (original)
+++ portals/jetspeed-2/portal/branches/JPA_BRANCH/components/jetspeed-security/src/main/java/org/apache/jetspeed/security/impl/ext/JBossLoginModule.java Sun Feb 8 21:28:35 2009
@@ -21,7 +21,6 @@
import java.util.ArrayList;
import java.util.Collections;
import java.util.Enumeration;
-import java.util.List;
import javax.security.auth.Subject;
@@ -29,11 +28,10 @@
import org.apache.jetspeed.security.AuthenticationProvider;
import org.apache.jetspeed.security.Role;
import org.apache.jetspeed.security.SubjectHelper;
-import org.apache.jetspeed.security.User;
+import org.apache.jetspeed.security.RoleManager;
import org.apache.jetspeed.security.UserManager;
import org.apache.jetspeed.security.UserSubjectPrincipal;
import org.apache.jetspeed.security.impl.DefaultLoginModule;
-import org.apache.jetspeed.security.impl.RoleImpl;
/**
* <p>Configures Subject principals for JBoss JAAS implementation
@@ -92,16 +90,17 @@
/**
* Create a new JBoss login module that uses the given user manager.
* @param userManager
+ * @param roleManager
* @see DefaultLoginModule#DefaultLoginModule(UserManager)
*/
- protected JBossLoginModule (AuthenticationProvider authProvider, UserManager userManager)
+ protected JBossLoginModule (AuthenticationProvider authProvider, UserManager userManager, RoleManager roleManager)
{
- super (authProvider, userManager);
+ super (authProvider, userManager, roleManager);
}
- public JBossLoginModule(AuthenticationProvider authProvider, UserManager userManager, String portalUserRole)
+ public JBossLoginModule(AuthenticationProvider authProvider, UserManager userManager, RoleManager roleManager, String portalUserRole)
{
- super(authProvider, userManager, portalUserRole);
+ super(authProvider, userManager, roleManager, portalUserRole);
}
protected void commitSubject(Subject containerSubject, Subject jetspeedSubject, AuthenticatedUser user)
@@ -124,7 +123,7 @@
{
// add portal user role: used in web.xml authorization to
// detect authenticated portal users
- roles.addMember(new RoleImpl(portalUserRole));
+ roles.addMember(rms.newRole(portalUserRole, false));
}
subject.getPrincipals().add(roles);
}
Added: portals/jetspeed-2/portal/branches/JPA_BRANCH/components/jetspeed-security/src/main/java/org/apache/jetspeed/security/jpa/GroupImpl.java
URL: http://svn.apache.org/viewvc/portals/jetspeed-2/portal/branches/JPA_BRANCH/components/jetspeed-security/src/main/java/org/apache/jetspeed/security/jpa/GroupImpl.java?rev=742172&view=auto
==============================================================================
--- portals/jetspeed-2/portal/branches/JPA_BRANCH/components/jetspeed-security/src/main/java/org/apache/jetspeed/security/jpa/GroupImpl.java (added)
+++ portals/jetspeed-2/portal/branches/JPA_BRANCH/components/jetspeed-security/src/main/java/org/apache/jetspeed/security/jpa/GroupImpl.java Sun Feb 8 21:28:35 2009
@@ -0,0 +1,51 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.jetspeed.security.jpa;
+
+import javax.persistence.DiscriminatorColumn;
+import javax.persistence.DiscriminatorValue;
+import javax.persistence.Entity;
+import javax.persistence.Inheritance;
+import javax.persistence.InheritanceType;
+import javax.persistence.Table;
+
+import org.apache.jetspeed.security.Group;
+import org.apache.jetspeed.security.JetspeedPrincipalType;
+
+/**
+ * <p>Represents a security 'group' extending BaseJetspeedPrincipal.</p>
+ * @version $Id: GroupImpl.java 695798 2008-09-16 09:48:31Z ate $
+ */
+@Entity (name="Group")
+@Inheritance (strategy=InheritanceType.SINGLE_TABLE)
+@Table (name="SECURITY_PRINCIPAL")
+@DiscriminatorColumn (name="PRINCIPAL_TYPE")
+@DiscriminatorValue (value=JetspeedPrincipalType.GROUP)
+public class GroupImpl extends PersistentJetspeedPrincipal implements Group
+{
+ private static final long serialVersionUID = 5484179899807809619L;
+
+ public GroupImpl()
+ {
+ super();
+ }
+
+ public GroupImpl(String name)
+ {
+ super(name);
+ }
+}
Added: portals/jetspeed-2/portal/branches/JPA_BRANCH/components/jetspeed-security/src/main/java/org/apache/jetspeed/security/jpa/GroupManagerImpl.java
URL: http://svn.apache.org/viewvc/portals/jetspeed-2/portal/branches/JPA_BRANCH/components/jetspeed-security/src/main/java/org/apache/jetspeed/security/jpa/GroupManagerImpl.java?rev=742172&view=auto
==============================================================================
--- portals/jetspeed-2/portal/branches/JPA_BRANCH/components/jetspeed-security/src/main/java/org/apache/jetspeed/security/jpa/GroupManagerImpl.java (added)
+++ portals/jetspeed-2/portal/branches/JPA_BRANCH/components/jetspeed-security/src/main/java/org/apache/jetspeed/security/jpa/GroupManagerImpl.java Sun Feb 8 21:28:35 2009
@@ -0,0 +1,211 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.jetspeed.security.jpa;
+
+import java.util.List;
+
+import org.apache.jetspeed.security.Group;
+import org.apache.jetspeed.security.GroupManager;
+import org.apache.jetspeed.security.JetspeedPrincipalType;
+import org.apache.jetspeed.security.SecurityException;
+import org.apache.jetspeed.security.impl.AbstractGroupManagerImpl;
+import org.apache.jetspeed.security.spi.JetspeedPrincipalAccessManager;
+import org.apache.jetspeed.security.spi.JetspeedPrincipalStorageManager;
+import org.springframework.stereotype.Repository;
+import org.springframework.transaction.annotation.Transactional;
+
+/**
+ * Implements the service interface for managing Jetsped Security Groups.
+ *
+ * @author <a href="mailto:dlestrat@apache.org">David Le Strat </a>
+ * @author <a href="mailto:taylor@apache.org">David Sean Taylor </a>
+ * @version $Id: GroupManagerImpl.java 702099 2008-10-06 11:13:38Z ate $
+ */
+@Repository
+public class GroupManagerImpl extends AbstractGroupManagerImpl implements GroupManager
+{
+ private static final long serialVersionUID = -438359072678093276L;
+
+ public GroupManagerImpl(JetspeedPrincipalType principalType, JetspeedPrincipalType userType, JetspeedPrincipalType roleType,
+ JetspeedPrincipalAccessManager jpam, JetspeedPrincipalStorageManager jpsm)
+ {
+ super(principalType, userType, roleType, jpam, jpsm);
+ }
+
+ /* (non-Javadoc)
+ * @see org.apache.jetspeed.security.GroupManager#newGroup(java.lang.String, boolean)
+ */
+ public Group newGroup(String name, boolean mapped)
+ {
+ GroupImpl group = new GroupImpl(name);
+ group.setMapped(mapped);
+ return group;
+ }
+
+ /* (non-Javadoc)
+ * @see org.apache.jetspeed.security.impl.AbstractGroupManagerImpl#addGroup(java.lang.String)
+ */
+ @Transactional (readOnly=false, rollbackFor=SecurityException.class)
+ public Group addGroup(String groupName) throws SecurityException
+ {
+ return super.addGroup(groupName);
+ }
+
+ /* (non-Javadoc)
+ * @see org.apache.jetspeed.security.impl.AbstractGroupManagerImpl#addGroup(java.lang.String, boolean)
+ */
+ @Transactional (readOnly=false, rollbackFor=SecurityException.class)
+ public Group addGroup(String groupName, boolean mapped) throws SecurityException
+ {
+ return super.addGroup(groupName, mapped);
+ }
+
+ /* (non-Javadoc)
+ * @see org.apache.jetspeed.security.impl.AbstractGroupManagerImpl#removeGroup(java.lang.String)
+ */
+ @Transactional (readOnly=false, rollbackFor=SecurityException.class)
+ public void removeGroup(String groupName) throws SecurityException
+ {
+ super.removeGroup(groupName);
+ }
+
+ /* (non-Javadoc)
+ * @see org.apache.jetspeed.security.impl.AbstractGroupManagerImpl#groupExists(java.lang.String)
+ */
+ @Transactional (readOnly=true)
+ public boolean groupExists(String groupName)
+ {
+ return super.groupExists(groupName);
+ }
+
+ /* (non-Javadoc)
+ * @see org.apache.jetspeed.security.impl.AbstractGroupManagerImpl#getGroup(java.lang.String)
+ */
+ @Transactional (readOnly=true, rollbackFor=SecurityException.class)
+ public Group getGroup(String groupName) throws SecurityException
+ {
+ return super.getGroup(groupName);
+ }
+
+ /* (non-Javadoc)
+ * @see org.apache.jetspeed.security.impl.AbstractGroupManagerImpl#getGroupsForUser(java.lang.String)
+ */
+ @Transactional (readOnly=true, rollbackFor=SecurityException.class)
+ public List<Group> getGroupsForUser(String username) throws SecurityException
+ {
+ return super.getGroupsForUser(username);
+ }
+
+ /* (non-Javadoc)
+ * @see org.apache.jetspeed.security.impl.AbstractGroupManagerImpl#getGroupsInRole(java.lang.String)
+ */
+ @Transactional (readOnly=true, rollbackFor=SecurityException.class)
+ public List<Group> getGroupsInRole(String roleName) throws SecurityException
+ {
+ return super.getGroupsInRole(roleName);
+ }
+
+ /* (non-Javadoc)
+ * @see org.apache.jetspeed.security.impl.AbstractGroupManagerImpl#addUserToGroup(java.lang.String, java.lang.String)
+ */
+ @Transactional (readOnly=false, rollbackFor=SecurityException.class)
+ public void addUserToGroup(String username, String groupName) throws SecurityException
+ {
+ super.addUserToGroup(username, groupName);
+ }
+
+ /* (non-Javadoc)
+ * @see org.apache.jetspeed.security.impl.AbstractGroupManagerImpl#removeUserFromGroup(java.lang.String, java.lang.String)
+ */
+ @Transactional (readOnly=false, rollbackFor=SecurityException.class)
+ public void removeUserFromGroup(String username, String groupName) throws SecurityException
+ {
+ super.removeUserFromGroup(username, groupName);
+ }
+
+ /* (non-Javadoc)
+ * @see org.apache.jetspeed.security.impl.AbstractGroupManagerImpl#isUserInGroup(java.lang.String, java.lang.String)
+ */
+ @Transactional (readOnly=true, rollbackFor=SecurityException.class)
+ public boolean isUserInGroup(String username, String groupName) throws SecurityException
+ {
+ return super.isUserInGroup(username, groupName);
+ }
+
+ /* (non-Javadoc)
+ * @see org.apache.jetspeed.security.impl.AbstractGroupManagerImpl#getGroups(java.lang.String)
+ */
+ @Transactional (readOnly=true, rollbackFor=SecurityException.class)
+ public List<Group> getGroups(String nameFilter) throws SecurityException
+ {
+ return super.getGroups(nameFilter);
+ }
+
+ /* (non-Javadoc)
+ * @see org.apache.jetspeed.security.impl.AbstractGroupManagerImpl#getGroupNames(java.lang.String)
+ */
+ @Transactional (readOnly=true, rollbackFor=SecurityException.class)
+ public List<String> getGroupNames(String nameFilter) throws SecurityException
+ {
+ return super.getGroupNames(nameFilter);
+ }
+
+ /* (non-Javadoc)
+ * @see org.apache.jetspeed.security.impl.AbstractGroupManagerImpl#updateGroup(org.apache.jetspeed.security.Group)
+ */
+ @Transactional (readOnly=false, rollbackFor=SecurityException.class)
+ public void updateGroup(Group group) throws SecurityException
+ {
+ super.updateGroup(group);
+ }
+
+ /* (non-Javadoc)
+ * @see org.apache.jetspeed.security.impl.AbstractGroupManagerImpl#addGroupToGroup(org.apache.jetspeed.security.Group, org.apache.jetspeed.security.Group, java.lang.String)
+ */
+ @Transactional (readOnly=false, rollbackFor=SecurityException.class)
+ public void addGroupToGroup(Group from, Group to, String associationName) throws SecurityException
+ {
+ super.addGroupToGroup(from, to, associationName);
+ }
+
+ /* (non-Javadoc)
+ * @see org.apache.jetspeed.security.impl.AbstractGroupManagerImpl#removeGroupFromGroup(org.apache.jetspeed.security.Group, org.apache.jetspeed.security.Group, java.lang.String)
+ */
+ @Transactional (readOnly=false, rollbackFor=SecurityException.class)
+ public void removeGroupFromGroup(Group from, Group to, String associationName) throws SecurityException
+ {
+ super.removeGroupFromGroup(from, to, associationName);
+ }
+
+ /* (non-Javadoc)
+ * @see org.apache.jetspeed.security.impl.AbstractGroupManagerImpl#getGroupsAssociatedTo(org.apache.jetspeed.security.Group, java.lang.String)
+ */
+ @Transactional (readOnly=true)
+ public List<Group> getGroupsAssociatedTo(Group to, String associationName)
+ {
+ return super.getGroupsAssociatedTo(to, associationName);
+ }
+
+ /* (non-Javadoc)
+ * @see org.apache.jetspeed.security.impl.AbstractGroupManagerImpl#getGroupsAssociatedFrom(org.apache.jetspeed.security.Group, java.lang.String)
+ */
+ @Transactional (readOnly=true)
+ public List<Group> getGroupsAssociatedFrom(Group from, String associationName)
+ {
+ return super.getGroupsAssociatedFrom(from, associationName);
+ }
+}
\ No newline at end of file
Added: portals/jetspeed-2/portal/branches/JPA_BRANCH/components/jetspeed-security/src/main/java/org/apache/jetspeed/security/jpa/PermissionManagerImpl.java
URL: http://svn.apache.org/viewvc/portals/jetspeed-2/portal/branches/JPA_BRANCH/components/jetspeed-security/src/main/java/org/apache/jetspeed/security/jpa/PermissionManagerImpl.java?rev=742172&view=auto
==============================================================================
--- portals/jetspeed-2/portal/branches/JPA_BRANCH/components/jetspeed-security/src/main/java/org/apache/jetspeed/security/jpa/PermissionManagerImpl.java (added)
+++ portals/jetspeed-2/portal/branches/JPA_BRANCH/components/jetspeed-security/src/main/java/org/apache/jetspeed/security/jpa/PermissionManagerImpl.java Sun Feb 8 21:28:35 2009
@@ -0,0 +1,262 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.jetspeed.security.jpa;
+
+import java.security.Permissions;
+import java.security.Principal;
+import java.security.Permission;
+import java.util.Enumeration;
+import java.util.HashMap;
+import java.util.List;
+
+import org.apache.jetspeed.security.PermissionManager;
+import org.apache.jetspeed.security.JetspeedPermission;
+import org.apache.jetspeed.security.JetspeedPrincipal;
+import org.apache.jetspeed.security.SecurityException;
+import org.apache.jetspeed.security.impl.AbstractPermissionManagerImpl;
+import org.apache.jetspeed.security.spi.JetspeedPermissionAccessManager;
+import org.apache.jetspeed.security.spi.JetspeedPermissionStorageManager;
+import org.apache.jetspeed.security.spi.PersistentJetspeedPermission;
+import org.apache.jetspeed.security.spi.impl.JetspeedPermissionFactory;
+import org.apache.jetspeed.security.spi.jpa.PersistentJetspeedPermissionImpl;
+import org.springframework.stereotype.Repository;
+import org.springframework.transaction.annotation.Transactional;
+
+/**
+ * @version $Id: PermissionManagerImpl.java 700986 2008-10-02 02:00:17Z ate $
+ *
+ */
+@Repository
+public class PermissionManagerImpl extends AbstractPermissionManagerImpl implements PermissionManager
+{
+ public PermissionManagerImpl(List<JetspeedPermissionFactory> factories, JetspeedPermissionAccessManager jpam, JetspeedPermissionStorageManager jpsm)
+ {
+ super(factories, jpam, jpsm);
+ }
+
+ /* (non-Javadoc)
+ * @see org.apache.jetspeed.security.PermissionFactory#newPermission(java.lang.String, java.lang.String, java.lang.String)
+ */
+ public JetspeedPermission newPermission(String type, String name, String actions)
+ {
+ return factoryMap.get(type).newPermission(new PersistentJetspeedPermissionImpl(type, name), actions);
+ }
+
+ /* (non-Javadoc)
+ * @see org.apache.jetspeed.security.PermissionFactory#newPermission(java.lang.String, java.lang.String, int)
+ */
+ public JetspeedPermission newPermission(String type, String name, int mask)
+ {
+ return factoryMap.get(type).newPermission(new PersistentJetspeedPermissionImpl(type, name), mask);
+ }
+
+ /* (non-Javadoc)
+ * @see org.apache.jetspeed.security.PermissionManager#getPermissions(org.apache.jetspeed.security.JetspeedPrincipal)
+ */
+ @SuppressWarnings("unchecked")
+ @Transactional (readOnly=true)
+ public Permissions getPermissions(JetspeedPrincipal principal)
+ {
+ Permissions permissions = null;
+ if (principal instanceof PersistentJetspeedPrincipal && ((PersistentJetspeedPrincipal)principal).getId() != null)
+ {
+ HashMap<Long,Permissions> permissionsMap = getPermissionsMap();
+ Long id = ((PersistentJetspeedPrincipal)principal).getId();
+ permissions = permissionsMap.get(id);
+ if (permissions == null)
+ {
+ permissions = new Permissions();
+ List<PersistentJetspeedPermission> permList = (List<PersistentJetspeedPermission>)jpam.getPermissions((PersistentJetspeedPrincipal)principal);
+ for (PersistentJetspeedPermission p : permList)
+ {
+ permissions.add(factoryMap.get(p.getType()).newPermission(p));
+ }
+ permissionsMap.put(id, permissions);
+ }
+ }
+ else
+ {
+ permissions = new Permissions();
+ }
+ return permissions;
+ }
+
+ /* (non-Javadoc)
+ * @see org.apache.jetspeed.security.PermissionManager#getPermissions(java.security.Principal[])
+ */
+ @SuppressWarnings("unchecked")
+ @Transactional (readOnly=true)
+ public Permissions getPermissions(Principal[] principals)
+ {
+ Permissions allPermissions = new Permissions();
+ HashMap<Long,Permissions> permissionsMap = null;
+ for (Principal principal : principals)
+ {
+ if (principal instanceof PersistentJetspeedPrincipal && ((PersistentJetspeedPrincipal)principal).getId() != null)
+ {
+ if (permissionsMap == null)
+ {
+ permissionsMap = getPermissionsMap();
+ }
+ Long id = ((PersistentJetspeedPrincipal)principal).getId();
+ Permissions permissions = permissionsMap.get(id);
+ if (permissions == null)
+ {
+ permissions = new Permissions();
+ List<PersistentJetspeedPermission> permList = (List<PersistentJetspeedPermission>)jpam.getPermissions((PersistentJetspeedPrincipal)principal);
+ for (PersistentJetspeedPermission p : permList)
+ {
+ permissions.add(factoryMap.get(p.getType()).newPermission(p));
+ }
+ permissionsMap.put(id, permissions);
+ }
+ for (Enumeration<Permission> e = permissions.elements(); e.hasMoreElements(); )
+ {
+ allPermissions.add(e.nextElement());
+ }
+ }
+ }
+ return allPermissions;
+ }
+
+ /* (non-Javadoc)
+ * @see org.apache.jetspeed.security.impl.AbstractPermissionManagerImpl#permissionExists(org.apache.jetspeed.security.JetspeedPermission)
+ */
+ @Transactional (readOnly=true)
+ public boolean permissionExists(JetspeedPermission permission)
+ {
+ return super.permissionExists(permission);
+ }
+
+ /* (non-Javadoc)
+ * @see org.apache.jetspeed.security.impl.AbstractPermissionManagerImpl#getPermissions()
+ */
+ @Transactional (readOnly=true)
+ public List<JetspeedPermission> getPermissions()
+ {
+ return super.getPermissions();
+ }
+
+ /* (non-Javadoc)
+ * @see org.apache.jetspeed.security.impl.AbstractPermissionManagerImpl#getPermissions(java.lang.String)
+ */
+ @Transactional (readOnly=true)
+ public List<JetspeedPermission> getPermissions(String typeName)
+ {
+ return super.getPermissions(typeName);
+ }
+
+ /* (non-Javadoc)
+ * @see org.apache.jetspeed.security.impl.AbstractPermissionManagerImpl#getPermissions(java.lang.String, java.lang.String)
+ */
+ @Transactional (readOnly=true)
+ public List<JetspeedPermission> getPermissions(String typeName, String nameFilter)
+ {
+ return super.getPermissions(typeName, nameFilter);
+ }
+
+ /* (non-Javadoc)
+ * @see org.apache.jetspeed.security.impl.AbstractPermissionManagerImpl#getPrincipals(org.apache.jetspeed.security.JetspeedPermission)
+ */
+ @Transactional (readOnly=true)
+ public List<JetspeedPrincipal> getPrincipals(JetspeedPermission permission)
+ {
+ return super.getPrincipals(permission);
+ }
+
+ /* (non-Javadoc)
+ * @see org.apache.jetspeed.security.impl.AbstractPermissionManagerImpl#getPrincipals(org.apache.jetspeed.security.JetspeedPermission, java.lang.String)
+ */
+ @Transactional (readOnly=true)
+ public List<JetspeedPrincipal> getPrincipals(JetspeedPermission permission, String principalType)
+ {
+ return super.getPrincipals(permission, principalType);
+ }
+
+ /* (non-Javadoc)
+ * @see org.apache.jetspeed.security.impl.AbstractPermissionManagerImpl#addPermission(org.apache.jetspeed.security.JetspeedPermission)
+ */
+ @Transactional (readOnly=false, rollbackFor=SecurityException.class)
+ public void addPermission(JetspeedPermission permission) throws SecurityException
+ {
+ super.addPermission(permission);
+ }
+
+ /* (non-Javadoc)
+ * @see org.apache.jetspeed.security.impl.AbstractPermissionManagerImpl#removePermission(org.apache.jetspeed.security.JetspeedPermission)
+ */
+ @Transactional (readOnly=false, rollbackFor=SecurityException.class)
+ public void removePermission(JetspeedPermission permission) throws SecurityException
+ {
+ super.removePermission(permission);
+ }
+
+ /* (non-Javadoc)
+ * @see org.apache.jetspeed.security.impl.AbstractPermissionManagerImpl#updatePermission(org.apache.jetspeed.security.JetspeedPermission)
+ */
+ @Transactional (readOnly=false, rollbackFor=SecurityException.class)
+ public void updatePermission(JetspeedPermission permission) throws SecurityException
+ {
+ super.updatePermission(permission);
+ }
+
+ /* (non-Javadoc)
+ * @see org.apache.jetspeed.security.impl.AbstractPermissionManagerImpl#grantPermission(org.apache.jetspeed.security.JetspeedPermission, org.apache.jetspeed.security.JetspeedPrincipal)
+ */
+ @Transactional (readOnly=false, rollbackFor=SecurityException.class)
+ public void grantPermission(JetspeedPermission permission, JetspeedPrincipal principal) throws SecurityException
+ {
+ super.grantPermission(permission, principal);
+ }
+
+ /* (non-Javadoc)
+ * @see org.apache.jetspeed.security.impl.AbstractPermissionManagerImpl#revokePermission(org.apache.jetspeed.security.JetspeedPermission, org.apache.jetspeed.security.JetspeedPrincipal)
+ */
+ @Transactional (readOnly=false, rollbackFor=SecurityException.class)
+ public void revokePermission(JetspeedPermission permission, JetspeedPrincipal principal) throws SecurityException
+ {
+ super.revokePermission(permission, principal);
+ }
+
+ /* (non-Javadoc)
+ * @see org.apache.jetspeed.security.impl.AbstractPermissionManagerImpl#grantPermissionOnlyTo(org.apache.jetspeed.security.JetspeedPermission, java.util.List)
+ */
+ @Transactional (readOnly=false, rollbackFor=SecurityException.class)
+ public void grantPermissionOnlyTo(JetspeedPermission permission, List<JetspeedPrincipal> principals) throws SecurityException
+ {
+ super.grantPermissionOnlyTo(permission, principals);
+ }
+
+ /* (non-Javadoc)
+ * @see org.apache.jetspeed.security.impl.AbstractPermissionManagerImpl#grantPermissionOnlyTo(org.apache.jetspeed.security.JetspeedPermission, java.lang.String, java.util.List)
+ */
+ @Transactional (readOnly=false, rollbackFor=SecurityException.class)
+ public void grantPermissionOnlyTo(JetspeedPermission permission, String principalType, List<JetspeedPrincipal> principals) throws SecurityException
+ {
+ super.grantPermissionOnlyTo(permission, principalType, principals);
+ }
+
+ /* (non-Javadoc)
+ * @see org.apache.jetspeed.security.impl.AbstractPermissionManagerImpl#revokeAllPermissions(org.apache.jetspeed.security.JetspeedPrincipal)
+ */
+ @Transactional (readOnly=false, rollbackFor=SecurityException.class)
+ public void revokeAllPermissions(JetspeedPrincipal principal) throws SecurityException
+ {
+ super.revokeAllPermissions(principal);
+ }
+}
---------------------------------------------------------------------
To unsubscribe, e-mail: jetspeed-dev-unsubscribe@portals.apache.org
For additional commands, e-mail: jetspeed-dev-help@portals.apache.org