mirror of
https://github.com/spring-projects/spring-security.git
synced 2025-06-26 13:53:14 +00:00
SEC-908: Correct issue with BasePermission static initialization failure.
This commit is contained in:
parent
5102be3a59
commit
0f8ea229c2
@ -1,39 +0,0 @@
|
|||||||
package org.springframework.security.acls.domain;
|
|
||||||
|
|
||||||
import org.springframework.security.acls.Permission;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Provides an abstract base for standard {@link Permission} instances that wish to offer static convenience
|
|
||||||
* methods to callers via delegation to {@link DefaultPermissionFactory}.
|
|
||||||
*
|
|
||||||
* @author Ben Alex
|
|
||||||
* @since 2.0.3
|
|
||||||
*
|
|
||||||
*/
|
|
||||||
public abstract class AbstractRegisteredPermission extends AbstractPermission {
|
|
||||||
protected static DefaultPermissionFactory defaultPermissionFactory = new DefaultPermissionFactory();
|
|
||||||
|
|
||||||
protected AbstractRegisteredPermission(int mask, char code) {
|
|
||||||
super(mask, code);
|
|
||||||
}
|
|
||||||
|
|
||||||
protected final static void registerPermissionsFor(Class subClass) {
|
|
||||||
defaultPermissionFactory.registerPublicPermissions(subClass);
|
|
||||||
}
|
|
||||||
|
|
||||||
public final static Permission buildFromMask(int mask) {
|
|
||||||
return defaultPermissionFactory.buildFromMask(mask);
|
|
||||||
}
|
|
||||||
|
|
||||||
public final static Permission[] buildFromMask(int[] masks) {
|
|
||||||
return defaultPermissionFactory.buildFromMask(masks);
|
|
||||||
}
|
|
||||||
|
|
||||||
public final static Permission buildFromName(String name) {
|
|
||||||
return defaultPermissionFactory.buildFromName(name);
|
|
||||||
}
|
|
||||||
|
|
||||||
public final static Permission[] buildFromName(String[] names) {
|
|
||||||
return defaultPermissionFactory.buildFromName(names);
|
|
||||||
}
|
|
||||||
}
|
|
@ -28,13 +28,15 @@ import org.springframework.security.acls.Permission;
|
|||||||
* @author Ben Alex
|
* @author Ben Alex
|
||||||
* @version $Id$
|
* @version $Id$
|
||||||
*/
|
*/
|
||||||
public class BasePermission extends AbstractRegisteredPermission {
|
public class BasePermission extends AbstractPermission {
|
||||||
public static final Permission READ = new BasePermission(1 << 0, 'R'); // 1
|
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 WRITE = new BasePermission(1 << 1, 'W'); // 2
|
||||||
public static final Permission CREATE = new BasePermission(1 << 2, 'C'); // 4
|
public static final Permission CREATE = new BasePermission(1 << 2, 'C'); // 4
|
||||||
public static final Permission DELETE = new BasePermission(1 << 3, 'D'); // 8
|
public static final Permission DELETE = new BasePermission(1 << 3, 'D'); // 8
|
||||||
public static final Permission ADMINISTRATION = new BasePermission(1 << 4, 'A'); // 16
|
public static final Permission ADMINISTRATION = new BasePermission(1 << 4, 'A'); // 16
|
||||||
|
|
||||||
|
protected static DefaultPermissionFactory defaultPermissionFactory = new DefaultPermissionFactory();
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Registers the public static permissions defined on this class. This is mandatory so
|
* Registers the public static permissions defined on this class. This is mandatory so
|
||||||
* that the static methods will operate correctly.
|
* that the static methods will operate correctly.
|
||||||
@ -46,4 +48,25 @@ public class BasePermission extends AbstractRegisteredPermission {
|
|||||||
protected BasePermission(int mask, char code) {
|
protected BasePermission(int mask, char code) {
|
||||||
super(mask, code);
|
super(mask, code);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
protected final static void registerPermissionsFor(Class subClass) {
|
||||||
|
defaultPermissionFactory.registerPublicPermissions(subClass);
|
||||||
|
}
|
||||||
|
|
||||||
|
public final static Permission buildFromMask(int mask) {
|
||||||
|
return defaultPermissionFactory.buildFromMask(mask);
|
||||||
|
}
|
||||||
|
|
||||||
|
public final static Permission[] buildFromMask(int[] masks) {
|
||||||
|
return defaultPermissionFactory.buildFromMask(masks);
|
||||||
|
}
|
||||||
|
|
||||||
|
public final static Permission buildFromName(String name) {
|
||||||
|
return defaultPermissionFactory.buildFromName(name);
|
||||||
|
}
|
||||||
|
|
||||||
|
public final static Permission[] buildFromName(String[] names) {
|
||||||
|
return defaultPermissionFactory.buildFromName(names);
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
@ -32,6 +32,12 @@ public class PermissionTests {
|
|||||||
|
|
||||||
//~ Methods ========================================================================================================
|
//~ Methods ========================================================================================================
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void basePermissionTest() {
|
||||||
|
Permission p = BasePermission.buildFromName("WRITE");
|
||||||
|
assertNotNull(p);
|
||||||
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void expectedIntegerValues() {
|
public void expectedIntegerValues() {
|
||||||
assertEquals(1, BasePermission.READ.getMask());
|
assertEquals(1, BasePermission.READ.getMask());
|
||||||
|
Loading…
x
Reference in New Issue
Block a user