1
0
mirror of synced 2026-08-05 09:47:05 +00:00

SEC-1022: Remove use of static methods/initializers in Acl Permissions. Converted PermissionFactory to a strategy which is used to convert integers and names to Permission instances.

This commit is contained in:
Luke Taylor
2009-09-16 12:45:53 +00:00
parent 731402e9f5
commit 3f70d79df5
9 changed files with 119 additions and 117 deletions
@@ -16,6 +16,7 @@ package org.springframework.security.acls.domain;
import static org.junit.Assert.*;
import org.junit.Before;
import org.junit.Test;
import org.springframework.security.acls.model.Permission;
@@ -24,13 +25,20 @@ import org.springframework.security.acls.model.Permission;
* Tests classes associated with Permission.
*
* @author Ben Alex
* @version $Id${date}
* @version $Id$
*/
public class PermissionTests {
private DefaultPermissionFactory permissionFactory;
@Before
public void createPermissionfactory() {
permissionFactory = new DefaultPermissionFactory();
}
@Test
public void basePermissionTest() {
Permission p = BasePermission.buildFromName("WRITE");
Permission p = permissionFactory.buildFromName("WRITE");
assertNotNull(p);
}
@@ -47,14 +55,16 @@ public class PermissionTests {
@Test
public void fromInteger() {
Permission permission = BasePermission.buildFromMask(7);
Permission permission = permissionFactory.buildFromMask(7);
System.out.println("7 = " + permission.toString());
permission = BasePermission.buildFromMask(4);
permission = permissionFactory.buildFromMask(4);
System.out.println("4 = " + permission.toString());
}
@Test
public void stringConversion() {
permissionFactory.registerPublicPermissions(SpecialPermission.class);
System.out.println("R = " + BasePermission.READ.toString());
assertEquals("BasePermission[...............................R=1]", BasePermission.READ.toString());
@@ -19,20 +19,12 @@ import org.springframework.security.acls.model.Permission;
/**
* A test permission.
*
*
* @author Ben Alex
* @version $Id$
*/
public class SpecialPermission extends BasePermission {
public static final Permission ENTER = new SpecialPermission(1 << 5, 'E'); // 32
/**
* Registers the public static permissions defined on this class. This is mandatory so
* that the static methods will operate correctly.
*/
static {
registerPermissionsFor(SpecialPermission.class);
}
protected SpecialPermission(int mask, char code) {
super(mask, code);