From 9875cbec8b28fc5e7a7baa280ea67bfa6de9cab2 Mon Sep 17 00:00:00 2001
From: Luke Taylor
Date: Mon, 11 May 2009 05:20:09 +0000
Subject: [PATCH] SEC-1132: Restructuring of ACL packages
---
.../acls/{vote => }/AclEntryVoter.java | 22 ++++-----
.../AclPermissionEvaluator.java | 30 ++++++------
.../afterinvocation/AbstractAclProvider.java | 22 ++++-----
...InvocationCollectionFilteringProvider.java | 4 +-
.../AclEntryAfterInvocationProvider.java | 4 +-
.../acls/domain/AbstractPermission.java | 3 +-
.../acls/domain/AccessControlEntryImpl.java | 10 ++--
.../acls/domain/AclAuthorizationStrategy.java | 2 +-
.../domain/AclAuthorizationStrategyImpl.java | 8 ++--
.../acls/{ => domain}/AclFormattingUtils.java | 3 +-
.../security/acls/domain/AclImpl.java | 46 +++++++++----------
.../security/acls/domain/AuditLogger.java | 2 +-
.../security/acls/domain/BasePermission.java | 2 +-
.../acls/domain/ConsoleAuditLogger.java | 4 +-
.../acls/domain/CumulativePermission.java | 3 +-
.../acls/domain/DefaultPermissionFactory.java | 2 +-
.../{sid => domain}/GrantedAuthoritySid.java | 3 +-
.../IdentityUnavailableException.java | 2 +-
.../ObjectIdentityImpl.java | 5 +-
.../ObjectIdentityRetrievalStrategyImpl.java | 6 ++-
.../acls/domain/PermissionFactory.java | 2 +-
.../acls/{sid => domain}/PrincipalSid.java | 3 +-
.../SidRetrievalStrategyImpl.java | 4 +-
.../security/acls/jdbc/AclCache.java | 4 +-
.../acls/jdbc/BasicLookupStrategy.java | 22 ++++-----
.../acls/jdbc/EhCacheBasedAclCache.java | 4 +-
.../security/acls/jdbc/JdbcAclService.java | 12 ++---
.../acls/jdbc/JdbcMutableAclService.java | 24 +++++-----
.../security/acls/jdbc/LookupStrategy.java | 10 ++--
.../acls/{ => model}/AccessControlEntry.java | 3 +-
.../security/acls/{ => model}/Acl.java | 10 ++--
.../{ => model}/AclDataAccessException.java | 4 +-
.../security/acls/{ => model}/AclService.java | 4 +-
.../{ => model}/AlreadyExistsException.java | 3 +-
.../AuditableAccessControlEntry.java | 3 +-
.../acls/{ => model}/AuditableAcl.java | 3 +-
.../{ => model}/ChildrenExistException.java | 3 +-
.../security/acls/{ => model}/MutableAcl.java | 3 +-
.../acls/{ => model}/MutableAclService.java | 3 +-
.../acls/{ => model}/NotFoundException.java | 3 +-
.../ObjectIdentity.java | 2 +-
.../ObjectIdentityGenerator.java | 12 +++--
.../ObjectIdentityRetrievalStrategy.java | 3 +-
.../acls/{ => model}/OwnershipAcl.java | 3 +-
.../security/acls/{ => model}/Permission.java | 2 +-
.../security/acls/{sid => model}/Sid.java | 2 +-
.../{sid => model}/SidRetrievalStrategy.java | 2 +-
.../{ => model}/UnloadedSidException.java | 3 +-
.../security/acls/{ => model}/package.html | 0
.../security/acls/objectidentity/package.html | 5 --
.../security/acls/sid/package.html | 5 --
.../acls/AclFormattingUtilsTests.java | 3 ++
.../AclPermissionEvaluatorTests.java | 14 +++---
.../domain/AccessControlImplEntryTests.java | 11 ++---
.../security/acls/domain/AclImplTests.java | 29 ++++++------
.../AclImplementationSecurityCheckTests.java | 10 ++--
.../acls/domain/AuditLoggerTests.java | 4 +-
.../ObjectIdentityImplTests.java | 9 ++--
...ectIdentityRetrievalStrategyImplTests.java | 7 ++-
.../security/acls/domain/PermissionTests.java | 2 +-
.../acls/domain/SpecialPermission.java | 2 +-
.../acls/jdbc/BasicLookupStrategyTests.java | 18 ++++----
.../acls/jdbc/EhCacheBasedAclCacheTests.java | 6 +--
.../acls/jdbc/JdbcMutableAclServiceTests.java | 24 +++++-----
.../acls/sid/SidRetrievalStrategyTests.java | 5 ++
.../security/acls/sid/SidTests.java | 6 +--
66 files changed, 253 insertions(+), 246 deletions(-)
rename acl/src/main/java/org/springframework/security/acls/{vote => }/AclEntryVoter.java (94%)
rename acl/src/main/java/org/springframework/security/acls/{expression => }/AclPermissionEvaluator.java (83%)
rename acl/src/main/java/org/springframework/security/acls/{ => domain}/AclFormattingUtils.java (97%)
rename acl/src/main/java/org/springframework/security/acls/{sid => domain}/GrantedAuthoritySid.java (96%)
rename acl/src/main/java/org/springframework/security/acls/{objectidentity => domain}/IdentityUnavailableException.java (96%)
rename acl/src/main/java/org/springframework/security/acls/{objectidentity => domain}/ObjectIdentityImpl.java (96%)
rename acl/src/main/java/org/springframework/security/acls/{objectidentity => domain}/ObjectIdentityRetrievalStrategyImpl.java (84%)
rename acl/src/main/java/org/springframework/security/acls/{sid => domain}/PrincipalSid.java (96%)
rename acl/src/main/java/org/springframework/security/acls/{sid => domain}/SidRetrievalStrategyImpl.java (91%)
rename acl/src/main/java/org/springframework/security/acls/{ => model}/AccessControlEntry.java (94%)
rename acl/src/main/java/org/springframework/security/acls/{ => model}/Acl.java (95%)
rename acl/src/main/java/org/springframework/security/acls/{ => model}/AclDataAccessException.java (91%)
rename acl/src/main/java/org/springframework/security/acls/{ => model}/AclService.java (96%)
rename acl/src/main/java/org/springframework/security/acls/{ => model}/AlreadyExistsException.java (96%)
rename acl/src/main/java/org/springframework/security/acls/{ => model}/AuditableAccessControlEntry.java (95%)
rename acl/src/main/java/org/springframework/security/acls/{ => model}/AuditableAcl.java (95%)
rename acl/src/main/java/org/springframework/security/acls/{ => model}/ChildrenExistException.java (96%)
rename acl/src/main/java/org/springframework/security/acls/{ => model}/MutableAcl.java (95%)
rename acl/src/main/java/org/springframework/security/acls/{ => model}/MutableAclService.java (95%)
rename acl/src/main/java/org/springframework/security/acls/{ => model}/NotFoundException.java (96%)
rename acl/src/main/java/org/springframework/security/acls/{objectidentity => model}/ObjectIdentity.java (97%)
rename acl/src/main/java/org/springframework/security/acls/{objectidentity => model}/ObjectIdentityGenerator.java (52%)
rename acl/src/main/java/org/springframework/security/acls/{objectidentity => model}/ObjectIdentityRetrievalStrategy.java (94%)
rename acl/src/main/java/org/springframework/security/acls/{ => model}/OwnershipAcl.java (91%)
rename acl/src/main/java/org/springframework/security/acls/{ => model}/Permission.java (97%)
rename acl/src/main/java/org/springframework/security/acls/{sid => model}/Sid.java (97%)
rename acl/src/main/java/org/springframework/security/acls/{sid => model}/SidRetrievalStrategy.java (95%)
rename acl/src/main/java/org/springframework/security/acls/{ => model}/UnloadedSidException.java (96%)
rename acl/src/main/java/org/springframework/security/acls/{ => model}/package.html (100%)
delete mode 100644 acl/src/main/java/org/springframework/security/acls/objectidentity/package.html
delete mode 100644 acl/src/main/java/org/springframework/security/acls/sid/package.html
rename acl/src/test/java/org/springframework/security/acls/{expression => }/AclPermissionEvaluatorTests.java (75%)
rename acl/src/test/java/org/springframework/security/acls/{objectidentity => domain}/ObjectIdentityImplTests.java (90%)
rename acl/src/test/java/org/springframework/security/acls/{objectidentity => domain}/ObjectIdentityRetrievalStrategyImplTests.java (74%)
diff --git a/acl/src/main/java/org/springframework/security/acls/vote/AclEntryVoter.java b/acl/src/main/java/org/springframework/security/acls/AclEntryVoter.java
similarity index 94%
rename from acl/src/main/java/org/springframework/security/acls/vote/AclEntryVoter.java
rename to acl/src/main/java/org/springframework/security/acls/AclEntryVoter.java
index f26aa2d4d7..5d14ae2b26 100644
--- a/acl/src/main/java/org/springframework/security/acls/vote/AclEntryVoter.java
+++ b/acl/src/main/java/org/springframework/security/acls/AclEntryVoter.java
@@ -12,7 +12,7 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package org.springframework.security.acls.vote;
+package org.springframework.security.acls;
import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;
@@ -24,16 +24,16 @@ import org.apache.commons.logging.LogFactory;
import org.springframework.security.access.AuthorizationServiceException;
import org.springframework.security.access.ConfigAttribute;
import org.springframework.security.access.vote.AbstractAclVoter;
-import org.springframework.security.acls.Acl;
-import org.springframework.security.acls.AclService;
-import org.springframework.security.acls.NotFoundException;
-import org.springframework.security.acls.Permission;
-import org.springframework.security.acls.objectidentity.ObjectIdentity;
-import org.springframework.security.acls.objectidentity.ObjectIdentityRetrievalStrategy;
-import org.springframework.security.acls.objectidentity.ObjectIdentityRetrievalStrategyImpl;
-import org.springframework.security.acls.sid.Sid;
-import org.springframework.security.acls.sid.SidRetrievalStrategy;
-import org.springframework.security.acls.sid.SidRetrievalStrategyImpl;
+import org.springframework.security.acls.domain.ObjectIdentityRetrievalStrategyImpl;
+import org.springframework.security.acls.domain.SidRetrievalStrategyImpl;
+import org.springframework.security.acls.model.Acl;
+import org.springframework.security.acls.model.AclService;
+import org.springframework.security.acls.model.NotFoundException;
+import org.springframework.security.acls.model.ObjectIdentity;
+import org.springframework.security.acls.model.ObjectIdentityRetrievalStrategy;
+import org.springframework.security.acls.model.Permission;
+import org.springframework.security.acls.model.Sid;
+import org.springframework.security.acls.model.SidRetrievalStrategy;
import org.springframework.security.core.Authentication;
import org.springframework.util.Assert;
import org.springframework.util.StringUtils;
diff --git a/acl/src/main/java/org/springframework/security/acls/expression/AclPermissionEvaluator.java b/acl/src/main/java/org/springframework/security/acls/AclPermissionEvaluator.java
similarity index 83%
rename from acl/src/main/java/org/springframework/security/acls/expression/AclPermissionEvaluator.java
rename to acl/src/main/java/org/springframework/security/acls/AclPermissionEvaluator.java
index bf0f912597..98ab85f271 100644
--- a/acl/src/main/java/org/springframework/security/acls/expression/AclPermissionEvaluator.java
+++ b/acl/src/main/java/org/springframework/security/acls/AclPermissionEvaluator.java
@@ -1,4 +1,4 @@
-package org.springframework.security.acls.expression;
+package org.springframework.security.acls;
import java.io.Serializable;
import java.util.Arrays;
@@ -6,29 +6,29 @@ import java.util.List;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
-import org.springframework.security.access.expression.PermissionEvaluator;
-import org.springframework.security.acls.Acl;
-import org.springframework.security.acls.AclService;
-import org.springframework.security.acls.NotFoundException;
-import org.springframework.security.acls.Permission;
+import org.springframework.security.access.PermissionEvaluator;
import org.springframework.security.acls.domain.BasePermission;
-import org.springframework.security.acls.objectidentity.ObjectIdentity;
-import org.springframework.security.acls.objectidentity.ObjectIdentityGenerator;
-import org.springframework.security.acls.objectidentity.ObjectIdentityRetrievalStrategy;
-import org.springframework.security.acls.objectidentity.ObjectIdentityRetrievalStrategyImpl;
-import org.springframework.security.acls.sid.Sid;
-import org.springframework.security.acls.sid.SidRetrievalStrategy;
-import org.springframework.security.acls.sid.SidRetrievalStrategyImpl;
+import org.springframework.security.acls.domain.ObjectIdentityRetrievalStrategyImpl;
+import org.springframework.security.acls.domain.SidRetrievalStrategyImpl;
+import org.springframework.security.acls.model.Acl;
+import org.springframework.security.acls.model.AclService;
+import org.springframework.security.acls.model.NotFoundException;
+import org.springframework.security.acls.model.ObjectIdentity;
+import org.springframework.security.acls.model.ObjectIdentityGenerator;
+import org.springframework.security.acls.model.ObjectIdentityRetrievalStrategy;
+import org.springframework.security.acls.model.Permission;
+import org.springframework.security.acls.model.Sid;
+import org.springframework.security.acls.model.SidRetrievalStrategy;
import org.springframework.security.core.Authentication;
/**
* Used by Spring Security's expression-based access control implementation to evaluate permissions for a particular
* object using the ACL module. Similar in behaviour to
- * {@link org.springframework.security.access.vote.AclEntryVoter AclEntryVoter}.
+ * {@link org.springframework.security.acls.AclEntryVoter AclEntryVoter}.
*
* @author Luke Taylor
* @version $Id$
- * @since 2.5
+ * @since 3.0
*/
public class AclPermissionEvaluator implements PermissionEvaluator {
diff --git a/acl/src/main/java/org/springframework/security/acls/afterinvocation/AbstractAclProvider.java b/acl/src/main/java/org/springframework/security/acls/afterinvocation/AbstractAclProvider.java
index 320a57494a..61084ab06e 100644
--- a/acl/src/main/java/org/springframework/security/acls/afterinvocation/AbstractAclProvider.java
+++ b/acl/src/main/java/org/springframework/security/acls/afterinvocation/AbstractAclProvider.java
@@ -18,22 +18,20 @@ package org.springframework.security.acls.afterinvocation;
import java.util.Arrays;
import java.util.List;
-
import org.springframework.security.access.ConfigAttribute;
import org.springframework.security.access.intercept.AfterInvocationProvider;
-import org.springframework.security.acls.Acl;
-import org.springframework.security.acls.AclService;
-import org.springframework.security.acls.NotFoundException;
-import org.springframework.security.acls.Permission;
import org.springframework.security.acls.domain.BasePermission;
-import org.springframework.security.acls.objectidentity.ObjectIdentity;
-import org.springframework.security.acls.objectidentity.ObjectIdentityRetrievalStrategy;
-import org.springframework.security.acls.objectidentity.ObjectIdentityRetrievalStrategyImpl;
-import org.springframework.security.acls.sid.Sid;
-import org.springframework.security.acls.sid.SidRetrievalStrategy;
-import org.springframework.security.acls.sid.SidRetrievalStrategyImpl;
+import org.springframework.security.acls.domain.ObjectIdentityRetrievalStrategyImpl;
+import org.springframework.security.acls.domain.SidRetrievalStrategyImpl;
+import org.springframework.security.acls.model.Acl;
+import org.springframework.security.acls.model.AclService;
+import org.springframework.security.acls.model.NotFoundException;
+import org.springframework.security.acls.model.ObjectIdentity;
+import org.springframework.security.acls.model.ObjectIdentityRetrievalStrategy;
+import org.springframework.security.acls.model.Permission;
+import org.springframework.security.acls.model.Sid;
+import org.springframework.security.acls.model.SidRetrievalStrategy;
import org.springframework.security.core.Authentication;
-
import org.springframework.util.Assert;
diff --git a/acl/src/main/java/org/springframework/security/acls/afterinvocation/AclEntryAfterInvocationCollectionFilteringProvider.java b/acl/src/main/java/org/springframework/security/acls/afterinvocation/AclEntryAfterInvocationCollectionFilteringProvider.java
index 3c9b3fe181..98129d9c50 100644
--- a/acl/src/main/java/org/springframework/security/acls/afterinvocation/AclEntryAfterInvocationCollectionFilteringProvider.java
+++ b/acl/src/main/java/org/springframework/security/acls/afterinvocation/AclEntryAfterInvocationCollectionFilteringProvider.java
@@ -22,8 +22,8 @@ import org.apache.commons.logging.LogFactory;
import org.springframework.security.access.AccessDeniedException;
import org.springframework.security.access.AuthorizationServiceException;
import org.springframework.security.access.ConfigAttribute;
-import org.springframework.security.acls.AclService;
-import org.springframework.security.acls.Permission;
+import org.springframework.security.acls.model.AclService;
+import org.springframework.security.acls.model.Permission;
import org.springframework.security.core.Authentication;
diff --git a/acl/src/main/java/org/springframework/security/acls/afterinvocation/AclEntryAfterInvocationProvider.java b/acl/src/main/java/org/springframework/security/acls/afterinvocation/AclEntryAfterInvocationProvider.java
index 11153d6da8..ed45ded128 100644
--- a/acl/src/main/java/org/springframework/security/acls/afterinvocation/AclEntryAfterInvocationProvider.java
+++ b/acl/src/main/java/org/springframework/security/acls/afterinvocation/AclEntryAfterInvocationProvider.java
@@ -23,8 +23,8 @@ import org.springframework.context.MessageSourceAware;
import org.springframework.context.support.MessageSourceAccessor;
import org.springframework.security.access.AccessDeniedException;
import org.springframework.security.access.ConfigAttribute;
-import org.springframework.security.acls.AclService;
-import org.springframework.security.acls.Permission;
+import org.springframework.security.acls.model.AclService;
+import org.springframework.security.acls.model.Permission;
import org.springframework.security.core.Authentication;
import org.springframework.security.core.SpringSecurityMessageSource;
diff --git a/acl/src/main/java/org/springframework/security/acls/domain/AbstractPermission.java b/acl/src/main/java/org/springframework/security/acls/domain/AbstractPermission.java
index ebc7440a0e..a0d1e2632e 100644
--- a/acl/src/main/java/org/springframework/security/acls/domain/AbstractPermission.java
+++ b/acl/src/main/java/org/springframework/security/acls/domain/AbstractPermission.java
@@ -1,7 +1,6 @@
package org.springframework.security.acls.domain;
-import org.springframework.security.acls.AclFormattingUtils;
-import org.springframework.security.acls.Permission;
+import org.springframework.security.acls.model.Permission;
/**
* Provides an abstract superclass for {@link Permission} implementations.
diff --git a/acl/src/main/java/org/springframework/security/acls/domain/AccessControlEntryImpl.java b/acl/src/main/java/org/springframework/security/acls/domain/AccessControlEntryImpl.java
index c24a752f68..b1e2a4a234 100644
--- a/acl/src/main/java/org/springframework/security/acls/domain/AccessControlEntryImpl.java
+++ b/acl/src/main/java/org/springframework/security/acls/domain/AccessControlEntryImpl.java
@@ -14,11 +14,11 @@
*/
package org.springframework.security.acls.domain;
-import org.springframework.security.acls.AccessControlEntry;
-import org.springframework.security.acls.Acl;
-import org.springframework.security.acls.AuditableAccessControlEntry;
-import org.springframework.security.acls.Permission;
-import org.springframework.security.acls.sid.Sid;
+import org.springframework.security.acls.model.AccessControlEntry;
+import org.springframework.security.acls.model.Acl;
+import org.springframework.security.acls.model.AuditableAccessControlEntry;
+import org.springframework.security.acls.model.Permission;
+import org.springframework.security.acls.model.Sid;
import org.springframework.util.Assert;
diff --git a/acl/src/main/java/org/springframework/security/acls/domain/AclAuthorizationStrategy.java b/acl/src/main/java/org/springframework/security/acls/domain/AclAuthorizationStrategy.java
index dde5230cec..0ef2021fe7 100644
--- a/acl/src/main/java/org/springframework/security/acls/domain/AclAuthorizationStrategy.java
+++ b/acl/src/main/java/org/springframework/security/acls/domain/AclAuthorizationStrategy.java
@@ -15,7 +15,7 @@
package org.springframework.security.acls.domain;
-import org.springframework.security.acls.Acl;
+import org.springframework.security.acls.model.Acl;
/**
diff --git a/acl/src/main/java/org/springframework/security/acls/domain/AclAuthorizationStrategyImpl.java b/acl/src/main/java/org/springframework/security/acls/domain/AclAuthorizationStrategyImpl.java
index 75f2122bc5..7b289f394e 100644
--- a/acl/src/main/java/org/springframework/security/acls/domain/AclAuthorizationStrategyImpl.java
+++ b/acl/src/main/java/org/springframework/security/acls/domain/AclAuthorizationStrategyImpl.java
@@ -19,11 +19,9 @@ import java.util.Arrays;
import java.util.List;
import org.springframework.security.access.AccessDeniedException;
-import org.springframework.security.acls.Acl;
-import org.springframework.security.acls.sid.PrincipalSid;
-import org.springframework.security.acls.sid.Sid;
-import org.springframework.security.acls.sid.SidRetrievalStrategy;
-import org.springframework.security.acls.sid.SidRetrievalStrategyImpl;
+import org.springframework.security.acls.model.Acl;
+import org.springframework.security.acls.model.Sid;
+import org.springframework.security.acls.model.SidRetrievalStrategy;
import org.springframework.security.core.Authentication;
import org.springframework.security.core.GrantedAuthority;
import org.springframework.security.core.context.SecurityContextHolder;
diff --git a/acl/src/main/java/org/springframework/security/acls/AclFormattingUtils.java b/acl/src/main/java/org/springframework/security/acls/domain/AclFormattingUtils.java
similarity index 97%
rename from acl/src/main/java/org/springframework/security/acls/AclFormattingUtils.java
rename to acl/src/main/java/org/springframework/security/acls/domain/AclFormattingUtils.java
index 7536c00ca8..c5b0362c01 100644
--- a/acl/src/main/java/org/springframework/security/acls/AclFormattingUtils.java
+++ b/acl/src/main/java/org/springframework/security/acls/domain/AclFormattingUtils.java
@@ -12,8 +12,9 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package org.springframework.security.acls;
+package org.springframework.security.acls.domain;
+import org.springframework.security.acls.model.Permission;
import org.springframework.util.Assert;
diff --git a/acl/src/main/java/org/springframework/security/acls/domain/AclImpl.java b/acl/src/main/java/org/springframework/security/acls/domain/AclImpl.java
index de336e841c..2d8bd17344 100644
--- a/acl/src/main/java/org/springframework/security/acls/domain/AclImpl.java
+++ b/acl/src/main/java/org/springframework/security/acls/domain/AclImpl.java
@@ -18,16 +18,16 @@ import java.io.Serializable;
import java.util.ArrayList;
import java.util.List;
-import org.springframework.security.acls.AccessControlEntry;
-import org.springframework.security.acls.Acl;
-import org.springframework.security.acls.AuditableAcl;
-import org.springframework.security.acls.MutableAcl;
-import org.springframework.security.acls.NotFoundException;
-import org.springframework.security.acls.OwnershipAcl;
-import org.springframework.security.acls.Permission;
-import org.springframework.security.acls.UnloadedSidException;
-import org.springframework.security.acls.objectidentity.ObjectIdentity;
-import org.springframework.security.acls.sid.Sid;
+import org.springframework.security.acls.model.AccessControlEntry;
+import org.springframework.security.acls.model.Acl;
+import org.springframework.security.acls.model.AuditableAcl;
+import org.springframework.security.acls.model.MutableAcl;
+import org.springframework.security.acls.model.NotFoundException;
+import org.springframework.security.acls.model.ObjectIdentity;
+import org.springframework.security.acls.model.OwnershipAcl;
+import org.springframework.security.acls.model.Permission;
+import org.springframework.security.acls.model.Sid;
+import org.springframework.security.acls.model.UnloadedSidException;
import org.springframework.util.Assert;
@@ -54,7 +54,7 @@ public class AclImpl implements Acl, MutableAcl, AuditableAcl, OwnershipAcl {
/**
* Minimal constructor, which should be used {@link
- * org.springframework.security.acls.MutableAclService#createAcl(ObjectIdentity)}.
+ * org.springframework.security.acls.model.MutableAclService#createAcl(ObjectIdentity)}.
*
* @param objectIdentity the object identity this ACL relates to (required)
* @param id the primary key assigned to this ACL (required)
@@ -226,19 +226,19 @@ public class AclImpl implements Acl, MutableAcl, AuditableAcl, OwnershipAcl {
}
return true;
- } else {
- // Failure for this permission, so stop search
- // We will see if they have a different permission
- // (this permission is 100% rejected for this SID)
- if (firstRejection == null) {
- // Store first rejection for auditing reasons
- firstRejection = ace;
- }
-
- scanNextSid = false; // helps break the loop
-
- break; // exit aces loop
}
+
+ // Failure for this permission, so stop search
+ // We will see if they have a different permission
+ // (this permission is 100% rejected for this SID)
+ if (firstRejection == null) {
+ // Store first rejection for auditing reasons
+ firstRejection = ace;
+ }
+
+ scanNextSid = false; // helps break the loop
+
+ break; // exit aces loop
}
}
diff --git a/acl/src/main/java/org/springframework/security/acls/domain/AuditLogger.java b/acl/src/main/java/org/springframework/security/acls/domain/AuditLogger.java
index 47b80b9d17..c882202272 100644
--- a/acl/src/main/java/org/springframework/security/acls/domain/AuditLogger.java
+++ b/acl/src/main/java/org/springframework/security/acls/domain/AuditLogger.java
@@ -14,7 +14,7 @@
*/
package org.springframework.security.acls.domain;
-import org.springframework.security.acls.AccessControlEntry;
+import org.springframework.security.acls.model.AccessControlEntry;
/**
diff --git a/acl/src/main/java/org/springframework/security/acls/domain/BasePermission.java b/acl/src/main/java/org/springframework/security/acls/domain/BasePermission.java
index c3128d9a55..582ab07e09 100644
--- a/acl/src/main/java/org/springframework/security/acls/domain/BasePermission.java
+++ b/acl/src/main/java/org/springframework/security/acls/domain/BasePermission.java
@@ -14,7 +14,7 @@
*/
package org.springframework.security.acls.domain;
-import org.springframework.security.acls.Permission;
+import org.springframework.security.acls.model.Permission;
/**
diff --git a/acl/src/main/java/org/springframework/security/acls/domain/ConsoleAuditLogger.java b/acl/src/main/java/org/springframework/security/acls/domain/ConsoleAuditLogger.java
index 4eb7b0b41e..996c3349db 100644
--- a/acl/src/main/java/org/springframework/security/acls/domain/ConsoleAuditLogger.java
+++ b/acl/src/main/java/org/springframework/security/acls/domain/ConsoleAuditLogger.java
@@ -14,8 +14,8 @@
*/
package org.springframework.security.acls.domain;
-import org.springframework.security.acls.AccessControlEntry;
-import org.springframework.security.acls.AuditableAccessControlEntry;
+import org.springframework.security.acls.model.AccessControlEntry;
+import org.springframework.security.acls.model.AuditableAccessControlEntry;
import org.springframework.util.Assert;
diff --git a/acl/src/main/java/org/springframework/security/acls/domain/CumulativePermission.java b/acl/src/main/java/org/springframework/security/acls/domain/CumulativePermission.java
index 0762808be8..888e89a1cd 100644
--- a/acl/src/main/java/org/springframework/security/acls/domain/CumulativePermission.java
+++ b/acl/src/main/java/org/springframework/security/acls/domain/CumulativePermission.java
@@ -14,8 +14,7 @@
*/
package org.springframework.security.acls.domain;
-import org.springframework.security.acls.AclFormattingUtils;
-import org.springframework.security.acls.Permission;
+import org.springframework.security.acls.model.Permission;
/**
diff --git a/acl/src/main/java/org/springframework/security/acls/domain/DefaultPermissionFactory.java b/acl/src/main/java/org/springframework/security/acls/domain/DefaultPermissionFactory.java
index e9fe4d34d7..a9e1747b43 100644
--- a/acl/src/main/java/org/springframework/security/acls/domain/DefaultPermissionFactory.java
+++ b/acl/src/main/java/org/springframework/security/acls/domain/DefaultPermissionFactory.java
@@ -4,8 +4,8 @@ import java.lang.reflect.Field;
import java.util.HashMap;
import java.util.Map;
-import org.springframework.security.acls.Permission;
import org.springframework.security.acls.jdbc.LookupStrategy;
+import org.springframework.security.acls.model.Permission;
import org.springframework.util.Assert;
/**
diff --git a/acl/src/main/java/org/springframework/security/acls/sid/GrantedAuthoritySid.java b/acl/src/main/java/org/springframework/security/acls/domain/GrantedAuthoritySid.java
similarity index 96%
rename from acl/src/main/java/org/springframework/security/acls/sid/GrantedAuthoritySid.java
rename to acl/src/main/java/org/springframework/security/acls/domain/GrantedAuthoritySid.java
index 1ab2460fa0..db81b926b7 100644
--- a/acl/src/main/java/org/springframework/security/acls/sid/GrantedAuthoritySid.java
+++ b/acl/src/main/java/org/springframework/security/acls/domain/GrantedAuthoritySid.java
@@ -12,8 +12,9 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package org.springframework.security.acls.sid;
+package org.springframework.security.acls.domain;
+import org.springframework.security.acls.model.Sid;
import org.springframework.security.core.GrantedAuthority;
import org.springframework.util.Assert;
diff --git a/acl/src/main/java/org/springframework/security/acls/objectidentity/IdentityUnavailableException.java b/acl/src/main/java/org/springframework/security/acls/domain/IdentityUnavailableException.java
similarity index 96%
rename from acl/src/main/java/org/springframework/security/acls/objectidentity/IdentityUnavailableException.java
rename to acl/src/main/java/org/springframework/security/acls/domain/IdentityUnavailableException.java
index 191a33b9dd..20cbea99e5 100644
--- a/acl/src/main/java/org/springframework/security/acls/objectidentity/IdentityUnavailableException.java
+++ b/acl/src/main/java/org/springframework/security/acls/domain/IdentityUnavailableException.java
@@ -12,7 +12,7 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package org.springframework.security.acls.objectidentity;
+package org.springframework.security.acls.domain;
/**
* Thrown if an ACL identity could not be extracted from an object.
diff --git a/acl/src/main/java/org/springframework/security/acls/objectidentity/ObjectIdentityImpl.java b/acl/src/main/java/org/springframework/security/acls/domain/ObjectIdentityImpl.java
similarity index 96%
rename from acl/src/main/java/org/springframework/security/acls/objectidentity/ObjectIdentityImpl.java
rename to acl/src/main/java/org/springframework/security/acls/domain/ObjectIdentityImpl.java
index 90219f02e4..dcd407e8b2 100644
--- a/acl/src/main/java/org/springframework/security/acls/objectidentity/ObjectIdentityImpl.java
+++ b/acl/src/main/java/org/springframework/security/acls/domain/ObjectIdentityImpl.java
@@ -12,11 +12,12 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package org.springframework.security.acls.objectidentity;
+package org.springframework.security.acls.domain;
import java.io.Serializable;
import java.lang.reflect.Method;
+import org.springframework.security.acls.model.ObjectIdentity;
import org.springframework.util.Assert;
import org.springframework.util.ClassUtils;
@@ -43,7 +44,7 @@ public class ObjectIdentityImpl implements ObjectIdentity {
Assert.notNull(identifier, "identifier required");
try {
- this.javaType = ClassUtils.forName(javaType);
+ this.javaType = ClassUtils.forName(javaType, ClassUtils.getDefaultClassLoader());
} catch (ClassNotFoundException e) {
throw new IllegalStateException("Unable to load javaType: " + javaType, e);
}
diff --git a/acl/src/main/java/org/springframework/security/acls/objectidentity/ObjectIdentityRetrievalStrategyImpl.java b/acl/src/main/java/org/springframework/security/acls/domain/ObjectIdentityRetrievalStrategyImpl.java
similarity index 84%
rename from acl/src/main/java/org/springframework/security/acls/objectidentity/ObjectIdentityRetrievalStrategyImpl.java
rename to acl/src/main/java/org/springframework/security/acls/domain/ObjectIdentityRetrievalStrategyImpl.java
index 019437ecaa..85a5f34e9e 100644
--- a/acl/src/main/java/org/springframework/security/acls/objectidentity/ObjectIdentityRetrievalStrategyImpl.java
+++ b/acl/src/main/java/org/springframework/security/acls/domain/ObjectIdentityRetrievalStrategyImpl.java
@@ -13,10 +13,14 @@
* limitations under the License.
*/
-package org.springframework.security.acls.objectidentity;
+package org.springframework.security.acls.domain;
import java.io.Serializable;
+import org.springframework.security.acls.model.ObjectIdentity;
+import org.springframework.security.acls.model.ObjectIdentityGenerator;
+import org.springframework.security.acls.model.ObjectIdentityRetrievalStrategy;
+
/**
* Basic implementation of {@link ObjectIdentityRetrievalStrategy} and ObjectIdentityGenerator
* that uses the constructors of {@link ObjectIdentityImpl} to create the {@link ObjectIdentity}.
diff --git a/acl/src/main/java/org/springframework/security/acls/domain/PermissionFactory.java b/acl/src/main/java/org/springframework/security/acls/domain/PermissionFactory.java
index 08f68c33f3..43b5c42212 100644
--- a/acl/src/main/java/org/springframework/security/acls/domain/PermissionFactory.java
+++ b/acl/src/main/java/org/springframework/security/acls/domain/PermissionFactory.java
@@ -1,6 +1,6 @@
package org.springframework.security.acls.domain;
-import org.springframework.security.acls.Permission;
+import org.springframework.security.acls.model.Permission;
/**
* Provides a simple mechanism to retrieve {@link Permission} instances from integer masks.
diff --git a/acl/src/main/java/org/springframework/security/acls/sid/PrincipalSid.java b/acl/src/main/java/org/springframework/security/acls/domain/PrincipalSid.java
similarity index 96%
rename from acl/src/main/java/org/springframework/security/acls/sid/PrincipalSid.java
rename to acl/src/main/java/org/springframework/security/acls/domain/PrincipalSid.java
index a5cef38189..56d38c3b6a 100644
--- a/acl/src/main/java/org/springframework/security/acls/sid/PrincipalSid.java
+++ b/acl/src/main/java/org/springframework/security/acls/domain/PrincipalSid.java
@@ -12,9 +12,10 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package org.springframework.security.acls.sid;
+package org.springframework.security.acls.domain;
+import org.springframework.security.acls.model.Sid;
import org.springframework.security.core.Authentication;
import org.springframework.security.core.userdetails.UserDetails;
diff --git a/acl/src/main/java/org/springframework/security/acls/sid/SidRetrievalStrategyImpl.java b/acl/src/main/java/org/springframework/security/acls/domain/SidRetrievalStrategyImpl.java
similarity index 91%
rename from acl/src/main/java/org/springframework/security/acls/sid/SidRetrievalStrategyImpl.java
rename to acl/src/main/java/org/springframework/security/acls/domain/SidRetrievalStrategyImpl.java
index c54f229f5b..706626ed4f 100644
--- a/acl/src/main/java/org/springframework/security/acls/sid/SidRetrievalStrategyImpl.java
+++ b/acl/src/main/java/org/springframework/security/acls/domain/SidRetrievalStrategyImpl.java
@@ -13,11 +13,13 @@
* limitations under the License.
*/
-package org.springframework.security.acls.sid;
+package org.springframework.security.acls.domain;
import java.util.ArrayList;
import java.util.List;
+import org.springframework.security.acls.model.Sid;
+import org.springframework.security.acls.model.SidRetrievalStrategy;
import org.springframework.security.core.Authentication;
import org.springframework.security.core.GrantedAuthority;
diff --git a/acl/src/main/java/org/springframework/security/acls/jdbc/AclCache.java b/acl/src/main/java/org/springframework/security/acls/jdbc/AclCache.java
index 00ce30f50f..4898190138 100644
--- a/acl/src/main/java/org/springframework/security/acls/jdbc/AclCache.java
+++ b/acl/src/main/java/org/springframework/security/acls/jdbc/AclCache.java
@@ -14,8 +14,8 @@
*/
package org.springframework.security.acls.jdbc;
-import org.springframework.security.acls.MutableAcl;
-import org.springframework.security.acls.objectidentity.ObjectIdentity;
+import org.springframework.security.acls.model.MutableAcl;
+import org.springframework.security.acls.model.ObjectIdentity;
import java.io.Serializable;
diff --git a/acl/src/main/java/org/springframework/security/acls/jdbc/BasicLookupStrategy.java b/acl/src/main/java/org/springframework/security/acls/jdbc/BasicLookupStrategy.java
index 5c41fc11c2..a79869edeb 100644
--- a/acl/src/main/java/org/springframework/security/acls/jdbc/BasicLookupStrategy.java
+++ b/acl/src/main/java/org/springframework/security/acls/jdbc/BasicLookupStrategy.java
@@ -33,22 +33,22 @@ import org.springframework.dao.DataAccessException;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.jdbc.core.PreparedStatementSetter;
import org.springframework.jdbc.core.ResultSetExtractor;
-import org.springframework.security.acls.AccessControlEntry;
-import org.springframework.security.acls.Acl;
-import org.springframework.security.acls.MutableAcl;
-import org.springframework.security.acls.NotFoundException;
-import org.springframework.security.acls.Permission;
-import org.springframework.security.acls.UnloadedSidException;
import org.springframework.security.acls.domain.AccessControlEntryImpl;
import org.springframework.security.acls.domain.AclAuthorizationStrategy;
import org.springframework.security.acls.domain.AclImpl;
import org.springframework.security.acls.domain.AuditLogger;
import org.springframework.security.acls.domain.BasePermission;
-import org.springframework.security.acls.objectidentity.ObjectIdentity;
-import org.springframework.security.acls.objectidentity.ObjectIdentityImpl;
-import org.springframework.security.acls.sid.GrantedAuthoritySid;
-import org.springframework.security.acls.sid.PrincipalSid;
-import org.springframework.security.acls.sid.Sid;
+import org.springframework.security.acls.domain.GrantedAuthoritySid;
+import org.springframework.security.acls.domain.ObjectIdentityImpl;
+import org.springframework.security.acls.domain.PrincipalSid;
+import org.springframework.security.acls.model.AccessControlEntry;
+import org.springframework.security.acls.model.Acl;
+import org.springframework.security.acls.model.MutableAcl;
+import org.springframework.security.acls.model.NotFoundException;
+import org.springframework.security.acls.model.ObjectIdentity;
+import org.springframework.security.acls.model.Permission;
+import org.springframework.security.acls.model.Sid;
+import org.springframework.security.acls.model.UnloadedSidException;
import org.springframework.security.util.FieldUtils;
import org.springframework.util.Assert;
diff --git a/acl/src/main/java/org/springframework/security/acls/jdbc/EhCacheBasedAclCache.java b/acl/src/main/java/org/springframework/security/acls/jdbc/EhCacheBasedAclCache.java
index cb522acfdb..df783947c6 100644
--- a/acl/src/main/java/org/springframework/security/acls/jdbc/EhCacheBasedAclCache.java
+++ b/acl/src/main/java/org/springframework/security/acls/jdbc/EhCacheBasedAclCache.java
@@ -20,11 +20,11 @@ import net.sf.ehcache.CacheException;
import net.sf.ehcache.Ehcache;
import net.sf.ehcache.Element;
-import org.springframework.security.acls.MutableAcl;
import org.springframework.security.acls.domain.AclAuthorizationStrategy;
import org.springframework.security.acls.domain.AclImpl;
import org.springframework.security.acls.domain.AuditLogger;
-import org.springframework.security.acls.objectidentity.ObjectIdentity;
+import org.springframework.security.acls.model.MutableAcl;
+import org.springframework.security.acls.model.ObjectIdentity;
import org.springframework.security.util.FieldUtils;
import org.springframework.util.Assert;
diff --git a/acl/src/main/java/org/springframework/security/acls/jdbc/JdbcAclService.java b/acl/src/main/java/org/springframework/security/acls/jdbc/JdbcAclService.java
index e8a30087b8..e0500355bb 100644
--- a/acl/src/main/java/org/springframework/security/acls/jdbc/JdbcAclService.java
+++ b/acl/src/main/java/org/springframework/security/acls/jdbc/JdbcAclService.java
@@ -26,12 +26,12 @@ import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.jdbc.core.RowMapper;
-import org.springframework.security.acls.Acl;
-import org.springframework.security.acls.AclService;
-import org.springframework.security.acls.NotFoundException;
-import org.springframework.security.acls.objectidentity.ObjectIdentity;
-import org.springframework.security.acls.objectidentity.ObjectIdentityImpl;
-import org.springframework.security.acls.sid.Sid;
+import org.springframework.security.acls.domain.ObjectIdentityImpl;
+import org.springframework.security.acls.model.Acl;
+import org.springframework.security.acls.model.AclService;
+import org.springframework.security.acls.model.NotFoundException;
+import org.springframework.security.acls.model.ObjectIdentity;
+import org.springframework.security.acls.model.Sid;
import org.springframework.util.Assert;
diff --git a/acl/src/main/java/org/springframework/security/acls/jdbc/JdbcMutableAclService.java b/acl/src/main/java/org/springframework/security/acls/jdbc/JdbcMutableAclService.java
index cfb3ddcb1d..2c0d5e2502 100644
--- a/acl/src/main/java/org/springframework/security/acls/jdbc/JdbcMutableAclService.java
+++ b/acl/src/main/java/org/springframework/security/acls/jdbc/JdbcMutableAclService.java
@@ -22,19 +22,19 @@ import javax.sql.DataSource;
import org.springframework.dao.DataAccessException;
import org.springframework.jdbc.core.BatchPreparedStatementSetter;
-import org.springframework.security.acls.AccessControlEntry;
-import org.springframework.security.acls.Acl;
-import org.springframework.security.acls.AlreadyExistsException;
-import org.springframework.security.acls.ChildrenExistException;
-import org.springframework.security.acls.MutableAcl;
-import org.springframework.security.acls.MutableAclService;
-import org.springframework.security.acls.NotFoundException;
import org.springframework.security.acls.domain.AccessControlEntryImpl;
-import org.springframework.security.acls.objectidentity.ObjectIdentity;
-import org.springframework.security.acls.objectidentity.ObjectIdentityImpl;
-import org.springframework.security.acls.sid.GrantedAuthoritySid;
-import org.springframework.security.acls.sid.PrincipalSid;
-import org.springframework.security.acls.sid.Sid;
+import org.springframework.security.acls.domain.GrantedAuthoritySid;
+import org.springframework.security.acls.domain.ObjectIdentityImpl;
+import org.springframework.security.acls.domain.PrincipalSid;
+import org.springframework.security.acls.model.AccessControlEntry;
+import org.springframework.security.acls.model.Acl;
+import org.springframework.security.acls.model.AlreadyExistsException;
+import org.springframework.security.acls.model.ChildrenExistException;
+import org.springframework.security.acls.model.MutableAcl;
+import org.springframework.security.acls.model.MutableAclService;
+import org.springframework.security.acls.model.NotFoundException;
+import org.springframework.security.acls.model.ObjectIdentity;
+import org.springframework.security.acls.model.Sid;
import org.springframework.security.core.Authentication;
import org.springframework.security.core.context.SecurityContextHolder;
import org.springframework.transaction.support.TransactionSynchronizationManager;
diff --git a/acl/src/main/java/org/springframework/security/acls/jdbc/LookupStrategy.java b/acl/src/main/java/org/springframework/security/acls/jdbc/LookupStrategy.java
index 1b87f454be..d709b72dbb 100644
--- a/acl/src/main/java/org/springframework/security/acls/jdbc/LookupStrategy.java
+++ b/acl/src/main/java/org/springframework/security/acls/jdbc/LookupStrategy.java
@@ -14,17 +14,17 @@
*/
package org.springframework.security.acls.jdbc;
-import org.springframework.security.acls.Acl;
-import org.springframework.security.acls.NotFoundException;
-import org.springframework.security.acls.objectidentity.ObjectIdentity;
-import org.springframework.security.acls.sid.Sid;
+import org.springframework.security.acls.model.Acl;
+import org.springframework.security.acls.model.NotFoundException;
+import org.springframework.security.acls.model.ObjectIdentity;
+import org.springframework.security.acls.model.Sid;
import java.util.List;
import java.util.Map;
/**
- * Performs lookups for {@link org.springframework.security.acls.AclService}.
+ * Performs lookups for {@link org.springframework.security.acls.model.AclService}.
*
* @author Ben Alex
* @version $Id$
diff --git a/acl/src/main/java/org/springframework/security/acls/AccessControlEntry.java b/acl/src/main/java/org/springframework/security/acls/model/AccessControlEntry.java
similarity index 94%
rename from acl/src/main/java/org/springframework/security/acls/AccessControlEntry.java
rename to acl/src/main/java/org/springframework/security/acls/model/AccessControlEntry.java
index e64c28e89b..4f7caa8ba2 100644
--- a/acl/src/main/java/org/springframework/security/acls/AccessControlEntry.java
+++ b/acl/src/main/java/org/springframework/security/acls/model/AccessControlEntry.java
@@ -12,9 +12,8 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package org.springframework.security.acls;
+package org.springframework.security.acls.model;
-import org.springframework.security.acls.sid.Sid;
import java.io.Serializable;
diff --git a/acl/src/main/java/org/springframework/security/acls/Acl.java b/acl/src/main/java/org/springframework/security/acls/model/Acl.java
similarity index 95%
rename from acl/src/main/java/org/springframework/security/acls/Acl.java
rename to acl/src/main/java/org/springframework/security/acls/model/Acl.java
index 9dfc1b63dd..a7c8c91464 100644
--- a/acl/src/main/java/org/springframework/security/acls/Acl.java
+++ b/acl/src/main/java/org/springframework/security/acls/model/Acl.java
@@ -12,10 +12,8 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package org.springframework.security.acls;
+package org.springframework.security.acls.model;
-import org.springframework.security.acls.objectidentity.ObjectIdentity;
-import org.springframework.security.acls.sid.Sid;
import java.io.Serializable;
import java.util.List;
@@ -29,13 +27,13 @@ import java.util.List;
* order to avoid needing references to the domain object itself, this
* interface handles indirection between a domain object and an ACL object
* identity via the {@link
- * org.springframework.security.acls.objectidentity.ObjectIdentity} interface.
+ * org.springframework.security.acls.model.ObjectIdentity} interface.
*
*
*
* Implementing classes may elect to return instances that represent
- * {@link org.springframework.security.acls.Permission} information for either
- * some OR all {@link org.springframework.security.acls.sid.Sid}
+ * {@link org.springframework.security.acls.model.Permission} information for either
+ * some OR all {@link org.springframework.security.acls.model.Sid}
* instances. Therefore, an instance may NOT necessarily contain ALL Sids
* for a given domain object.
*
diff --git a/acl/src/main/java/org/springframework/security/acls/AclDataAccessException.java b/acl/src/main/java/org/springframework/security/acls/model/AclDataAccessException.java
similarity index 91%
rename from acl/src/main/java/org/springframework/security/acls/AclDataAccessException.java
rename to acl/src/main/java/org/springframework/security/acls/model/AclDataAccessException.java
index 7b489cb99d..167f637b30 100644
--- a/acl/src/main/java/org/springframework/security/acls/AclDataAccessException.java
+++ b/acl/src/main/java/org/springframework/security/acls/model/AclDataAccessException.java
@@ -1,11 +1,11 @@
-package org.springframework.security.acls;
+package org.springframework.security.acls.model;
/**
* Abstract base class for Acl data operations.
*
* @author Luke Taylor
* @version $Id$
- * @since 2.5
+ * @since 3.0
*/
public abstract class AclDataAccessException extends RuntimeException {
diff --git a/acl/src/main/java/org/springframework/security/acls/AclService.java b/acl/src/main/java/org/springframework/security/acls/model/AclService.java
similarity index 96%
rename from acl/src/main/java/org/springframework/security/acls/AclService.java
rename to acl/src/main/java/org/springframework/security/acls/model/AclService.java
index 8c8db89fee..23ee910f18 100644
--- a/acl/src/main/java/org/springframework/security/acls/AclService.java
+++ b/acl/src/main/java/org/springframework/security/acls/model/AclService.java
@@ -12,10 +12,8 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package org.springframework.security.acls;
+package org.springframework.security.acls.model;
-import org.springframework.security.acls.objectidentity.ObjectIdentity;
-import org.springframework.security.acls.sid.Sid;
import java.util.List;
import java.util.Map;
diff --git a/acl/src/main/java/org/springframework/security/acls/AlreadyExistsException.java b/acl/src/main/java/org/springframework/security/acls/model/AlreadyExistsException.java
similarity index 96%
rename from acl/src/main/java/org/springframework/security/acls/AlreadyExistsException.java
rename to acl/src/main/java/org/springframework/security/acls/model/AlreadyExistsException.java
index d9ff17821c..f74a5e2738 100644
--- a/acl/src/main/java/org/springframework/security/acls/AlreadyExistsException.java
+++ b/acl/src/main/java/org/springframework/security/acls/model/AlreadyExistsException.java
@@ -12,7 +12,8 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package org.springframework.security.acls;
+package org.springframework.security.acls.model;
+
/**
* Thrown if an Acl
entry already exists for the object.
diff --git a/acl/src/main/java/org/springframework/security/acls/AuditableAccessControlEntry.java b/acl/src/main/java/org/springframework/security/acls/model/AuditableAccessControlEntry.java
similarity index 95%
rename from acl/src/main/java/org/springframework/security/acls/AuditableAccessControlEntry.java
rename to acl/src/main/java/org/springframework/security/acls/model/AuditableAccessControlEntry.java
index fda5193144..988aadeb26 100644
--- a/acl/src/main/java/org/springframework/security/acls/AuditableAccessControlEntry.java
+++ b/acl/src/main/java/org/springframework/security/acls/model/AuditableAccessControlEntry.java
@@ -12,7 +12,8 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package org.springframework.security.acls;
+package org.springframework.security.acls.model;
+
/**
* Represents an ACE that provides auditing information.
diff --git a/acl/src/main/java/org/springframework/security/acls/AuditableAcl.java b/acl/src/main/java/org/springframework/security/acls/model/AuditableAcl.java
similarity index 95%
rename from acl/src/main/java/org/springframework/security/acls/AuditableAcl.java
rename to acl/src/main/java/org/springframework/security/acls/model/AuditableAcl.java
index d268a32b47..09904169cf 100644
--- a/acl/src/main/java/org/springframework/security/acls/AuditableAcl.java
+++ b/acl/src/main/java/org/springframework/security/acls/model/AuditableAcl.java
@@ -12,7 +12,8 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package org.springframework.security.acls;
+package org.springframework.security.acls.model;
+
/**
* A mutable ACL that provides audit capabilities.
diff --git a/acl/src/main/java/org/springframework/security/acls/ChildrenExistException.java b/acl/src/main/java/org/springframework/security/acls/model/ChildrenExistException.java
similarity index 96%
rename from acl/src/main/java/org/springframework/security/acls/ChildrenExistException.java
rename to acl/src/main/java/org/springframework/security/acls/model/ChildrenExistException.java
index 8894173bc6..c169787ece 100644
--- a/acl/src/main/java/org/springframework/security/acls/ChildrenExistException.java
+++ b/acl/src/main/java/org/springframework/security/acls/model/ChildrenExistException.java
@@ -12,7 +12,8 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package org.springframework.security.acls;
+package org.springframework.security.acls.model;
+
/**
* Thrown if an {@link Acl} cannot be deleted because children Acl
s exist.
diff --git a/acl/src/main/java/org/springframework/security/acls/MutableAcl.java b/acl/src/main/java/org/springframework/security/acls/model/MutableAcl.java
similarity index 95%
rename from acl/src/main/java/org/springframework/security/acls/MutableAcl.java
rename to acl/src/main/java/org/springframework/security/acls/model/MutableAcl.java
index aa8ab2beea..d49026ff59 100644
--- a/acl/src/main/java/org/springframework/security/acls/MutableAcl.java
+++ b/acl/src/main/java/org/springframework/security/acls/model/MutableAcl.java
@@ -12,11 +12,10 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package org.springframework.security.acls;
+package org.springframework.security.acls.model;
import java.io.Serializable;
-import org.springframework.security.acls.sid.Sid;
/**
diff --git a/acl/src/main/java/org/springframework/security/acls/MutableAclService.java b/acl/src/main/java/org/springframework/security/acls/model/MutableAclService.java
similarity index 95%
rename from acl/src/main/java/org/springframework/security/acls/MutableAclService.java
rename to acl/src/main/java/org/springframework/security/acls/model/MutableAclService.java
index 01513c2880..a1fc7e1082 100644
--- a/acl/src/main/java/org/springframework/security/acls/MutableAclService.java
+++ b/acl/src/main/java/org/springframework/security/acls/model/MutableAclService.java
@@ -12,9 +12,8 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package org.springframework.security.acls;
+package org.springframework.security.acls.model;
-import org.springframework.security.acls.objectidentity.ObjectIdentity;
/**
diff --git a/acl/src/main/java/org/springframework/security/acls/NotFoundException.java b/acl/src/main/java/org/springframework/security/acls/model/NotFoundException.java
similarity index 96%
rename from acl/src/main/java/org/springframework/security/acls/NotFoundException.java
rename to acl/src/main/java/org/springframework/security/acls/model/NotFoundException.java
index 54b754ae32..ff7fb9aba5 100644
--- a/acl/src/main/java/org/springframework/security/acls/NotFoundException.java
+++ b/acl/src/main/java/org/springframework/security/acls/model/NotFoundException.java
@@ -12,7 +12,8 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package org.springframework.security.acls;
+package org.springframework.security.acls.model;
+
/**
* Thrown if an ACL-related object cannot be found.
diff --git a/acl/src/main/java/org/springframework/security/acls/objectidentity/ObjectIdentity.java b/acl/src/main/java/org/springframework/security/acls/model/ObjectIdentity.java
similarity index 97%
rename from acl/src/main/java/org/springframework/security/acls/objectidentity/ObjectIdentity.java
rename to acl/src/main/java/org/springframework/security/acls/model/ObjectIdentity.java
index 4f55721184..b56f79af4e 100644
--- a/acl/src/main/java/org/springframework/security/acls/objectidentity/ObjectIdentity.java
+++ b/acl/src/main/java/org/springframework/security/acls/model/ObjectIdentity.java
@@ -12,7 +12,7 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package org.springframework.security.acls.objectidentity;
+package org.springframework.security.acls.model;
import java.io.Serializable;
diff --git a/acl/src/main/java/org/springframework/security/acls/objectidentity/ObjectIdentityGenerator.java b/acl/src/main/java/org/springframework/security/acls/model/ObjectIdentityGenerator.java
similarity index 52%
rename from acl/src/main/java/org/springframework/security/acls/objectidentity/ObjectIdentityGenerator.java
rename to acl/src/main/java/org/springframework/security/acls/model/ObjectIdentityGenerator.java
index ec9f0d89ff..e9495ced95 100644
--- a/acl/src/main/java/org/springframework/security/acls/objectidentity/ObjectIdentityGenerator.java
+++ b/acl/src/main/java/org/springframework/security/acls/model/ObjectIdentityGenerator.java
@@ -1,14 +1,18 @@
-package org.springframework.security.acls.objectidentity;
+package org.springframework.security.acls.model;
import java.io.Serializable;
+
/**
- * Strategy which creates an ObjectIdentity from object identity and type information.
- * Used in situations when the actual object instance isn't available.
+ * Strategy which creates an ObjectIdentity from an object identifier (such as a primary key)
+ * and type information.
+ *
+ * Differs from {@link ObjectIdentityRetrievalStrategy} in that it is used in situations when the actual object
+ * instance isn't available.
*
* @author Luke Taylor
* @version $Id$
- * @since 2.5
+ * @since 3.0
*/
public interface ObjectIdentityGenerator {
diff --git a/acl/src/main/java/org/springframework/security/acls/objectidentity/ObjectIdentityRetrievalStrategy.java b/acl/src/main/java/org/springframework/security/acls/model/ObjectIdentityRetrievalStrategy.java
similarity index 94%
rename from acl/src/main/java/org/springframework/security/acls/objectidentity/ObjectIdentityRetrievalStrategy.java
rename to acl/src/main/java/org/springframework/security/acls/model/ObjectIdentityRetrievalStrategy.java
index 7963ec8f96..3a01d66ff4 100644
--- a/acl/src/main/java/org/springframework/security/acls/objectidentity/ObjectIdentityRetrievalStrategy.java
+++ b/acl/src/main/java/org/springframework/security/acls/model/ObjectIdentityRetrievalStrategy.java
@@ -13,7 +13,8 @@
* limitations under the License.
*/
-package org.springframework.security.acls.objectidentity;
+package org.springframework.security.acls.model;
+
/**
* Strategy interface that provides the ability to determine which {@link ObjectIdentity}
diff --git a/acl/src/main/java/org/springframework/security/acls/OwnershipAcl.java b/acl/src/main/java/org/springframework/security/acls/model/OwnershipAcl.java
similarity index 91%
rename from acl/src/main/java/org/springframework/security/acls/OwnershipAcl.java
rename to acl/src/main/java/org/springframework/security/acls/model/OwnershipAcl.java
index 35c8a82b0e..812852c1f3 100644
--- a/acl/src/main/java/org/springframework/security/acls/OwnershipAcl.java
+++ b/acl/src/main/java/org/springframework/security/acls/model/OwnershipAcl.java
@@ -12,9 +12,8 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package org.springframework.security.acls;
+package org.springframework.security.acls.model;
-import org.springframework.security.acls.sid.Sid;
/**
diff --git a/acl/src/main/java/org/springframework/security/acls/Permission.java b/acl/src/main/java/org/springframework/security/acls/model/Permission.java
similarity index 97%
rename from acl/src/main/java/org/springframework/security/acls/Permission.java
rename to acl/src/main/java/org/springframework/security/acls/model/Permission.java
index 003f4a5493..9ed05a4f1b 100644
--- a/acl/src/main/java/org/springframework/security/acls/Permission.java
+++ b/acl/src/main/java/org/springframework/security/acls/model/Permission.java
@@ -12,7 +12,7 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package org.springframework.security.acls;
+package org.springframework.security.acls.model;
import java.io.Serializable;
diff --git a/acl/src/main/java/org/springframework/security/acls/sid/Sid.java b/acl/src/main/java/org/springframework/security/acls/model/Sid.java
similarity index 97%
rename from acl/src/main/java/org/springframework/security/acls/sid/Sid.java
rename to acl/src/main/java/org/springframework/security/acls/model/Sid.java
index ecb06167eb..9636cb1b63 100644
--- a/acl/src/main/java/org/springframework/security/acls/sid/Sid.java
+++ b/acl/src/main/java/org/springframework/security/acls/model/Sid.java
@@ -12,7 +12,7 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package org.springframework.security.acls.sid;
+package org.springframework.security.acls.model;
import java.io.Serializable;
diff --git a/acl/src/main/java/org/springframework/security/acls/sid/SidRetrievalStrategy.java b/acl/src/main/java/org/springframework/security/acls/model/SidRetrievalStrategy.java
similarity index 95%
rename from acl/src/main/java/org/springframework/security/acls/sid/SidRetrievalStrategy.java
rename to acl/src/main/java/org/springframework/security/acls/model/SidRetrievalStrategy.java
index 5f57949cb0..3b5b365c81 100644
--- a/acl/src/main/java/org/springframework/security/acls/sid/SidRetrievalStrategy.java
+++ b/acl/src/main/java/org/springframework/security/acls/model/SidRetrievalStrategy.java
@@ -13,7 +13,7 @@
* limitations under the License.
*/
-package org.springframework.security.acls.sid;
+package org.springframework.security.acls.model;
import java.util.List;
diff --git a/acl/src/main/java/org/springframework/security/acls/UnloadedSidException.java b/acl/src/main/java/org/springframework/security/acls/model/UnloadedSidException.java
similarity index 96%
rename from acl/src/main/java/org/springframework/security/acls/UnloadedSidException.java
rename to acl/src/main/java/org/springframework/security/acls/model/UnloadedSidException.java
index 218b67c8c1..7b05057167 100644
--- a/acl/src/main/java/org/springframework/security/acls/UnloadedSidException.java
+++ b/acl/src/main/java/org/springframework/security/acls/model/UnloadedSidException.java
@@ -12,7 +12,8 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package org.springframework.security.acls;
+package org.springframework.security.acls.model;
+
/**
* Thrown if an {@link Acl} cannot perform an operation because it only loaded a subset of Sid
s and
diff --git a/acl/src/main/java/org/springframework/security/acls/package.html b/acl/src/main/java/org/springframework/security/acls/model/package.html
similarity index 100%
rename from acl/src/main/java/org/springframework/security/acls/package.html
rename to acl/src/main/java/org/springframework/security/acls/model/package.html
diff --git a/acl/src/main/java/org/springframework/security/acls/objectidentity/package.html b/acl/src/main/java/org/springframework/security/acls/objectidentity/package.html
deleted file mode 100644
index 8e08176b32..0000000000
--- a/acl/src/main/java/org/springframework/security/acls/objectidentity/package.html
+++ /dev/null
@@ -1,5 +0,0 @@
-
-
-Provides indirection between ACL packages and domain objects.
-
-
diff --git a/acl/src/main/java/org/springframework/security/acls/sid/package.html b/acl/src/main/java/org/springframework/security/acls/sid/package.html
deleted file mode 100644
index ea25c9430b..0000000000
--- a/acl/src/main/java/org/springframework/security/acls/sid/package.html
+++ /dev/null
@@ -1,5 +0,0 @@
-
-
-Provides indirection between ACL packages and security identities, such as principals and GrantedAuthority[]s.
-
-
diff --git a/acl/src/test/java/org/springframework/security/acls/AclFormattingUtilsTests.java b/acl/src/test/java/org/springframework/security/acls/AclFormattingUtilsTests.java
index 209109d162..bd1325cf5a 100644
--- a/acl/src/test/java/org/springframework/security/acls/AclFormattingUtilsTests.java
+++ b/acl/src/test/java/org/springframework/security/acls/AclFormattingUtilsTests.java
@@ -1,5 +1,8 @@
package org.springframework.security.acls;
+import org.springframework.security.acls.domain.AclFormattingUtils;
+import org.springframework.security.acls.model.Permission;
+
import junit.framework.Assert;
import junit.framework.TestCase;
diff --git a/acl/src/test/java/org/springframework/security/acls/expression/AclPermissionEvaluatorTests.java b/acl/src/test/java/org/springframework/security/acls/AclPermissionEvaluatorTests.java
similarity index 75%
rename from acl/src/test/java/org/springframework/security/acls/expression/AclPermissionEvaluatorTests.java
rename to acl/src/test/java/org/springframework/security/acls/AclPermissionEvaluatorTests.java
index 2599c8afd2..32c1420c4e 100644
--- a/acl/src/test/java/org/springframework/security/acls/expression/AclPermissionEvaluatorTests.java
+++ b/acl/src/test/java/org/springframework/security/acls/AclPermissionEvaluatorTests.java
@@ -1,22 +1,22 @@
-package org.springframework.security.acls.expression;
+package org.springframework.security.acls;
import static org.junit.Assert.assertTrue;
import static org.mockito.Matchers.*;
import static org.mockito.Mockito.*;
import org.junit.Test;
-import org.springframework.security.acls.Acl;
-import org.springframework.security.acls.AclService;
-import org.springframework.security.acls.objectidentity.ObjectIdentity;
-import org.springframework.security.acls.objectidentity.ObjectIdentityRetrievalStrategy;
-import org.springframework.security.acls.sid.SidRetrievalStrategy;
+import org.springframework.security.acls.model.Acl;
+import org.springframework.security.acls.model.AclService;
+import org.springframework.security.acls.model.ObjectIdentity;
+import org.springframework.security.acls.model.ObjectIdentityRetrievalStrategy;
+import org.springframework.security.acls.model.SidRetrievalStrategy;
import org.springframework.security.core.Authentication;
/**
*
* @author Luke Taylor
* @version $Id$
- * @since 2.5
+ * @since 3.0
*/
public class AclPermissionEvaluatorTests {
diff --git a/acl/src/test/java/org/springframework/security/acls/domain/AccessControlImplEntryTests.java b/acl/src/test/java/org/springframework/security/acls/domain/AccessControlImplEntryTests.java
index 89841bde0e..19bfb928f0 100644
--- a/acl/src/test/java/org/springframework/security/acls/domain/AccessControlImplEntryTests.java
+++ b/acl/src/test/java/org/springframework/security/acls/domain/AccessControlImplEntryTests.java
@@ -6,12 +6,11 @@ import org.jmock.Expectations;
import org.jmock.Mockery;
import org.jmock.integration.junit4.JUnit4Mockery;
import org.junit.Test;
-import org.springframework.security.acls.AccessControlEntry;
-import org.springframework.security.acls.Acl;
-import org.springframework.security.acls.AuditableAccessControlEntry;
-import org.springframework.security.acls.objectidentity.ObjectIdentity;
-import org.springframework.security.acls.sid.PrincipalSid;
-import org.springframework.security.acls.sid.Sid;
+import org.springframework.security.acls.model.AccessControlEntry;
+import org.springframework.security.acls.model.Acl;
+import org.springframework.security.acls.model.AuditableAccessControlEntry;
+import org.springframework.security.acls.model.ObjectIdentity;
+import org.springframework.security.acls.model.Sid;
/**
* Tests for {@link AccessControlEntryImpl}.
diff --git a/acl/src/test/java/org/springframework/security/acls/domain/AclImplTests.java b/acl/src/test/java/org/springframework/security/acls/domain/AclImplTests.java
index de2abada4f..a01b5ad9e0 100644
--- a/acl/src/test/java/org/springframework/security/acls/domain/AclImplTests.java
+++ b/acl/src/test/java/org/springframework/security/acls/domain/AclImplTests.java
@@ -13,22 +13,19 @@ import org.jmock.Mockery;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
-import org.springframework.security.acls.AccessControlEntry;
-import org.springframework.security.acls.Acl;
-import org.springframework.security.acls.AlreadyExistsException;
-import org.springframework.security.acls.AuditableAccessControlEntry;
-import org.springframework.security.acls.AuditableAcl;
-import org.springframework.security.acls.ChildrenExistException;
-import org.springframework.security.acls.MutableAcl;
-import org.springframework.security.acls.MutableAclService;
-import org.springframework.security.acls.NotFoundException;
-import org.springframework.security.acls.OwnershipAcl;
-import org.springframework.security.acls.Permission;
-import org.springframework.security.acls.objectidentity.ObjectIdentity;
-import org.springframework.security.acls.objectidentity.ObjectIdentityImpl;
-import org.springframework.security.acls.sid.GrantedAuthoritySid;
-import org.springframework.security.acls.sid.PrincipalSid;
-import org.springframework.security.acls.sid.Sid;
+import org.springframework.security.acls.model.AccessControlEntry;
+import org.springframework.security.acls.model.Acl;
+import org.springframework.security.acls.model.AlreadyExistsException;
+import org.springframework.security.acls.model.AuditableAccessControlEntry;
+import org.springframework.security.acls.model.AuditableAcl;
+import org.springframework.security.acls.model.ChildrenExistException;
+import org.springframework.security.acls.model.MutableAcl;
+import org.springframework.security.acls.model.MutableAclService;
+import org.springframework.security.acls.model.NotFoundException;
+import org.springframework.security.acls.model.ObjectIdentity;
+import org.springframework.security.acls.model.OwnershipAcl;
+import org.springframework.security.acls.model.Permission;
+import org.springframework.security.acls.model.Sid;
import org.springframework.security.authentication.TestingAuthenticationToken;
import org.springframework.security.core.Authentication;
import org.springframework.security.core.GrantedAuthority;
diff --git a/acl/src/test/java/org/springframework/security/acls/domain/AclImplementationSecurityCheckTests.java b/acl/src/test/java/org/springframework/security/acls/domain/AclImplementationSecurityCheckTests.java
index 22dc329515..940e7c7210 100644
--- a/acl/src/test/java/org/springframework/security/acls/domain/AclImplementationSecurityCheckTests.java
+++ b/acl/src/test/java/org/springframework/security/acls/domain/AclImplementationSecurityCheckTests.java
@@ -4,12 +4,10 @@ import junit.framework.Assert;
import junit.framework.TestCase;
import org.springframework.security.access.AccessDeniedException;
-import org.springframework.security.acls.Acl;
-import org.springframework.security.acls.MutableAcl;
-import org.springframework.security.acls.NotFoundException;
-import org.springframework.security.acls.objectidentity.ObjectIdentity;
-import org.springframework.security.acls.objectidentity.ObjectIdentityImpl;
-import org.springframework.security.acls.sid.PrincipalSid;
+import org.springframework.security.acls.model.Acl;
+import org.springframework.security.acls.model.MutableAcl;
+import org.springframework.security.acls.model.NotFoundException;
+import org.springframework.security.acls.model.ObjectIdentity;
import org.springframework.security.authentication.TestingAuthenticationToken;
import org.springframework.security.core.Authentication;
import org.springframework.security.core.GrantedAuthority;
diff --git a/acl/src/test/java/org/springframework/security/acls/domain/AuditLoggerTests.java b/acl/src/test/java/org/springframework/security/acls/domain/AuditLoggerTests.java
index 835444641b..7f82c210d0 100644
--- a/acl/src/test/java/org/springframework/security/acls/domain/AuditLoggerTests.java
+++ b/acl/src/test/java/org/springframework/security/acls/domain/AuditLoggerTests.java
@@ -11,8 +11,8 @@ import org.jmock.integration.junit4.JUnit4Mockery;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
-import org.springframework.security.acls.AccessControlEntry;
-import org.springframework.security.acls.AuditableAccessControlEntry;
+import org.springframework.security.acls.model.AccessControlEntry;
+import org.springframework.security.acls.model.AuditableAccessControlEntry;
/**
* Test class for {@link ConsoleAuditLogger}.
diff --git a/acl/src/test/java/org/springframework/security/acls/objectidentity/ObjectIdentityImplTests.java b/acl/src/test/java/org/springframework/security/acls/domain/ObjectIdentityImplTests.java
similarity index 90%
rename from acl/src/test/java/org/springframework/security/acls/objectidentity/ObjectIdentityImplTests.java
rename to acl/src/test/java/org/springframework/security/acls/domain/ObjectIdentityImplTests.java
index 3244f1d73a..d8047010de 100644
--- a/acl/src/test/java/org/springframework/security/acls/objectidentity/ObjectIdentityImplTests.java
+++ b/acl/src/test/java/org/springframework/security/acls/domain/ObjectIdentityImplTests.java
@@ -1,8 +1,11 @@
-package org.springframework.security.acls.objectidentity;
+package org.springframework.security.acls.domain;
import static org.junit.Assert.*;
import org.junit.Test;
+import org.springframework.security.acls.domain.IdentityUnavailableException;
+import org.springframework.security.acls.domain.ObjectIdentityImpl;
+import org.springframework.security.acls.model.ObjectIdentity;
/**
* Tests for {@link ObjectIdentityImpl}.
@@ -12,7 +15,7 @@ import org.junit.Test;
public class ObjectIdentityImplTests {
private static final String DOMAIN_CLASS =
- "org.springframework.security.acls.objectidentity.ObjectIdentityImplTests$MockIdDomainObject";
+ "org.springframework.security.acls.domain.ObjectIdentityImplTests$MockIdDomainObject";
//~ Methods ========================================================================================================
@@ -120,7 +123,7 @@ public class ObjectIdentityImplTests {
assertFalse(obj.equals("DIFFERENT_OBJECT_TYPE"));
assertFalse(obj.equals(new ObjectIdentityImpl(DOMAIN_CLASS, Long.valueOf(2))));
assertFalse(obj.equals(new ObjectIdentityImpl(
- "org.springframework.security.acls.objectidentity.ObjectIdentityImplTests$MockOtherIdDomainObject",
+ "org.springframework.security.acls.domain.ObjectIdentityImplTests$MockOtherIdDomainObject",
Long.valueOf(1))));
assertEquals(new ObjectIdentityImpl(DOMAIN_CLASS,Long.valueOf(1)), obj);
assertEquals(obj, new ObjectIdentityImpl(mockObj));
diff --git a/acl/src/test/java/org/springframework/security/acls/objectidentity/ObjectIdentityRetrievalStrategyImplTests.java b/acl/src/test/java/org/springframework/security/acls/domain/ObjectIdentityRetrievalStrategyImplTests.java
similarity index 74%
rename from acl/src/test/java/org/springframework/security/acls/objectidentity/ObjectIdentityRetrievalStrategyImplTests.java
rename to acl/src/test/java/org/springframework/security/acls/domain/ObjectIdentityRetrievalStrategyImplTests.java
index 218d4fdc07..3744b54d35 100644
--- a/acl/src/test/java/org/springframework/security/acls/objectidentity/ObjectIdentityRetrievalStrategyImplTests.java
+++ b/acl/src/test/java/org/springframework/security/acls/domain/ObjectIdentityRetrievalStrategyImplTests.java
@@ -1,4 +1,9 @@
-package org.springframework.security.acls.objectidentity;
+package org.springframework.security.acls.domain;
+
+import org.springframework.security.acls.domain.ObjectIdentityImpl;
+import org.springframework.security.acls.domain.ObjectIdentityRetrievalStrategyImpl;
+import org.springframework.security.acls.model.ObjectIdentity;
+import org.springframework.security.acls.model.ObjectIdentityRetrievalStrategy;
import junit.framework.TestCase;
diff --git a/acl/src/test/java/org/springframework/security/acls/domain/PermissionTests.java b/acl/src/test/java/org/springframework/security/acls/domain/PermissionTests.java
index df482759df..5eb0edbfb6 100644
--- a/acl/src/test/java/org/springframework/security/acls/domain/PermissionTests.java
+++ b/acl/src/test/java/org/springframework/security/acls/domain/PermissionTests.java
@@ -17,7 +17,7 @@ package org.springframework.security.acls.domain;
import static org.junit.Assert.*;
import org.junit.Test;
-import org.springframework.security.acls.Permission;
+import org.springframework.security.acls.model.Permission;
/**
diff --git a/acl/src/test/java/org/springframework/security/acls/domain/SpecialPermission.java b/acl/src/test/java/org/springframework/security/acls/domain/SpecialPermission.java
index 7a741a6edc..55a89b3b5c 100644
--- a/acl/src/test/java/org/springframework/security/acls/domain/SpecialPermission.java
+++ b/acl/src/test/java/org/springframework/security/acls/domain/SpecialPermission.java
@@ -14,7 +14,7 @@
*/
package org.springframework.security.acls.domain;
-import org.springframework.security.acls.Permission;
+import org.springframework.security.acls.model.Permission;
/**
diff --git a/acl/src/test/java/org/springframework/security/acls/jdbc/BasicLookupStrategyTests.java b/acl/src/test/java/org/springframework/security/acls/jdbc/BasicLookupStrategyTests.java
index fdcf8ae3d9..1deff75be4 100644
--- a/acl/src/test/java/org/springframework/security/acls/jdbc/BasicLookupStrategyTests.java
+++ b/acl/src/test/java/org/springframework/security/acls/jdbc/BasicLookupStrategyTests.java
@@ -18,19 +18,19 @@ import org.springframework.core.io.ClassPathResource;
import org.springframework.core.io.Resource;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.jdbc.datasource.SingleConnectionDataSource;
-import org.springframework.security.acls.Acl;
-import org.springframework.security.acls.AuditableAccessControlEntry;
-import org.springframework.security.acls.MutableAcl;
-import org.springframework.security.acls.NotFoundException;
-import org.springframework.security.acls.Permission;
import org.springframework.security.acls.domain.AclAuthorizationStrategy;
import org.springframework.security.acls.domain.AclAuthorizationStrategyImpl;
import org.springframework.security.acls.domain.BasePermission;
import org.springframework.security.acls.domain.ConsoleAuditLogger;
-import org.springframework.security.acls.objectidentity.ObjectIdentity;
-import org.springframework.security.acls.objectidentity.ObjectIdentityImpl;
-import org.springframework.security.acls.sid.PrincipalSid;
-import org.springframework.security.acls.sid.Sid;
+import org.springframework.security.acls.domain.ObjectIdentityImpl;
+import org.springframework.security.acls.domain.PrincipalSid;
+import org.springframework.security.acls.model.Acl;
+import org.springframework.security.acls.model.AuditableAccessControlEntry;
+import org.springframework.security.acls.model.MutableAcl;
+import org.springframework.security.acls.model.NotFoundException;
+import org.springframework.security.acls.model.ObjectIdentity;
+import org.springframework.security.acls.model.Permission;
+import org.springframework.security.acls.model.Sid;
import org.springframework.security.core.GrantedAuthority;
import org.springframework.security.core.authority.GrantedAuthorityImpl;
import org.springframework.util.FileCopyUtils;
diff --git a/acl/src/test/java/org/springframework/security/acls/jdbc/EhCacheBasedAclCacheTests.java b/acl/src/test/java/org/springframework/security/acls/jdbc/EhCacheBasedAclCacheTests.java
index 4ce6b7d04a..d62e1c2a33 100644
--- a/acl/src/test/java/org/springframework/security/acls/jdbc/EhCacheBasedAclCacheTests.java
+++ b/acl/src/test/java/org/springframework/security/acls/jdbc/EhCacheBasedAclCacheTests.java
@@ -20,13 +20,13 @@ import org.junit.After;
import org.junit.AfterClass;
import org.junit.BeforeClass;
import org.junit.Test;
-import org.springframework.security.acls.MutableAcl;
import org.springframework.security.acls.domain.AclAuthorizationStrategy;
import org.springframework.security.acls.domain.AclAuthorizationStrategyImpl;
import org.springframework.security.acls.domain.AclImpl;
import org.springframework.security.acls.domain.ConsoleAuditLogger;
-import org.springframework.security.acls.objectidentity.ObjectIdentity;
-import org.springframework.security.acls.objectidentity.ObjectIdentityImpl;
+import org.springframework.security.acls.domain.ObjectIdentityImpl;
+import org.springframework.security.acls.model.MutableAcl;
+import org.springframework.security.acls.model.ObjectIdentity;
import org.springframework.security.authentication.TestingAuthenticationToken;
import org.springframework.security.core.Authentication;
import org.springframework.security.core.GrantedAuthority;
diff --git a/acl/src/test/java/org/springframework/security/acls/jdbc/JdbcMutableAclServiceTests.java b/acl/src/test/java/org/springframework/security/acls/jdbc/JdbcMutableAclServiceTests.java
index 30c8cb6ff1..04b09d3bb3 100644
--- a/acl/src/test/java/org/springframework/security/acls/jdbc/JdbcMutableAclServiceTests.java
+++ b/acl/src/test/java/org/springframework/security/acls/jdbc/JdbcMutableAclServiceTests.java
@@ -26,22 +26,22 @@ import org.junit.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.core.io.ClassPathResource;
import org.springframework.jdbc.core.JdbcTemplate;
-import org.springframework.security.acls.AccessControlEntry;
-import org.springframework.security.acls.Acl;
-import org.springframework.security.acls.AlreadyExistsException;
-import org.springframework.security.acls.ChildrenExistException;
-import org.springframework.security.acls.MutableAcl;
-import org.springframework.security.acls.NotFoundException;
-import org.springframework.security.acls.Permission;
import org.springframework.security.acls.TargetObject;
import org.springframework.security.acls.domain.AclImpl;
import org.springframework.security.acls.domain.BasePermission;
import org.springframework.security.acls.domain.CumulativePermission;
-import org.springframework.security.acls.objectidentity.ObjectIdentity;
-import org.springframework.security.acls.objectidentity.ObjectIdentityImpl;
-import org.springframework.security.acls.sid.GrantedAuthoritySid;
-import org.springframework.security.acls.sid.PrincipalSid;
-import org.springframework.security.acls.sid.Sid;
+import org.springframework.security.acls.domain.GrantedAuthoritySid;
+import org.springframework.security.acls.domain.ObjectIdentityImpl;
+import org.springframework.security.acls.domain.PrincipalSid;
+import org.springframework.security.acls.model.AccessControlEntry;
+import org.springframework.security.acls.model.Acl;
+import org.springframework.security.acls.model.AlreadyExistsException;
+import org.springframework.security.acls.model.ChildrenExistException;
+import org.springframework.security.acls.model.MutableAcl;
+import org.springframework.security.acls.model.NotFoundException;
+import org.springframework.security.acls.model.ObjectIdentity;
+import org.springframework.security.acls.model.Permission;
+import org.springframework.security.acls.model.Sid;
import org.springframework.security.authentication.TestingAuthenticationToken;
import org.springframework.security.core.Authentication;
import org.springframework.security.core.context.SecurityContextHolder;
diff --git a/acl/src/test/java/org/springframework/security/acls/sid/SidRetrievalStrategyTests.java b/acl/src/test/java/org/springframework/security/acls/sid/SidRetrievalStrategyTests.java
index 7643ff5f6a..5b341ce27b 100644
--- a/acl/src/test/java/org/springframework/security/acls/sid/SidRetrievalStrategyTests.java
+++ b/acl/src/test/java/org/springframework/security/acls/sid/SidRetrievalStrategyTests.java
@@ -5,6 +5,11 @@ import java.util.List;
import junit.framework.Assert;
import junit.framework.TestCase;
+import org.springframework.security.acls.domain.GrantedAuthoritySid;
+import org.springframework.security.acls.domain.PrincipalSid;
+import org.springframework.security.acls.domain.SidRetrievalStrategyImpl;
+import org.springframework.security.acls.model.Sid;
+import org.springframework.security.acls.model.SidRetrievalStrategy;
import org.springframework.security.authentication.TestingAuthenticationToken;
import org.springframework.security.core.Authentication;
diff --git a/acl/src/test/java/org/springframework/security/acls/sid/SidTests.java b/acl/src/test/java/org/springframework/security/acls/sid/SidTests.java
index 6df59e80db..d7e402c878 100644
--- a/acl/src/test/java/org/springframework/security/acls/sid/SidTests.java
+++ b/acl/src/test/java/org/springframework/security/acls/sid/SidTests.java
@@ -3,9 +3,9 @@ package org.springframework.security.acls.sid;
import junit.framework.Assert;
import junit.framework.TestCase;
-import org.springframework.security.acls.sid.GrantedAuthoritySid;
-import org.springframework.security.acls.sid.PrincipalSid;
-import org.springframework.security.acls.sid.Sid;
+import org.springframework.security.acls.domain.GrantedAuthoritySid;
+import org.springframework.security.acls.domain.PrincipalSid;
+import org.springframework.security.acls.model.Sid;
import org.springframework.security.authentication.TestingAuthenticationToken;
import org.springframework.security.core.Authentication;
import org.springframework.security.core.GrantedAuthority;