Hello,
Here are a few patches that I hope will help. I also have a few questions
and was wondering if anyone would mind offering some advice / help.
For the patches -
BasePermissions.java.patch.txt - I added DELETE to the BasePermissions class.
PermissionsTest.java.patch.txt - I updated the test to pass
AclImpl.java.patch.txt - changed the code to look for an offset of -1 to throw
NotFoundException
For the Questions.
1. I was wondering how does an Access Control Entry get an id? Can it only
get an id through persistence? I noticed
in the AclImpl, when I create an ACE, there is no way to specify the ace id
in the method:
public void insertAce(Long afterAceId, Permission permission, Sid sid, boolean
granting)
2. I was also wondering if anyone has considered a persistence strategy for
Permissions. For example I was testing adding a Cumulative Permission to an
Access Control Entry vs storing a Base Permission. Would it be recommend the
different permission class types be stored in the database along with the
permission and loading them based on this?
Thanks again for all the help.
Best,
-Nate
Nathan Sarr
University of Rochester
Digital Initiatives Unit
1-585-275-0692
Index:
C:/eclipse3.2M3/svn_projects_data/acegisecurity/sandbox/src/test/java/org/acegisecurity/acls/domain/PermissionTests.java
===================================================================
---
C:/eclipse3.2M3/svn_projects_data/acegisecurity/sandbox/src/test/java/org/acegisecurity/acls/domain/PermissionTests.java
(revision 1627)
+++
C:/eclipse3.2M3/svn_projects_data/acegisecurity/sandbox/src/test/java/org/acegisecurity/acls/domain/PermissionTests.java
(working copy)
@@ -29,8 +29,8 @@
public void testExpectedIntegerValues() {
assertEquals(1, BasePermission.READ.getMask());
- assertEquals(8, BasePermission.ADMINISTRATION.getMask());
- assertEquals(9, new
CumulativePermission().set(BasePermission.READ).set(BasePermission.ADMINISTRATION).getMask());
+ assertEquals(16, BasePermission.ADMINISTRATION.getMask());
+ assertEquals(17, new
CumulativePermission().set(BasePermission.READ).set(BasePermission.ADMINISTRATION).getMask());
}
public void testStringConversion() {
@@ -38,19 +38,19 @@
assertEquals("BasePermission[...............................R=1]",
BasePermission.READ.toString());
System.out.println("A = " + BasePermission.ADMINISTRATION.toString());
- assertEquals("BasePermission[............................A...=8]",
BasePermission.ADMINISTRATION.toString());
+ assertEquals("BasePermission[...........................A....=16]",
BasePermission.ADMINISTRATION.toString());
System.out.println("R = " + new
CumulativePermission().set(BasePermission.READ).toString());
assertEquals("CumulativePermission[...............................R=1]",
new CumulativePermission().set(BasePermission.READ).toString());
System.out.println("A = " + new
CumulativePermission().set(BasePermission.ADMINISTRATION).toString());
-
assertEquals("CumulativePermission[............................A...=8]",
+
assertEquals("CumulativePermission[...........................A....=16]",
new
CumulativePermission().set(BasePermission.ADMINISTRATION).toString());
System.out.println("RA = "
+ new
CumulativePermission().set(BasePermission.ADMINISTRATION).set(BasePermission.READ).toString());
-
assertEquals("CumulativePermission[............................A..R=9]",
+
assertEquals("CumulativePermission[...........................A...R=17]",
new
CumulativePermission().set(BasePermission.ADMINISTRATION).set(BasePermission.READ).toString());
System.out.println("R = "
Index:
C:/eclipse3.2M3/svn_projects_data/acegisecurity/sandbox/src/main/java/org/acegisecurity/acls/domain/BasePermission.java
===================================================================
---
C:/eclipse3.2M3/svn_projects_data/acegisecurity/sandbox/src/main/java/org/acegisecurity/acls/domain/BasePermission.java
(revision 1627)
+++
C:/eclipse3.2M3/svn_projects_data/acegisecurity/sandbox/src/main/java/org/acegisecurity/acls/domain/BasePermission.java
(working copy)
@@ -18,7 +18,6 @@
import org.acegisecurity.acls.AclFormattingUtils;
import org.acegisecurity.acls.Permission;
-
/**
* DOCUMENT ME!
*
@@ -31,7 +30,8 @@
public static final Permission READ = new BasePermission(1 << 0, 'R'); // 1
public static final Permission WRITE = new BasePermission(1 << 1, 'W'); //
2
public static final Permission CREATE = new BasePermission(1 << 2, 'C');
// 4
- public static final Permission ADMINISTRATION = new BasePermission(1 << 3,
'A'); // 8
+ public static final Permission DELETE = new BasePermission(1 << 3, 'D');
// 8
+ public static final Permission ADMINISTRATION = new BasePermission(1 << 4,
'A'); // 16
//~ Instance fields
================================================================================================
@@ -72,6 +72,10 @@
}
if (mask == 8) {
+ permission.set(DELETE);
+ }
+
+ if (mask == 16) {
permission.set(ADMINISTRATION);
}
Index:
C:/eclipse3.2M3/svn_projects_data/acegisecurity/sandbox/src/main/java/org/acegisecurity/acls/domain/AclImpl.java
===================================================================
---
C:/eclipse3.2M3/svn_projects_data/acegisecurity/sandbox/src/main/java/org/acegisecurity/acls/domain/AclImpl.java
(revision 1627)
+++
C:/eclipse3.2M3/svn_projects_data/acegisecurity/sandbox/src/main/java/org/acegisecurity/acls/domain/AclImpl.java
(working copy)
@@ -148,7 +148,7 @@
synchronized (aces) {
int offset = findAceOffset(aceId);
- if (offset == 1) {
+ if (offset == -1) {
throw new NotFoundException("Requested ACE ID not found");
}
-------------------------------------------------------------------------
Using Tomcat but need to do more? Need to support web services, security?
Get stuff done quickly with pre-integrated technology to make your job easier
Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo
http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642
_______________________________________________
Home: http://acegisecurity.org
Acegisecurity-developer mailing list
Acegisecurity-developer@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/acegisecurity-developer