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 ta...@apache.org on 2004/05/04 00:25:05 UTC
cvs commit: jakarta-jetspeed/src/java/org/apache/jetspeed/om/registry/base BaseSecurityAccess.java BaseSecurityEntry.java
taylor 2004/05/03 15:25:05
Modified: src/java/org/apache/jetspeed/om/registry/base
BaseSecurityAccess.java BaseSecurityEntry.java
Log:
Bug fix for AccessController Security Cache synchronization issues
I dare say if this finds all bugs, but it does now pass for all grant and revoke APIs
http://nagoya.apache.org/jira/browse/JS1-466
PR:
Obtained from:
Submitted by:
Reviewed by:
CVS: ----------------------------------------------------------------------
CVS: PR:
CVS: If this change addresses a PR in the problem report tracking
CVS: database, then enter the PR number(s) here.
CVS: Obtained from:
CVS: If this change has been taken from another system, such as NCSA,
CVS: then name the system in this line, otherwise delete it.
CVS: Submitted by:
CVS: If this code has been contributed to Apache by someone else; i.e.,
CVS: they sent us a patch or a new module, then include their name/email
CVS: address here. If this is your work then delete this line.
CVS: Reviewed by:
CVS: If we are doing pre-commit code reviews and someone else has
CVS: reviewed your changes, include their name(s) here.
CVS: If you have not had it reviewed then delete this line.
Revision Changes Path
1.12 +5 -5 jakarta-jetspeed/src/java/org/apache/jetspeed/om/registry/base/BaseSecurityAccess.java
Index: BaseSecurityAccess.java
===================================================================
RCS file: /home/cvs/jakarta-jetspeed/src/java/org/apache/jetspeed/om/registry/base/BaseSecurityAccess.java,v
retrieving revision 1.11
retrieving revision 1.12
diff -u -r1.11 -r1.12
--- BaseSecurityAccess.java 23 Feb 2004 03:08:26 -0000 1.11
+++ BaseSecurityAccess.java 3 May 2004 22:25:05 -0000 1.12
@@ -209,12 +209,12 @@
public Vector getAllAllows()
{
int elementCount = 0;
- if (this.allAllows == null)
- {
+// if (this.allAllows == null)
+// {
allAllows = new Vector();
- }
+// }
- if (allAllows.isEmpty() == true)
+ // if (allAllows.isEmpty() == true)
{
if (this.allows != null)
{
1.16 +90 -44 jakarta-jetspeed/src/java/org/apache/jetspeed/om/registry/base/BaseSecurityEntry.java
Index: BaseSecurityEntry.java
===================================================================
RCS file: /home/cvs/jakarta-jetspeed/src/java/org/apache/jetspeed/om/registry/base/BaseSecurityEntry.java,v
retrieving revision 1.15
retrieving revision 1.16
diff -u -r1.15 -r1.16
--- BaseSecurityEntry.java 23 Mar 2004 21:15:24 -0000 1.15
+++ BaseSecurityEntry.java 3 May 2004 22:25:05 -0000 1.16
@@ -319,15 +319,19 @@
public boolean allowsSpecificRole( String action, String role)
{
SecurityAccess access = (SecurityAccess) getAccess(action);
- if (access.getAllAllows() != null)
+ if (access != null)
{
- Iterator allAllows = access.getAllows().iterator();
- while (allAllows.hasNext())
- {
- SecurityAllow allow = (SecurityAllow) allAllows.next();
- if (allow.getRole() != null && allow.getRole().equals(role))
+ List allows = access.getAllows();
+ if (allows != null)
+ {
+ Iterator allAllows = allows.iterator();
+ while (allAllows.hasNext())
{
- return true;
+ SecurityAllow allow = (SecurityAllow) allAllows.next();
+ if (allow.getRole() != null && allow.getRole().equals(role))
+ {
+ return true;
+ }
}
}
}
@@ -341,16 +345,20 @@
public boolean allowsSpecificGroup(String action, String group)
{
SecurityAccess access = (SecurityAccess) getAccess(action);
- if (access.getAllAllows() != null)
+ if (access != null)
{
- Iterator allAllows = access.getAllows().iterator();
- while (allAllows.hasNext())
- {
- SecurityAllow allow = (SecurityAllow) allAllows.next();
- if (allow.getGroup() != null && allow.getGroup().equals(group))
- {
- return true;
- }
+ List allows = access.getAllows();
+ if (allows != null)
+ {
+ Iterator allAllows = allows.iterator();
+ while (allAllows.hasNext())
+ {
+ SecurityAllow allow = (SecurityAllow) allAllows.next();
+ if (allow.getGroup() != null && allow.getGroup().equals(group))
+ {
+ return true;
+ }
+ }
}
}
return false;
@@ -363,20 +371,24 @@
public boolean allowsSpecificGroupRole(String action, String group, String role)
{
SecurityAccess access = (SecurityAccess) getAccess(action);
- if (access.getAllAllows() != null)
- {
- Iterator allAllows = access.getAllows().iterator();
- while (allAllows.hasNext())
- {
- SecurityAllow allow = (SecurityAllow) allAllows.next();
- if (allow.getGroup() != null &&
- allow.getGroup().equals(group) &&
- allow.getRole() != null &&
- allow.getRole().equals(role))
- {
- return true;
- }
- }
+ if (access != null)
+ {
+ List allows = access.getAllows();
+ if (allows != null)
+ {
+ Iterator allAllows = allows.iterator();
+ while (allAllows.hasNext())
+ {
+ SecurityAllow allow = (SecurityAllow) allAllows.next();
+ if (allow.getGroup() != null &&
+ allow.getGroup().equals(group) &&
+ allow.getRole() != null &&
+ allow.getRole().equals(role))
+ {
+ return true;
+ }
+ }
+ }
}
return false;
}
@@ -392,15 +404,19 @@
public boolean allowsSpecificUser(String action, String user)
{
BaseSecurityAccess access = (BaseSecurityAccess) getAccess(action);
- if (access.getAllAllows() != null)
+ if (access != null)
{
- Iterator allAllows = access.getAllows().iterator();
- while (allAllows.hasNext())
+ List allows = access.getAllows();
+ if (allows != null)
{
- BaseSecurityAllow allow = (BaseSecurityAllow) allAllows.next();
- if (allow.getUser() != null && allow.getUser().equals(user))
+ Iterator allAllows = access.getAllows().iterator();
+ while (allAllows.hasNext())
{
- return true;
+ BaseSecurityAllow allow = (BaseSecurityAllow) allAllows.next();
+ if (allow.getUser() != null && allow.getUser().equals(user))
+ {
+ return true;
+ }
}
}
}
@@ -449,6 +465,12 @@
if (!allowsSpecificRole(action, role))
{
SecurityAccess access = getAccess(action);
+ if (access == null)
+ {
+ access = new BaseSecurityAccess();
+ access.setAction(action);
+ this.getAccesses().add(access);
+ }
List allows = access.getAllows();
if (allows == null)
{
@@ -481,10 +503,17 @@
if (!allowsSpecificGroup(action, role))
{
SecurityAccess access = getAccess(action);
- List allows = access.getAllows();
+ if (access == null)
+ {
+ access = new BaseSecurityAccess();
+ access.setAction(action);
+ this.getAccesses().add(access);
+ }
+ Vector allows = access.getAllows();
if (allows == null)
{
allows = new Vector();
+ access.setAllows(allows);
}
BaseSecurityAllow allow = new BaseSecurityAllow();
@@ -514,6 +543,12 @@
if (!allowsSpecificGroupRole(action, group, role))
{
SecurityAccess access = getAccess(action);
+ if (access == null)
+ {
+ access = new BaseSecurityAccess();
+ access.setAction(action);
+ this.getAccesses().add(access);
+ }
List allows = access.getAllows();
if (allows == null)
{
@@ -547,6 +582,12 @@
if (!allowsSpecificUser(action, user))
{
SecurityAccess access = getAccess(action);
+ if (access == null)
+ {
+ access = new BaseSecurityAccess();
+ access.setAction(action);
+ this.getAccesses().add(access);
+ }
List allows = access.getAllows();
if (allows == null)
{
@@ -582,6 +623,7 @@
if (allows == null || allows.isEmpty())
{
revokeAccess(action);
+ buildAccessMap();
return false;
}
@@ -595,7 +637,7 @@
{
revokeAccess(action);
}
-
+ buildAccessMap();
return true;
}
}
@@ -619,6 +661,7 @@
if (allows == null || allows.isEmpty())
{
revokeAccess(action);
+ buildAccessMap();
return false;
}
@@ -632,7 +675,7 @@
{
revokeAccess(action);
}
-
+ buildAccessMap();
return true;
}
}
@@ -657,6 +700,7 @@
if (allows == null || allows.isEmpty())
{
revokeAccess(action);
+ buildAccessMap();
return false;
}
@@ -673,7 +717,7 @@
{
revokeAccess(action);
}
-
+ buildAccessMap();
return true;
}
}
@@ -697,6 +741,7 @@
if (allows == null || allows.isEmpty())
{
revokeAccess(action);
+ buildAccessMap();
return false;
}
@@ -710,7 +755,7 @@
{
revokeAccess(action);
}
-
+ buildAccessMap();
return true;
}
}
@@ -799,13 +844,14 @@
Map userMap = null; // Map of users allowed
String userName = null;
- if (accessElement.getAllAllows() == null)
+ List all = accessElement.getAllAllows();
+ if (all == null)
{
return;
}
// Add allows to the action Map
- for (Iterator allowIterator = accessElement.getAllAllows().iterator(); allowIterator.hasNext();)
+ for (Iterator allowIterator = all.iterator(); allowIterator.hasNext();)
{
allowElement = (SecurityAllow) allowIterator.next();
role = null;
---------------------------------------------------------------------
To unsubscribe, e-mail: jetspeed-dev-unsubscribe@jakarta.apache.org
For additional commands, e-mail: jetspeed-dev-help@jakarta.apache.org