weaver 2004/10/12 13:18:47
Modified: components/security/src/java/org/apache/jetspeed/security/impl
PermissionManagerImpl.java
Log:
see: http://nagoya.apache.org/jira/browse/JS2-145
Revision Changes Path
1.8 +12 -7
jakarta-jetspeed-2/components/security/src/java/org/apache/jetspeed/security/impl/PermissionManagerImpl.java
Index: PermissionManagerImpl.java
===================================================================
RCS file:
/home/cvs/jakarta-jetspeed-2/components/security/src/java/org/apache/jetspeed/security/impl/PermissionManagerImpl.java,v
retrieving revision 1.7
retrieving revision 1.8
diff -u -r1.7 -r1.8
--- PermissionManagerImpl.java 2 Oct 2004 23:05:09 -0000 1.7
+++ PermissionManagerImpl.java 12 Oct 2004 20:18:46 -0000 1.8
@@ -21,6 +21,7 @@
import java.sql.Timestamp;
import java.util.ArrayList;
import java.util.Collection;
+import java.util.Collections;
import java.util.Iterator;
import org.apache.commons.logging.Log;
@@ -101,7 +102,9 @@
{
internalPermissions = internalPrincipal.getPermissions();
}
- return getSecurityPermissions(internalPermissions);
+ Permissions permissions = new Permissions();
+ appendSecurityPermissions(internalPermissions, permissions);
+ return permissions;
}
/**
@@ -127,7 +130,7 @@
Collection internalPermissions = internalPrincipal.getPermissions();
if (null != internalPermissions)
{
- permissions = getSecurityPermissions(internalPermissions);
+ permissions = appendSecurityPermissions(internalPermissions,
permissions);
}
}
}
@@ -161,15 +164,14 @@
/**
* <p>
* Iterate through a collection of [EMAIL PROTECTED] InternalPermission}and
build a
- * collection of [EMAIL PROTECTED] java.security.Permission}.
+ * unique collection of [EMAIL PROTECTED] java.security.Permission}.
* </p>
*
* @param omPermissions The collection of [EMAIL PROTECTED] InternalPermission}.
* @return The collection of [EMAIL PROTECTED] java.security.Permission}.
*/
- private Permissions getSecurityPermissions(Collection omPermissions)
- {
- Permissions permissions = new Permissions();
+ private Permissions appendSecurityPermissions(Collection omPermissions,
Permissions permissions)
+ {
Iterator internalPermissionsIter = omPermissions.iterator();
while (internalPermissionsIter.hasNext())
{
@@ -182,7 +184,10 @@
Constructor permissionConstructor =
permissionClass.getConstructor(parameterTypes);
Object[] initArgs = { internalPermission.getName(),
internalPermission.getActions() };
permission = (Permission)
permissionConstructor.newInstance(initArgs);
- permissions.add(permission);
+ if(!Collections.list(permissions.elements()).contains(permission))
+ {
+ permissions.add(permission);
+ }
}
catch (Exception e)
{
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]