| CODENOTIFIER | HelpYou are not signed inSign in |
Project: Acegi
Revision: 3269
Author: benalex
Date: 05 Sep 2008 00:33:52
Changes:SEC-908: Correct issue with BasePermission static initialization failure.
Files:| ... | ...@@ -33,6 +33,12 @@ | |
| 33 | 33 | //~ Methods ======================================================================================================== |
| 34 | 34 | |
| 35 | 35 | @Test |
| 36 | public void basePermissionTest() { | |
| 37 | Permission p = BasePermission.buildFromName("WRITE"); | |
| 38 | assertNotNull(p); | |
| 39 | } | |
| 40 | ||
| 41 | @Test | |
| 36 | 42 | public void expectedIntegerValues() { |
| 37 | 43 | assertEquals(1, BasePermission.READ.getMask()); |
| 38 | 44 | assertEquals(16, BasePermission.ADMINISTRATION.getMask()); |
| ... | ...@@ -1,39 +0,0 @@ | |
| 1 | package org.springframework.security.acls.domain; | |
| 2 | ||
| 3 | import org.springframework.security.acls.Permission; | |
| 4 | ||
| 5 | /** | |
| 6 | * Provides an abstract base for standard {@link Permission} instances that wish to offer static convenience | |
| 7 | * methods to callers via delegation to {@link DefaultPermissionFactory}. | |
| 8 | * | |
| 9 | * @author Ben Alex | |
| 10 | * @since 2.0.3 | |
| 11 | * | |
| 12 | */ | |
| 13 | public abstract class AbstractRegisteredPermission extends AbstractPermission { | |
| 14 | protected static DefaultPermissionFactory defaultPermissionFactory = new DefaultPermissionFactory(); | |
| 15 | ||
| 16 | protected AbstractRegisteredPermission(int mask, char code) { | |
| 17 | super(mask, code); | |
| 18 | } | |
| 19 | ||
| 20 | protected final static void registerPermissionsFor(Class subClass) { | |
| 21 | defaultPermissionFactory.registerPublicPermissions(subClass); | |
| 22 | } | |
| 23 | ||
| 24 | public final static Permission buildFromMask(int mask) { | |
| 25 | return defaultPermissionFactory.buildFromMask(mask); | |
| 26 | } | |
| 27 | ||
| 28 | public final static Permission[] buildFromMask(int[] masks) { | |
| 29 | return defaultPermissionFactory.buildFromMask(masks); | |
| 30 | } | |
| 31 | ||
| 32 | public final static Permission buildFromName(String name) { | |
| 33 | return defaultPermissionFactory.buildFromName(name); | |
| 34 | } | |
| 35 | ||
| 36 | public final static Permission[] buildFromName(String[] names) { | |
| 37 | return defaultPermissionFactory.buildFromName(names); | |
| 38 | } | |
| 39 | } |
| ... | ...@@ -28,14 +28,16 @@ | |
| 28 | 28 | * @author Ben Alex |
| 29 | 29 | * @version $Id$ |
| 30 | 30 | */ |
| 31 | public class BasePermission extends AbstractRegisteredPermission { | |
| 31 | public class BasePermission extends AbstractPermission { | |
| 32 | 32 | public static final Permission READ = new BasePermission(1 << 0, 'R'); // 1 |
| 33 | 33 | public static final Permission WRITE = new BasePermission(1 << 1, 'W'); // 2 |
| 34 | 34 | public static final Permission CREATE = new BasePermission(1 << 2, 'C'); // 4 |
| 35 | 35 | public static final Permission DELETE = new BasePermission(1 << 3, 'D'); // 8 |
| 36 | 36 | public static final Permission ADMINISTRATION = new BasePermission(1 << 4, 'A'); // 16 |
| 37 | 37 | |
| 38 | /** | |
| 38 | protected static DefaultPermissionFactory defaultPermissionFactory = new DefaultPermissionFactory(); | |
| 39 | ||
| 40 | /** | |
| 39 | 41 | * Registers the public static permissions defined on this class. This is mandatory so |
| 40 | 42 | * that the static methods will operate correctly. |
| 41 | 43 | */ |
| ... | ...@@ -46,4 +48,25 @@ | |
| 46 | 48 | protected BasePermission(int mask, char code) { |
| 47 | 49 | super(mask, code); |
| 48 | 50 | } |
| 49 | } | |
| 51 | ||
| 52 | protected final static void registerPermissionsFor(Class subClass) { | |
| 53 | defaultPermissionFactory.registerPublicPermissions(subClass); | |
| 54 | } | |
| 55 | ||
| 56 | public final static Permission buildFromMask(int mask) { | |
| 57 | return defaultPermissionFactory.buildFromMask(mask); | |
| 58 | } | |
| 59 | ||
| 60 | public final static Permission[] buildFromMask(int[] masks) { | |
| 61 | return defaultPermissionFactory.buildFromMask(masks); | |
| 62 | } | |
| 63 | ||
| 64 | public final static Permission buildFromName(String name) { | |
| 65 | return defaultPermissionFactory.buildFromName(name); | |
| 66 | } | |
| 67 | ||
| 68 | public final static Permission[] buildFromName(String[] names) { | |
| 69 | return defaultPermissionFactory.buildFromName(names); | |
| 70 | } | |
| 71 | ||
| 72 | } | |
| 50 | 73 | \ No newline at end of file |