diff --git a/acl/pom.xml b/acl/pom.xml
new file mode 100644
index 0000000000..495630fcf4
--- /dev/null
+++ b/acl/pom.xml
@@ -0,0 +1,50 @@
+
+
+
+ spring-security-parent
+ org.springframework.security
+ 2.0-SNAPSHOT
+
+ 4.0.0
+ org.springframework.security
+ spring-security-acl
+ Spring Security - ACL Module
+ 2.0-SNAPSHOT
+
+
+
+ org.springframework.security
+ spring-security-core
+ ${project.version}
+
+
+ org.springframework.security
+ spring-security-core
+ ${project.version}
+ tests
+ test
+
+
+ org.springframework
+ spring-jdbc
+
+
+ org.springframework
+ spring-mock
+ test
+
+
+ net.sf.ehcache
+ ehcache
+ 1.2.4
+ true
+
+
+ hsqldb
+ hsqldb
+ 1.8.0.4
+ test
+
+
+
\ No newline at end of file
diff --git a/core/src/main/java/org/springframework/security/acls/AccessControlEntry.java b/acl/src/main/java/org/springframework/security/acls/AccessControlEntry.java
similarity index 100%
rename from core/src/main/java/org/springframework/security/acls/AccessControlEntry.java
rename to acl/src/main/java/org/springframework/security/acls/AccessControlEntry.java
diff --git a/core/src/main/java/org/springframework/security/acls/Acl.java b/acl/src/main/java/org/springframework/security/acls/Acl.java
similarity index 100%
rename from core/src/main/java/org/springframework/security/acls/Acl.java
rename to acl/src/main/java/org/springframework/security/acls/Acl.java
diff --git a/core/src/main/java/org/springframework/security/acls/AclFormattingUtils.java b/acl/src/main/java/org/springframework/security/acls/AclFormattingUtils.java
similarity index 100%
rename from core/src/main/java/org/springframework/security/acls/AclFormattingUtils.java
rename to acl/src/main/java/org/springframework/security/acls/AclFormattingUtils.java
diff --git a/core/src/main/java/org/springframework/security/acls/AclService.java b/acl/src/main/java/org/springframework/security/acls/AclService.java
similarity index 100%
rename from core/src/main/java/org/springframework/security/acls/AclService.java
rename to acl/src/main/java/org/springframework/security/acls/AclService.java
diff --git a/core/src/main/java/org/springframework/security/acls/AlreadyExistsException.java b/acl/src/main/java/org/springframework/security/acls/AlreadyExistsException.java
similarity index 100%
rename from core/src/main/java/org/springframework/security/acls/AlreadyExistsException.java
rename to acl/src/main/java/org/springframework/security/acls/AlreadyExistsException.java
diff --git a/core/src/main/java/org/springframework/security/acls/AuditableAccessControlEntry.java b/acl/src/main/java/org/springframework/security/acls/AuditableAccessControlEntry.java
similarity index 100%
rename from core/src/main/java/org/springframework/security/acls/AuditableAccessControlEntry.java
rename to acl/src/main/java/org/springframework/security/acls/AuditableAccessControlEntry.java
diff --git a/core/src/main/java/org/springframework/security/acls/AuditableAcl.java b/acl/src/main/java/org/springframework/security/acls/AuditableAcl.java
similarity index 100%
rename from core/src/main/java/org/springframework/security/acls/AuditableAcl.java
rename to acl/src/main/java/org/springframework/security/acls/AuditableAcl.java
diff --git a/core/src/main/java/org/springframework/security/acls/ChildrenExistException.java b/acl/src/main/java/org/springframework/security/acls/ChildrenExistException.java
similarity index 100%
rename from core/src/main/java/org/springframework/security/acls/ChildrenExistException.java
rename to acl/src/main/java/org/springframework/security/acls/ChildrenExistException.java
diff --git a/core/src/main/java/org/springframework/security/acls/IdentityUnavailableException.java b/acl/src/main/java/org/springframework/security/acls/IdentityUnavailableException.java
similarity index 100%
rename from core/src/main/java/org/springframework/security/acls/IdentityUnavailableException.java
rename to acl/src/main/java/org/springframework/security/acls/IdentityUnavailableException.java
diff --git a/core/src/main/java/org/springframework/security/acls/MutableAcl.java b/acl/src/main/java/org/springframework/security/acls/MutableAcl.java
similarity index 100%
rename from core/src/main/java/org/springframework/security/acls/MutableAcl.java
rename to acl/src/main/java/org/springframework/security/acls/MutableAcl.java
diff --git a/core/src/main/java/org/springframework/security/acls/MutableAclService.java b/acl/src/main/java/org/springframework/security/acls/MutableAclService.java
similarity index 100%
rename from core/src/main/java/org/springframework/security/acls/MutableAclService.java
rename to acl/src/main/java/org/springframework/security/acls/MutableAclService.java
diff --git a/core/src/main/java/org/springframework/security/acls/NotFoundException.java b/acl/src/main/java/org/springframework/security/acls/NotFoundException.java
similarity index 100%
rename from core/src/main/java/org/springframework/security/acls/NotFoundException.java
rename to acl/src/main/java/org/springframework/security/acls/NotFoundException.java
diff --git a/core/src/main/java/org/springframework/security/acls/OwnershipAcl.java b/acl/src/main/java/org/springframework/security/acls/OwnershipAcl.java
similarity index 100%
rename from core/src/main/java/org/springframework/security/acls/OwnershipAcl.java
rename to acl/src/main/java/org/springframework/security/acls/OwnershipAcl.java
diff --git a/core/src/main/java/org/springframework/security/acls/Permission.java b/acl/src/main/java/org/springframework/security/acls/Permission.java
similarity index 100%
rename from core/src/main/java/org/springframework/security/acls/Permission.java
rename to acl/src/main/java/org/springframework/security/acls/Permission.java
diff --git a/core/src/main/java/org/springframework/security/acls/UnloadedSidException.java b/acl/src/main/java/org/springframework/security/acls/UnloadedSidException.java
similarity index 100%
rename from core/src/main/java/org/springframework/security/acls/UnloadedSidException.java
rename to acl/src/main/java/org/springframework/security/acls/UnloadedSidException.java
diff --git a/core/src/main/java/org/springframework/security/acls/domain/AccessControlEntryImpl.java b/acl/src/main/java/org/springframework/security/acls/domain/AccessControlEntryImpl.java
similarity index 100%
rename from core/src/main/java/org/springframework/security/acls/domain/AccessControlEntryImpl.java
rename to acl/src/main/java/org/springframework/security/acls/domain/AccessControlEntryImpl.java
diff --git a/core/src/main/java/org/springframework/security/acls/domain/AclAuthorizationStrategy.java b/acl/src/main/java/org/springframework/security/acls/domain/AclAuthorizationStrategy.java
similarity index 100%
rename from core/src/main/java/org/springframework/security/acls/domain/AclAuthorizationStrategy.java
rename to acl/src/main/java/org/springframework/security/acls/domain/AclAuthorizationStrategy.java
diff --git a/core/src/main/java/org/springframework/security/acls/domain/AclAuthorizationStrategyImpl.java b/acl/src/main/java/org/springframework/security/acls/domain/AclAuthorizationStrategyImpl.java
similarity index 100%
rename from core/src/main/java/org/springframework/security/acls/domain/AclAuthorizationStrategyImpl.java
rename to acl/src/main/java/org/springframework/security/acls/domain/AclAuthorizationStrategyImpl.java
diff --git a/core/src/main/java/org/springframework/security/acls/domain/AclImpl.java b/acl/src/main/java/org/springframework/security/acls/domain/AclImpl.java
similarity index 100%
rename from core/src/main/java/org/springframework/security/acls/domain/AclImpl.java
rename to acl/src/main/java/org/springframework/security/acls/domain/AclImpl.java
diff --git a/core/src/main/java/org/springframework/security/acls/domain/AuditLogger.java b/acl/src/main/java/org/springframework/security/acls/domain/AuditLogger.java
similarity index 100%
rename from core/src/main/java/org/springframework/security/acls/domain/AuditLogger.java
rename to acl/src/main/java/org/springframework/security/acls/domain/AuditLogger.java
diff --git a/core/src/main/java/org/springframework/security/acls/domain/BasePermission.java b/acl/src/main/java/org/springframework/security/acls/domain/BasePermission.java
similarity index 100%
rename from core/src/main/java/org/springframework/security/acls/domain/BasePermission.java
rename to acl/src/main/java/org/springframework/security/acls/domain/BasePermission.java
diff --git a/core/src/main/java/org/springframework/security/acls/domain/ConsoleAuditLogger.java b/acl/src/main/java/org/springframework/security/acls/domain/ConsoleAuditLogger.java
similarity index 100%
rename from core/src/main/java/org/springframework/security/acls/domain/ConsoleAuditLogger.java
rename to acl/src/main/java/org/springframework/security/acls/domain/ConsoleAuditLogger.java
diff --git a/core/src/main/java/org/springframework/security/acls/domain/CumulativePermission.java b/acl/src/main/java/org/springframework/security/acls/domain/CumulativePermission.java
similarity index 100%
rename from core/src/main/java/org/springframework/security/acls/domain/CumulativePermission.java
rename to acl/src/main/java/org/springframework/security/acls/domain/CumulativePermission.java
diff --git a/core/src/main/java/org/springframework/security/acls/domain/package.html b/acl/src/main/java/org/springframework/security/acls/domain/package.html
similarity index 100%
rename from core/src/main/java/org/springframework/security/acls/domain/package.html
rename to acl/src/main/java/org/springframework/security/acls/domain/package.html
diff --git a/core/src/main/java/org/springframework/security/acls/jdbc/AclCache.java b/acl/src/main/java/org/springframework/security/acls/jdbc/AclCache.java
similarity index 100%
rename from core/src/main/java/org/springframework/security/acls/jdbc/AclCache.java
rename to acl/src/main/java/org/springframework/security/acls/jdbc/AclCache.java
diff --git a/core/src/main/java/org/springframework/security/acls/jdbc/BasicLookupStrategy.java b/acl/src/main/java/org/springframework/security/acls/jdbc/BasicLookupStrategy.java
similarity index 100%
rename from core/src/main/java/org/springframework/security/acls/jdbc/BasicLookupStrategy.java
rename to acl/src/main/java/org/springframework/security/acls/jdbc/BasicLookupStrategy.java
diff --git a/core/src/main/java/org/springframework/security/acls/jdbc/EhCacheBasedAclCache.java b/acl/src/main/java/org/springframework/security/acls/jdbc/EhCacheBasedAclCache.java
similarity index 100%
rename from core/src/main/java/org/springframework/security/acls/jdbc/EhCacheBasedAclCache.java
rename to acl/src/main/java/org/springframework/security/acls/jdbc/EhCacheBasedAclCache.java
diff --git a/core/src/main/java/org/springframework/security/acls/jdbc/JdbcAclService.java b/acl/src/main/java/org/springframework/security/acls/jdbc/JdbcAclService.java
similarity index 100%
rename from core/src/main/java/org/springframework/security/acls/jdbc/JdbcAclService.java
rename to acl/src/main/java/org/springframework/security/acls/jdbc/JdbcAclService.java
diff --git a/core/src/main/java/org/springframework/security/acls/jdbc/JdbcMutableAclService.java b/acl/src/main/java/org/springframework/security/acls/jdbc/JdbcMutableAclService.java
similarity index 100%
rename from core/src/main/java/org/springframework/security/acls/jdbc/JdbcMutableAclService.java
rename to acl/src/main/java/org/springframework/security/acls/jdbc/JdbcMutableAclService.java
diff --git a/core/src/main/java/org/springframework/security/acls/jdbc/LookupStrategy.java b/acl/src/main/java/org/springframework/security/acls/jdbc/LookupStrategy.java
similarity index 100%
rename from core/src/main/java/org/springframework/security/acls/jdbc/LookupStrategy.java
rename to acl/src/main/java/org/springframework/security/acls/jdbc/LookupStrategy.java
diff --git a/core/src/main/java/org/springframework/security/acls/jdbc/package.html b/acl/src/main/java/org/springframework/security/acls/jdbc/package.html
similarity index 100%
rename from core/src/main/java/org/springframework/security/acls/jdbc/package.html
rename to acl/src/main/java/org/springframework/security/acls/jdbc/package.html
diff --git a/core/src/main/java/org/springframework/security/acls/objectidentity/ObjectIdentity.java b/acl/src/main/java/org/springframework/security/acls/objectidentity/ObjectIdentity.java
similarity index 100%
rename from core/src/main/java/org/springframework/security/acls/objectidentity/ObjectIdentity.java
rename to acl/src/main/java/org/springframework/security/acls/objectidentity/ObjectIdentity.java
diff --git a/core/src/main/java/org/springframework/security/acls/objectidentity/ObjectIdentityImpl.java b/acl/src/main/java/org/springframework/security/acls/objectidentity/ObjectIdentityImpl.java
similarity index 100%
rename from core/src/main/java/org/springframework/security/acls/objectidentity/ObjectIdentityImpl.java
rename to acl/src/main/java/org/springframework/security/acls/objectidentity/ObjectIdentityImpl.java
diff --git a/core/src/main/java/org/springframework/security/acls/objectidentity/ObjectIdentityRetrievalStrategy.java b/acl/src/main/java/org/springframework/security/acls/objectidentity/ObjectIdentityRetrievalStrategy.java
similarity index 100%
rename from core/src/main/java/org/springframework/security/acls/objectidentity/ObjectIdentityRetrievalStrategy.java
rename to acl/src/main/java/org/springframework/security/acls/objectidentity/ObjectIdentityRetrievalStrategy.java
diff --git a/core/src/main/java/org/springframework/security/acls/objectidentity/ObjectIdentityRetrievalStrategyImpl.java b/acl/src/main/java/org/springframework/security/acls/objectidentity/ObjectIdentityRetrievalStrategyImpl.java
similarity index 100%
rename from core/src/main/java/org/springframework/security/acls/objectidentity/ObjectIdentityRetrievalStrategyImpl.java
rename to acl/src/main/java/org/springframework/security/acls/objectidentity/ObjectIdentityRetrievalStrategyImpl.java
diff --git a/core/src/main/java/org/springframework/security/acls/objectidentity/package.html b/acl/src/main/java/org/springframework/security/acls/objectidentity/package.html
similarity index 100%
rename from core/src/main/java/org/springframework/security/acls/objectidentity/package.html
rename to acl/src/main/java/org/springframework/security/acls/objectidentity/package.html
diff --git a/core/src/main/java/org/springframework/security/acls/package.html b/acl/src/main/java/org/springframework/security/acls/package.html
similarity index 100%
rename from core/src/main/java/org/springframework/security/acls/package.html
rename to acl/src/main/java/org/springframework/security/acls/package.html
diff --git a/core/src/main/java/org/springframework/security/acls/sid/GrantedAuthoritySid.java b/acl/src/main/java/org/springframework/security/acls/sid/GrantedAuthoritySid.java
similarity index 100%
rename from core/src/main/java/org/springframework/security/acls/sid/GrantedAuthoritySid.java
rename to acl/src/main/java/org/springframework/security/acls/sid/GrantedAuthoritySid.java
diff --git a/core/src/main/java/org/springframework/security/acls/sid/PrincipalSid.java b/acl/src/main/java/org/springframework/security/acls/sid/PrincipalSid.java
similarity index 100%
rename from core/src/main/java/org/springframework/security/acls/sid/PrincipalSid.java
rename to acl/src/main/java/org/springframework/security/acls/sid/PrincipalSid.java
diff --git a/core/src/main/java/org/springframework/security/acls/sid/Sid.java b/acl/src/main/java/org/springframework/security/acls/sid/Sid.java
similarity index 100%
rename from core/src/main/java/org/springframework/security/acls/sid/Sid.java
rename to acl/src/main/java/org/springframework/security/acls/sid/Sid.java
diff --git a/core/src/main/java/org/springframework/security/acls/sid/SidRetrievalStrategy.java b/acl/src/main/java/org/springframework/security/acls/sid/SidRetrievalStrategy.java
similarity index 100%
rename from core/src/main/java/org/springframework/security/acls/sid/SidRetrievalStrategy.java
rename to acl/src/main/java/org/springframework/security/acls/sid/SidRetrievalStrategy.java
diff --git a/core/src/main/java/org/springframework/security/acls/sid/SidRetrievalStrategyImpl.java b/acl/src/main/java/org/springframework/security/acls/sid/SidRetrievalStrategyImpl.java
similarity index 100%
rename from core/src/main/java/org/springframework/security/acls/sid/SidRetrievalStrategyImpl.java
rename to acl/src/main/java/org/springframework/security/acls/sid/SidRetrievalStrategyImpl.java
diff --git a/core/src/main/java/org/springframework/security/acls/sid/package.html b/acl/src/main/java/org/springframework/security/acls/sid/package.html
similarity index 100%
rename from core/src/main/java/org/springframework/security/acls/sid/package.html
rename to acl/src/main/java/org/springframework/security/acls/sid/package.html
diff --git a/core/src/main/java/org/springframework/security/afterinvocation/AbstractAclProvider.java b/acl/src/main/java/org/springframework/security/afterinvocation/AbstractAclProvider.java
similarity index 100%
rename from core/src/main/java/org/springframework/security/afterinvocation/AbstractAclProvider.java
rename to acl/src/main/java/org/springframework/security/afterinvocation/AbstractAclProvider.java
diff --git a/core/src/main/java/org/springframework/security/afterinvocation/AclEntryAfterInvocationCollectionFilteringProvider.java b/acl/src/main/java/org/springframework/security/afterinvocation/AclEntryAfterInvocationCollectionFilteringProvider.java
similarity index 100%
rename from core/src/main/java/org/springframework/security/afterinvocation/AclEntryAfterInvocationCollectionFilteringProvider.java
rename to acl/src/main/java/org/springframework/security/afterinvocation/AclEntryAfterInvocationCollectionFilteringProvider.java
diff --git a/core/src/main/java/org/springframework/security/afterinvocation/AclEntryAfterInvocationProvider.java b/acl/src/main/java/org/springframework/security/afterinvocation/AclEntryAfterInvocationProvider.java
similarity index 100%
rename from core/src/main/java/org/springframework/security/afterinvocation/AclEntryAfterInvocationProvider.java
rename to acl/src/main/java/org/springframework/security/afterinvocation/AclEntryAfterInvocationProvider.java
diff --git a/core/src/main/java/org/springframework/security/vote/AclEntryVoter.java b/acl/src/main/java/org/springframework/security/vote/AclEntryVoter.java
similarity index 100%
rename from core/src/main/java/org/springframework/security/vote/AclEntryVoter.java
rename to acl/src/main/java/org/springframework/security/vote/AclEntryVoter.java
diff --git a/core/src/test/resources/org/springframework/security/acls/jdbc/applicationContext-test.xml b/acl/src/main/resources/org/springframework/security/acls/jdbc/applicationContext-test.xml
similarity index 93%
rename from core/src/test/resources/org/springframework/security/acls/jdbc/applicationContext-test.xml
rename to acl/src/main/resources/org/springframework/security/acls/jdbc/applicationContext-test.xml
index d67d873013..eaf1b52ae2 100644
--- a/core/src/test/resources/org/springframework/security/acls/jdbc/applicationContext-test.xml
+++ b/acl/src/main/resources/org/springframework/security/acls/jdbc/applicationContext-test.xml
@@ -26,9 +26,7 @@
-
- aclCache
-
+
diff --git a/core/src/test/resources/org/springframework/security/acls/jdbc/select.sql b/acl/src/main/resources/org/springframework/security/acls/jdbc/select.sql
similarity index 100%
rename from core/src/test/resources/org/springframework/security/acls/jdbc/select.sql
rename to acl/src/main/resources/org/springframework/security/acls/jdbc/select.sql
diff --git a/core/src/test/resources/org/springframework/security/acls/jdbc/testData.sql b/acl/src/main/resources/org/springframework/security/acls/jdbc/testData.sql
similarity index 100%
rename from core/src/test/resources/org/springframework/security/acls/jdbc/testData.sql
rename to acl/src/main/resources/org/springframework/security/acls/jdbc/testData.sql
diff --git a/core/src/test/java/org/springframework/security/acls/AclFormattingUtilsTests.java b/acl/src/test/java/org/springframework/security/acls/AclFormattingUtilsTests.java
similarity index 100%
rename from core/src/test/java/org/springframework/security/acls/AclFormattingUtilsTests.java
rename to acl/src/test/java/org/springframework/security/acls/AclFormattingUtilsTests.java
diff --git a/core/src/test/java/org/springframework/security/acls/domain/AccessControlEntryTests.java b/acl/src/test/java/org/springframework/security/acls/domain/AccessControlEntryTests.java
similarity index 100%
rename from core/src/test/java/org/springframework/security/acls/domain/AccessControlEntryTests.java
rename to acl/src/test/java/org/springframework/security/acls/domain/AccessControlEntryTests.java
diff --git a/core/src/test/java/org/springframework/security/acls/domain/AclImplTests.java b/acl/src/test/java/org/springframework/security/acls/domain/AclImplTests.java
similarity index 100%
rename from core/src/test/java/org/springframework/security/acls/domain/AclImplTests.java
rename to acl/src/test/java/org/springframework/security/acls/domain/AclImplTests.java
diff --git a/core/src/test/java/org/springframework/security/acls/domain/AclImplementationSecurityCheckTests.java b/acl/src/test/java/org/springframework/security/acls/domain/AclImplementationSecurityCheckTests.java
similarity index 100%
rename from core/src/test/java/org/springframework/security/acls/domain/AclImplementationSecurityCheckTests.java
rename to acl/src/test/java/org/springframework/security/acls/domain/AclImplementationSecurityCheckTests.java
diff --git a/core/src/test/java/org/springframework/security/acls/domain/AuditLoggerTests.java b/acl/src/test/java/org/springframework/security/acls/domain/AuditLoggerTests.java
similarity index 100%
rename from core/src/test/java/org/springframework/security/acls/domain/AuditLoggerTests.java
rename to acl/src/test/java/org/springframework/security/acls/domain/AuditLoggerTests.java
diff --git a/core/src/test/java/org/springframework/security/acls/domain/PermissionTests.java b/acl/src/test/java/org/springframework/security/acls/domain/PermissionTests.java
similarity index 95%
rename from core/src/test/java/org/springframework/security/acls/domain/PermissionTests.java
rename to acl/src/test/java/org/springframework/security/acls/domain/PermissionTests.java
index 130546bb41..5c56d955fc 100644
--- a/core/src/test/java/org/springframework/security/acls/domain/PermissionTests.java
+++ b/acl/src/test/java/org/springframework/security/acls/domain/PermissionTests.java
@@ -14,13 +14,9 @@
*/
package org.springframework.security.acls.domain;
-import org.apache.commons.lang.ArrayUtils;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertFalse;
-import static org.junit.Assert.assertTrue;
-import static org.junit.Assert.fail;
+import static org.junit.Assert.*;
import org.junit.Test;
import org.springframework.security.acls.Permission;
@@ -90,12 +86,4 @@ public class PermissionTests {
new CumulativePermission().set(BasePermission.ADMINISTRATION).set(BasePermission.READ)
.clear(BasePermission.ADMINISTRATION).clear(BasePermission.READ).toString());
}
-
-
-
-
-
-
-
-
}
diff --git a/core/src/test/java/org/springframework/security/acls/jdbc/BasicLookupStrategyTests.java b/acl/src/test/java/org/springframework/security/acls/jdbc/BasicLookupStrategyTests.java
similarity index 100%
rename from core/src/test/java/org/springframework/security/acls/jdbc/BasicLookupStrategyTests.java
rename to acl/src/test/java/org/springframework/security/acls/jdbc/BasicLookupStrategyTests.java
diff --git a/core/src/test/java/org/springframework/security/acls/jdbc/DatabaseSeeder.java b/acl/src/test/java/org/springframework/security/acls/jdbc/DatabaseSeeder.java
similarity index 97%
rename from core/src/test/java/org/springframework/security/acls/jdbc/DatabaseSeeder.java
rename to acl/src/test/java/org/springframework/security/acls/jdbc/DatabaseSeeder.java
index 3384a41804..c70e56096a 100644
--- a/core/src/test/java/org/springframework/security/acls/jdbc/DatabaseSeeder.java
+++ b/acl/src/test/java/org/springframework/security/acls/jdbc/DatabaseSeeder.java
@@ -35,8 +35,7 @@ import javax.sql.DataSource;
public class DatabaseSeeder {
//~ Constructors ===================================================================================================
- public DatabaseSeeder(DataSource dataSource, Resource resource)
- throws IOException {
+ public DatabaseSeeder(DataSource dataSource, Resource resource) throws IOException {
Assert.notNull(dataSource, "dataSource required");
Assert.notNull(resource, "resource required");
diff --git a/core/src/test/java/org/springframework/security/acls/jdbc/EhCacheBasedAclCacheTests.java b/acl/src/test/java/org/springframework/security/acls/jdbc/EhCacheBasedAclCacheTests.java
similarity index 100%
rename from core/src/test/java/org/springframework/security/acls/jdbc/EhCacheBasedAclCacheTests.java
rename to acl/src/test/java/org/springframework/security/acls/jdbc/EhCacheBasedAclCacheTests.java
diff --git a/core/src/test/java/org/springframework/security/acls/jdbc/JdbcAclServiceTests.java b/acl/src/test/java/org/springframework/security/acls/jdbc/JdbcAclServiceTests.java
similarity index 100%
rename from core/src/test/java/org/springframework/security/acls/jdbc/JdbcAclServiceTests.java
rename to acl/src/test/java/org/springframework/security/acls/jdbc/JdbcAclServiceTests.java
diff --git a/core/src/test/java/org/springframework/security/acls/objectidentity/ObjectIdentityRetrievalStrategyImplTests.java b/acl/src/test/java/org/springframework/security/acls/objectidentity/ObjectIdentityRetrievalStrategyImplTests.java
similarity index 100%
rename from core/src/test/java/org/springframework/security/acls/objectidentity/ObjectIdentityRetrievalStrategyImplTests.java
rename to acl/src/test/java/org/springframework/security/acls/objectidentity/ObjectIdentityRetrievalStrategyImplTests.java
diff --git a/core/src/test/java/org/springframework/security/acls/objectidentity/ObjectIdentityTests.java b/acl/src/test/java/org/springframework/security/acls/objectidentity/ObjectIdentityTests.java
similarity index 100%
rename from core/src/test/java/org/springframework/security/acls/objectidentity/ObjectIdentityTests.java
rename to acl/src/test/java/org/springframework/security/acls/objectidentity/ObjectIdentityTests.java
diff --git a/core/src/test/java/org/springframework/security/acls/sid/SidRetrievalStrategyTests.java b/acl/src/test/java/org/springframework/security/acls/sid/SidRetrievalStrategyTests.java
similarity index 100%
rename from core/src/test/java/org/springframework/security/acls/sid/SidRetrievalStrategyTests.java
rename to acl/src/test/java/org/springframework/security/acls/sid/SidRetrievalStrategyTests.java
diff --git a/core/src/test/java/org/springframework/security/acls/sid/SidTests.java b/acl/src/test/java/org/springframework/security/acls/sid/SidTests.java
similarity index 100%
rename from core/src/test/java/org/springframework/security/acls/sid/SidTests.java
rename to acl/src/test/java/org/springframework/security/acls/sid/SidTests.java
diff --git a/adapters/cas/pom.xml b/adapters/cas/pom.xml
index 99d576de8d..c908fe04e2 100644
--- a/adapters/cas/pom.xml
+++ b/adapters/cas/pom.xml
@@ -5,7 +5,7 @@
spring-security-adapters
2.0-SNAPSHOT
- spring-security-cas
+ spring-security-cas-adapter
Spring Security - CAS adapter
diff --git a/captcha/pom.xml b/captcha/pom.xml
new file mode 100644
index 0000000000..ec48cfd4ee
--- /dev/null
+++ b/captcha/pom.xml
@@ -0,0 +1,34 @@
+
+
+
+ spring-security-parent
+ org.springframework.security
+ 2.0-SNAPSHOT
+
+ 4.0.0
+ org.springframework.security
+ spring-security-captcha
+ Spring Security - Catptcha Module
+ 2.0-SNAPSHOT
+
+
+
+ org.springframework.security
+ spring-security-core
+ ${project.version}
+
+
+ org.springframework.security
+ spring-security-core
+ ${project.version}
+ tests
+ test
+
+
+ org.springframework
+ spring-mock
+ test
+
+
+
\ No newline at end of file
diff --git a/core/src/main/java/org/springframework/security/captcha/AlwaysTestAfterMaxRequestsCaptchaChannelProcessor.java b/captcha/src/main/java/org/springframework/security/captcha/AlwaysTestAfterMaxRequestsCaptchaChannelProcessor.java
similarity index 100%
rename from core/src/main/java/org/springframework/security/captcha/AlwaysTestAfterMaxRequestsCaptchaChannelProcessor.java
rename to captcha/src/main/java/org/springframework/security/captcha/AlwaysTestAfterMaxRequestsCaptchaChannelProcessor.java
diff --git a/core/src/main/java/org/springframework/security/captcha/AlwaysTestAfterTimeInMillisCaptchaChannelProcessor.java b/captcha/src/main/java/org/springframework/security/captcha/AlwaysTestAfterTimeInMillisCaptchaChannelProcessor.java
similarity index 100%
rename from core/src/main/java/org/springframework/security/captcha/AlwaysTestAfterTimeInMillisCaptchaChannelProcessor.java
rename to captcha/src/main/java/org/springframework/security/captcha/AlwaysTestAfterTimeInMillisCaptchaChannelProcessor.java
diff --git a/core/src/main/java/org/springframework/security/captcha/AlwaysTestBelowAverageTimeInMillisBetweenRequestsChannelProcessor.java b/captcha/src/main/java/org/springframework/security/captcha/AlwaysTestBelowAverageTimeInMillisBetweenRequestsChannelProcessor.java
similarity index 100%
rename from core/src/main/java/org/springframework/security/captcha/AlwaysTestBelowAverageTimeInMillisBetweenRequestsChannelProcessor.java
rename to captcha/src/main/java/org/springframework/security/captcha/AlwaysTestBelowAverageTimeInMillisBetweenRequestsChannelProcessor.java
diff --git a/core/src/main/java/org/springframework/security/captcha/CaptchaChannelProcessorTemplate.java b/captcha/src/main/java/org/springframework/security/captcha/CaptchaChannelProcessorTemplate.java
similarity index 100%
rename from core/src/main/java/org/springframework/security/captcha/CaptchaChannelProcessorTemplate.java
rename to captcha/src/main/java/org/springframework/security/captcha/CaptchaChannelProcessorTemplate.java
diff --git a/core/src/main/java/org/springframework/security/captcha/CaptchaEntryPoint.java b/captcha/src/main/java/org/springframework/security/captcha/CaptchaEntryPoint.java
similarity index 100%
rename from core/src/main/java/org/springframework/security/captcha/CaptchaEntryPoint.java
rename to captcha/src/main/java/org/springframework/security/captcha/CaptchaEntryPoint.java
diff --git a/core/src/main/java/org/springframework/security/captcha/CaptchaSecurityContext.java b/captcha/src/main/java/org/springframework/security/captcha/CaptchaSecurityContext.java
similarity index 100%
rename from core/src/main/java/org/springframework/security/captcha/CaptchaSecurityContext.java
rename to captcha/src/main/java/org/springframework/security/captcha/CaptchaSecurityContext.java
diff --git a/core/src/main/java/org/springframework/security/captcha/CaptchaSecurityContextImpl.java b/captcha/src/main/java/org/springframework/security/captcha/CaptchaSecurityContextImpl.java
similarity index 100%
rename from core/src/main/java/org/springframework/security/captcha/CaptchaSecurityContextImpl.java
rename to captcha/src/main/java/org/springframework/security/captcha/CaptchaSecurityContextImpl.java
diff --git a/core/src/main/java/org/springframework/security/captcha/CaptchaServiceProxy.java b/captcha/src/main/java/org/springframework/security/captcha/CaptchaServiceProxy.java
similarity index 100%
rename from core/src/main/java/org/springframework/security/captcha/CaptchaServiceProxy.java
rename to captcha/src/main/java/org/springframework/security/captcha/CaptchaServiceProxy.java
diff --git a/core/src/main/java/org/springframework/security/captcha/CaptchaValidationProcessingFilter.java b/captcha/src/main/java/org/springframework/security/captcha/CaptchaValidationProcessingFilter.java
similarity index 100%
rename from core/src/main/java/org/springframework/security/captcha/CaptchaValidationProcessingFilter.java
rename to captcha/src/main/java/org/springframework/security/captcha/CaptchaValidationProcessingFilter.java
diff --git a/core/src/main/java/org/springframework/security/captcha/TestOnceAfterMaxRequestsCaptchaChannelProcessor.java b/captcha/src/main/java/org/springframework/security/captcha/TestOnceAfterMaxRequestsCaptchaChannelProcessor.java
similarity index 100%
rename from core/src/main/java/org/springframework/security/captcha/TestOnceAfterMaxRequestsCaptchaChannelProcessor.java
rename to captcha/src/main/java/org/springframework/security/captcha/TestOnceAfterMaxRequestsCaptchaChannelProcessor.java
diff --git a/core/src/main/java/org/springframework/security/captcha/package.html b/captcha/src/main/java/org/springframework/security/captcha/package.html
similarity index 100%
rename from core/src/main/java/org/springframework/security/captcha/package.html
rename to captcha/src/main/java/org/springframework/security/captcha/package.html
diff --git a/core/src/test/java/org/springframework/security/captcha/AlwaysTestAfterMaxRequestsCaptchaChannelProcessorTests.java b/captcha/src/test/java/org/springframework/security/captcha/AlwaysTestAfterMaxRequestsCaptchaChannelProcessorTests.java
similarity index 100%
rename from core/src/test/java/org/springframework/security/captcha/AlwaysTestAfterMaxRequestsCaptchaChannelProcessorTests.java
rename to captcha/src/test/java/org/springframework/security/captcha/AlwaysTestAfterMaxRequestsCaptchaChannelProcessorTests.java
diff --git a/core/src/test/java/org/springframework/security/captcha/AlwaysTestAfterTimeInMillisCaptchaChannelProcessorTests.java b/captcha/src/test/java/org/springframework/security/captcha/AlwaysTestAfterTimeInMillisCaptchaChannelProcessorTests.java
similarity index 100%
rename from core/src/test/java/org/springframework/security/captcha/AlwaysTestAfterTimeInMillisCaptchaChannelProcessorTests.java
rename to captcha/src/test/java/org/springframework/security/captcha/AlwaysTestAfterTimeInMillisCaptchaChannelProcessorTests.java
diff --git a/core/src/test/java/org/springframework/security/captcha/AlwaysTestBelowAverageTimeInMillisBetweenRequestsChannelProcessorTests.java b/captcha/src/test/java/org/springframework/security/captcha/AlwaysTestBelowAverageTimeInMillisBetweenRequestsChannelProcessorTests.java
similarity index 100%
rename from core/src/test/java/org/springframework/security/captcha/AlwaysTestBelowAverageTimeInMillisBetweenRequestsChannelProcessorTests.java
rename to captcha/src/test/java/org/springframework/security/captcha/AlwaysTestBelowAverageTimeInMillisBetweenRequestsChannelProcessorTests.java
diff --git a/core/src/test/java/org/springframework/security/captcha/CaptchaChannelProcessorTemplateTests.java b/captcha/src/test/java/org/springframework/security/captcha/CaptchaChannelProcessorTemplateTests.java
similarity index 95%
rename from core/src/test/java/org/springframework/security/captcha/CaptchaChannelProcessorTemplateTests.java
rename to captcha/src/test/java/org/springframework/security/captcha/CaptchaChannelProcessorTemplateTests.java
index af7e752d34..2ea6e3833f 100644
--- a/core/src/test/java/org/springframework/security/captcha/CaptchaChannelProcessorTemplateTests.java
+++ b/captcha/src/test/java/org/springframework/security/captcha/CaptchaChannelProcessorTemplateTests.java
@@ -31,6 +31,9 @@ import org.springframework.mock.web.MockHttpServletResponse;
import java.io.IOException;
import javax.servlet.ServletException;
+import javax.servlet.FilterChain;
+import javax.servlet.ServletRequest;
+import javax.servlet.ServletResponse;
/**
@@ -217,4 +220,10 @@ public class CaptchaChannelProcessorTemplateTests extends TestCase {
return context.isHuman();
}
}
+
+ private static class MockFilterChain implements FilterChain {
+ public void doFilter(ServletRequest arg0, ServletResponse arg1) throws IOException, ServletException {
+ throw new UnsupportedOperationException("mock method not implemented");
+ }
+ }
}
diff --git a/core/src/test/java/org/springframework/security/captcha/CaptchaEntryPointTests.java b/captcha/src/test/java/org/springframework/security/captcha/CaptchaEntryPointTests.java
similarity index 98%
rename from core/src/test/java/org/springframework/security/captcha/CaptchaEntryPointTests.java
rename to captcha/src/test/java/org/springframework/security/captcha/CaptchaEntryPointTests.java
index 680b7c8cae..934b9c579d 100644
--- a/core/src/test/java/org/springframework/security/captcha/CaptchaEntryPointTests.java
+++ b/captcha/src/test/java/org/springframework/security/captcha/CaptchaEntryPointTests.java
@@ -39,16 +39,6 @@ import java.util.Map;
public class CaptchaEntryPointTests extends TestCase {
//~ Methods ========================================================================================================
- public static void main(String[] args) {
- junit.textui.TestRunner.run(CaptchaEntryPointTests.class);
- }
-
- // ~ Methods
- // ================================================================
- public final void setUp() throws Exception {
- super.setUp();
- }
-
public void testDetectsMissingCaptchaFormUrl() throws Exception {
CaptchaEntryPoint ep = new CaptchaEntryPoint();
ep.setPortMapper(new PortMapperImpl());
diff --git a/core/src/test/java/org/springframework/security/captcha/CaptchaSecurityContextImplTests.java b/captcha/src/test/java/org/springframework/security/captcha/CaptchaSecurityContextImplTests.java
similarity index 96%
rename from core/src/test/java/org/springframework/security/captcha/CaptchaSecurityContextImplTests.java
rename to captcha/src/test/java/org/springframework/security/captcha/CaptchaSecurityContextImplTests.java
index d920e18574..e27fa75488 100644
--- a/core/src/test/java/org/springframework/security/captcha/CaptchaSecurityContextImplTests.java
+++ b/captcha/src/test/java/org/springframework/security/captcha/CaptchaSecurityContextImplTests.java
@@ -15,7 +15,7 @@
package org.springframework.security.captcha;
-import org.springframework.security.context.SecurityContextImplTests;
+import junit.framework.TestCase;
/**
@@ -24,7 +24,7 @@ import org.springframework.security.context.SecurityContextImplTests;
* @author marc antoine Garrigue
* @version $Id$
*/
-public class CaptchaSecurityContextImplTests extends SecurityContextImplTests {
+public class CaptchaSecurityContextImplTests extends TestCase {
//~ Methods ========================================================================================================
public void testDefaultValues() {
diff --git a/core/src/test/java/org/springframework/security/captcha/CaptchaValidationProcessingFilterTests.java b/captcha/src/test/java/org/springframework/security/captcha/CaptchaValidationProcessingFilterTests.java
similarity index 100%
rename from core/src/test/java/org/springframework/security/captcha/CaptchaValidationProcessingFilterTests.java
rename to captcha/src/test/java/org/springframework/security/captcha/CaptchaValidationProcessingFilterTests.java
diff --git a/core/src/test/java/org/springframework/security/captcha/MockCaptchaServiceProxy.java b/captcha/src/test/java/org/springframework/security/captcha/MockCaptchaServiceProxy.java
similarity index 100%
rename from core/src/test/java/org/springframework/security/captcha/MockCaptchaServiceProxy.java
rename to captcha/src/test/java/org/springframework/security/captcha/MockCaptchaServiceProxy.java
diff --git a/core/src/test/java/org/springframework/security/captcha/TestOnceAfterMaxRequestsCaptchaChannelProcessorTests.java b/captcha/src/test/java/org/springframework/security/captcha/TestOnceAfterMaxRequestsCaptchaChannelProcessorTests.java
similarity index 100%
rename from core/src/test/java/org/springframework/security/captcha/TestOnceAfterMaxRequestsCaptchaChannelProcessorTests.java
rename to captcha/src/test/java/org/springframework/security/captcha/TestOnceAfterMaxRequestsCaptchaChannelProcessorTests.java
diff --git a/cas/cas-client/pom.xml b/cas/cas-client/pom.xml
new file mode 100644
index 0000000000..6ad93604c3
--- /dev/null
+++ b/cas/cas-client/pom.xml
@@ -0,0 +1,22 @@
+
+
+
+ spring-security-cas
+ org.springframework.security
+ 2.0-SNAPSHOT
+
+ 4.0.0
+ org.springframework.security
+ spring-security-cas-client
+ Spring Security - CAS Client Integration
+ 2.0-SNAPSHOT
+
+
+
+ org.springframework.security
+ spring-security-core
+ ${project.version}
+
+
+
\ No newline at end of file
diff --git a/core/src/main/java/org/springframework/security/providers/cas/CasAuthenticationProvider.java b/cas/cas-client/src/main/java/org/springframework/security/providers/cas/CasAuthenticationProvider.java
similarity index 100%
rename from core/src/main/java/org/springframework/security/providers/cas/CasAuthenticationProvider.java
rename to cas/cas-client/src/main/java/org/springframework/security/providers/cas/CasAuthenticationProvider.java
diff --git a/core/src/main/java/org/springframework/security/providers/cas/CasAuthenticationToken.java b/cas/cas-client/src/main/java/org/springframework/security/providers/cas/CasAuthenticationToken.java
similarity index 100%
rename from core/src/main/java/org/springframework/security/providers/cas/CasAuthenticationToken.java
rename to cas/cas-client/src/main/java/org/springframework/security/providers/cas/CasAuthenticationToken.java
diff --git a/core/src/main/java/org/springframework/security/providers/cas/CasProxyDecider.java b/cas/cas-client/src/main/java/org/springframework/security/providers/cas/CasProxyDecider.java
similarity index 100%
rename from core/src/main/java/org/springframework/security/providers/cas/CasProxyDecider.java
rename to cas/cas-client/src/main/java/org/springframework/security/providers/cas/CasProxyDecider.java
diff --git a/core/src/main/java/org/springframework/security/providers/cas/ProxyUntrustedException.java b/cas/cas-client/src/main/java/org/springframework/security/providers/cas/ProxyUntrustedException.java
similarity index 100%
rename from core/src/main/java/org/springframework/security/providers/cas/ProxyUntrustedException.java
rename to cas/cas-client/src/main/java/org/springframework/security/providers/cas/ProxyUntrustedException.java
diff --git a/core/src/main/java/org/springframework/security/providers/cas/StatelessTicketCache.java b/cas/cas-client/src/main/java/org/springframework/security/providers/cas/StatelessTicketCache.java
similarity index 100%
rename from core/src/main/java/org/springframework/security/providers/cas/StatelessTicketCache.java
rename to cas/cas-client/src/main/java/org/springframework/security/providers/cas/StatelessTicketCache.java
diff --git a/core/src/main/java/org/springframework/security/providers/cas/TicketResponse.java b/cas/cas-client/src/main/java/org/springframework/security/providers/cas/TicketResponse.java
similarity index 100%
rename from core/src/main/java/org/springframework/security/providers/cas/TicketResponse.java
rename to cas/cas-client/src/main/java/org/springframework/security/providers/cas/TicketResponse.java
diff --git a/core/src/main/java/org/springframework/security/providers/cas/TicketValidator.java b/cas/cas-client/src/main/java/org/springframework/security/providers/cas/TicketValidator.java
similarity index 100%
rename from core/src/main/java/org/springframework/security/providers/cas/TicketValidator.java
rename to cas/cas-client/src/main/java/org/springframework/security/providers/cas/TicketValidator.java
diff --git a/core/src/main/java/org/springframework/security/providers/cas/cache/EhCacheBasedTicketCache.java b/cas/cas-client/src/main/java/org/springframework/security/providers/cas/cache/EhCacheBasedTicketCache.java
similarity index 100%
rename from core/src/main/java/org/springframework/security/providers/cas/cache/EhCacheBasedTicketCache.java
rename to cas/cas-client/src/main/java/org/springframework/security/providers/cas/cache/EhCacheBasedTicketCache.java
diff --git a/core/src/main/java/org/springframework/security/providers/cas/cache/NullStatelessTicketCache.java b/cas/cas-client/src/main/java/org/springframework/security/providers/cas/cache/NullStatelessTicketCache.java
similarity index 100%
rename from core/src/main/java/org/springframework/security/providers/cas/cache/NullStatelessTicketCache.java
rename to cas/cas-client/src/main/java/org/springframework/security/providers/cas/cache/NullStatelessTicketCache.java
diff --git a/core/src/main/java/org/springframework/security/providers/cas/cache/package.html b/cas/cas-client/src/main/java/org/springframework/security/providers/cas/cache/package.html
similarity index 100%
rename from core/src/main/java/org/springframework/security/providers/cas/cache/package.html
rename to cas/cas-client/src/main/java/org/springframework/security/providers/cas/cache/package.html
diff --git a/core/src/main/java/org/springframework/security/providers/cas/package.html b/cas/cas-client/src/main/java/org/springframework/security/providers/cas/package.html
similarity index 100%
rename from core/src/main/java/org/springframework/security/providers/cas/package.html
rename to cas/cas-client/src/main/java/org/springframework/security/providers/cas/package.html
diff --git a/core/src/main/java/org/springframework/security/providers/cas/proxy/AcceptAnyCasProxy.java b/cas/cas-client/src/main/java/org/springframework/security/providers/cas/proxy/AcceptAnyCasProxy.java
similarity index 100%
rename from core/src/main/java/org/springframework/security/providers/cas/proxy/AcceptAnyCasProxy.java
rename to cas/cas-client/src/main/java/org/springframework/security/providers/cas/proxy/AcceptAnyCasProxy.java
diff --git a/core/src/main/java/org/springframework/security/providers/cas/proxy/NamedCasProxyDecider.java b/cas/cas-client/src/main/java/org/springframework/security/providers/cas/proxy/NamedCasProxyDecider.java
similarity index 100%
rename from core/src/main/java/org/springframework/security/providers/cas/proxy/NamedCasProxyDecider.java
rename to cas/cas-client/src/main/java/org/springframework/security/providers/cas/proxy/NamedCasProxyDecider.java
diff --git a/core/src/main/java/org/springframework/security/providers/cas/proxy/RejectProxyTickets.java b/cas/cas-client/src/main/java/org/springframework/security/providers/cas/proxy/RejectProxyTickets.java
similarity index 100%
rename from core/src/main/java/org/springframework/security/providers/cas/proxy/RejectProxyTickets.java
rename to cas/cas-client/src/main/java/org/springframework/security/providers/cas/proxy/RejectProxyTickets.java
diff --git a/core/src/main/java/org/springframework/security/providers/cas/proxy/package.html b/cas/cas-client/src/main/java/org/springframework/security/providers/cas/proxy/package.html
similarity index 100%
rename from core/src/main/java/org/springframework/security/providers/cas/proxy/package.html
rename to cas/cas-client/src/main/java/org/springframework/security/providers/cas/proxy/package.html
diff --git a/core/src/main/java/org/springframework/security/providers/cas/ticketvalidator/AbstractTicketValidator.java b/cas/cas-client/src/main/java/org/springframework/security/providers/cas/ticketvalidator/AbstractTicketValidator.java
similarity index 100%
rename from core/src/main/java/org/springframework/security/providers/cas/ticketvalidator/AbstractTicketValidator.java
rename to cas/cas-client/src/main/java/org/springframework/security/providers/cas/ticketvalidator/AbstractTicketValidator.java
diff --git a/core/src/main/java/org/springframework/security/providers/cas/ticketvalidator/CasProxyTicketValidator.java b/cas/cas-client/src/main/java/org/springframework/security/providers/cas/ticketvalidator/CasProxyTicketValidator.java
similarity index 100%
rename from core/src/main/java/org/springframework/security/providers/cas/ticketvalidator/CasProxyTicketValidator.java
rename to cas/cas-client/src/main/java/org/springframework/security/providers/cas/ticketvalidator/CasProxyTicketValidator.java
diff --git a/core/src/main/java/org/springframework/security/providers/cas/ticketvalidator/package.html b/cas/cas-client/src/main/java/org/springframework/security/providers/cas/ticketvalidator/package.html
similarity index 100%
rename from core/src/main/java/org/springframework/security/providers/cas/ticketvalidator/package.html
rename to cas/cas-client/src/main/java/org/springframework/security/providers/cas/ticketvalidator/package.html
diff --git a/core/src/test/java/org/springframework/security/providers/cas/CasAuthenticationProviderTests.java b/cas/cas-client/src/test/java/org/springframework/security/providers/cas/CasAuthenticationProviderTests.java
similarity index 100%
rename from core/src/test/java/org/springframework/security/providers/cas/CasAuthenticationProviderTests.java
rename to cas/cas-client/src/test/java/org/springframework/security/providers/cas/CasAuthenticationProviderTests.java
diff --git a/core/src/test/java/org/springframework/security/providers/cas/CasAuthenticationTokenTests.java b/cas/cas-client/src/test/java/org/springframework/security/providers/cas/CasAuthenticationTokenTests.java
similarity index 100%
rename from core/src/test/java/org/springframework/security/providers/cas/CasAuthenticationTokenTests.java
rename to cas/cas-client/src/test/java/org/springframework/security/providers/cas/CasAuthenticationTokenTests.java
diff --git a/core/src/test/java/org/springframework/security/providers/cas/TicketResponseTests.java b/cas/cas-client/src/test/java/org/springframework/security/providers/cas/TicketResponseTests.java
similarity index 100%
rename from core/src/test/java/org/springframework/security/providers/cas/TicketResponseTests.java
rename to cas/cas-client/src/test/java/org/springframework/security/providers/cas/TicketResponseTests.java
diff --git a/core/src/test/java/org/springframework/security/providers/cas/cache/EhCacheBasedTicketCacheTests.java b/cas/cas-client/src/test/java/org/springframework/security/providers/cas/cache/EhCacheBasedTicketCacheTests.java
similarity index 79%
rename from core/src/test/java/org/springframework/security/providers/cas/cache/EhCacheBasedTicketCacheTests.java
rename to cas/cas-client/src/test/java/org/springframework/security/providers/cas/cache/EhCacheBasedTicketCacheTests.java
index 1a304d013e..216468db2c 100644
--- a/core/src/test/java/org/springframework/security/providers/cas/cache/EhCacheBasedTicketCacheTests.java
+++ b/cas/cas-client/src/test/java/org/springframework/security/providers/cas/cache/EhCacheBasedTicketCacheTests.java
@@ -15,23 +15,24 @@
package org.springframework.security.providers.cas.cache;
-import junit.framework.TestCase;
-
import net.sf.ehcache.Ehcache;
+import net.sf.ehcache.CacheManager;
+import net.sf.ehcache.Cache;
import org.springframework.security.GrantedAuthority;
import org.springframework.security.GrantedAuthorityImpl;
-import org.springframework.security.MockApplicationContext;
import org.springframework.security.providers.cas.CasAuthenticationToken;
import org.springframework.security.userdetails.User;
-
-import org.springframework.context.ApplicationContext;
-
import java.util.List;
import java.util.Vector;
+import org.junit.Test;
+import org.junit.BeforeClass;
+import org.junit.AfterClass;
+import static org.junit.Assert.*;
+
/**
* Tests {@link EhCacheBasedTicketCache}.
@@ -39,22 +40,20 @@ import java.util.Vector;
* @author Ben Alex
* @version $Id$
*/
-public class EhCacheBasedTicketCacheTests extends TestCase {
- //~ Constructors ===================================================================================================
-
- public EhCacheBasedTicketCacheTests() {
- }
-
- public EhCacheBasedTicketCacheTests(String arg0) {
- super(arg0);
- }
+public class EhCacheBasedTicketCacheTests {
+ static CacheManager cacheManager;
//~ Methods ========================================================================================================
+ @BeforeClass
+ public static void initCacheManaer() {
+ cacheManager = new CacheManager();
+ cacheManager.addCache(new Cache("castickets", 500, false, false, 30, 30));
+ }
- private Ehcache getCache() {
- ApplicationContext ctx = MockApplicationContext.getContext();
-
- return (Ehcache) ctx.getBean("eHCacheBackend");
+ @AfterClass
+ public static void shutdownCacheManager() {
+ cacheManager.removalAll();
+ cacheManager.shutdown();
}
private CasAuthenticationToken getToken() {
@@ -69,13 +68,10 @@ public class EhCacheBasedTicketCacheTests extends TestCase {
proxyList, "PGTIOU-0-R0zlgrl4pdAQwBvJWO3vnNpevwqStbSGcq3vKB2SqSFFRnjPHt");
}
- public final void setUp() throws Exception {
- super.setUp();
- }
-
+ @Test
public void testCacheOperation() throws Exception {
EhCacheBasedTicketCache cache = new EhCacheBasedTicketCache();
- cache.setCache(getCache());
+ cache.setCache(cacheManager.getCache("castickets"));
cache.afterPropertiesSet();
// Check it gets stored in the cache
@@ -91,6 +87,7 @@ public class EhCacheBasedTicketCacheTests extends TestCase {
assertNull(cache.getByTicketId("UNKNOWN_SERVICE_TICKET"));
}
+ @Test
public void testStartupDetectsMissingCache() throws Exception {
EhCacheBasedTicketCache cache = new EhCacheBasedTicketCache();
@@ -101,7 +98,7 @@ public class EhCacheBasedTicketCacheTests extends TestCase {
assertTrue(true);
}
- Ehcache myCache = getCache();
+ Ehcache myCache = cacheManager.getCache("castickets");
cache.setCache(myCache);
assertEquals(myCache, cache.getCache());
}
diff --git a/core/src/test/java/org/springframework/security/providers/cas/cache/NullStatelessTicketCacheTests.java b/cas/cas-client/src/test/java/org/springframework/security/providers/cas/cache/NullStatelessTicketCacheTests.java
similarity index 100%
rename from core/src/test/java/org/springframework/security/providers/cas/cache/NullStatelessTicketCacheTests.java
rename to cas/cas-client/src/test/java/org/springframework/security/providers/cas/cache/NullStatelessTicketCacheTests.java
diff --git a/core/src/test/java/org/springframework/security/providers/cas/proxy/AcceptAnyCasProxyTests.java b/cas/cas-client/src/test/java/org/springframework/security/providers/cas/proxy/AcceptAnyCasProxyTests.java
similarity index 100%
rename from core/src/test/java/org/springframework/security/providers/cas/proxy/AcceptAnyCasProxyTests.java
rename to cas/cas-client/src/test/java/org/springframework/security/providers/cas/proxy/AcceptAnyCasProxyTests.java
diff --git a/core/src/test/java/org/springframework/security/providers/cas/proxy/NamedCasProxyDeciderTests.java b/cas/cas-client/src/test/java/org/springframework/security/providers/cas/proxy/NamedCasProxyDeciderTests.java
similarity index 100%
rename from core/src/test/java/org/springframework/security/providers/cas/proxy/NamedCasProxyDeciderTests.java
rename to cas/cas-client/src/test/java/org/springframework/security/providers/cas/proxy/NamedCasProxyDeciderTests.java
diff --git a/core/src/test/java/org/springframework/security/providers/cas/proxy/RejectProxyTicketsTests.java b/cas/cas-client/src/test/java/org/springframework/security/providers/cas/proxy/RejectProxyTicketsTests.java
similarity index 100%
rename from core/src/test/java/org/springframework/security/providers/cas/proxy/RejectProxyTicketsTests.java
rename to cas/cas-client/src/test/java/org/springframework/security/providers/cas/proxy/RejectProxyTicketsTests.java
diff --git a/core/src/test/java/org/springframework/security/providers/cas/ticketvalidator/AbstractTicketValidatorTests.java b/cas/cas-client/src/test/java/org/springframework/security/providers/cas/ticketvalidator/AbstractTicketValidatorTests.java
similarity index 100%
rename from core/src/test/java/org/springframework/security/providers/cas/ticketvalidator/AbstractTicketValidatorTests.java
rename to cas/cas-client/src/test/java/org/springframework/security/providers/cas/ticketvalidator/AbstractTicketValidatorTests.java
diff --git a/core/src/test/java/org/springframework/security/providers/cas/ticketvalidator/CasProxyTicketValidatorTests.java b/cas/cas-client/src/test/java/org/springframework/security/providers/cas/ticketvalidator/CasProxyTicketValidatorTests.java
similarity index 100%
rename from core/src/test/java/org/springframework/security/providers/cas/ticketvalidator/CasProxyTicketValidatorTests.java
rename to cas/cas-client/src/test/java/org/springframework/security/providers/cas/ticketvalidator/CasProxyTicketValidatorTests.java
diff --git a/cas/pom.xml b/cas/pom.xml
new file mode 100644
index 0000000000..e2404e4620
--- /dev/null
+++ b/cas/pom.xml
@@ -0,0 +1,41 @@
+
+
+ 4.0.0
+
+ org.springframework.security
+ spring-security-parent
+ 2.0-SNAPSHOT
+
+ spring-security-cas
+ Spring Security - CAS Support
+ pom
+
+
+ cas-client
+
+
+
+
+ org.springframework.security
+ spring-security-core
+ ${project.version}
+
+
+ org.springframework
+ spring-dao
+
+
+ cas
+ casclient
+ 2.0.11
+ true
+
+
+ net.sf.ehcache
+ ehcache
+ 1.3.0
+ true
+
+
+
\ No newline at end of file
diff --git a/core/pom.xml b/core/pom.xml
index 313b8a910b..335ed0c606 100644
--- a/core/pom.xml
+++ b/core/pom.xml
@@ -18,6 +18,10 @@
org.springframework
spring-context
+
+ org.springframework
+ spring-aop
+
org.springframework
spring-remoting
@@ -52,13 +56,7 @@
net.sf.ehcache
ehcache
- 1.2.4
- true
-
-
- cas
- casclient
- 2.0.11
+ 1.3.0
true
@@ -88,24 +86,12 @@
1.1.1
true
-
- javax.servlet
- jsp-api
- 2.0
- true
-
javax.servlet
servlet-api
2.4
true
-
- taglibs
- standard
- 1.0.6
- true
-
hsqldb
hsqldb
diff --git a/core/src/main/java/org/springframework/security/intercept/web/RequestKey.java b/core/src/main/java/org/springframework/security/intercept/web/RequestKey.java
new file mode 100644
index 0000000000..af3cb50da6
--- /dev/null
+++ b/core/src/main/java/org/springframework/security/intercept/web/RequestKey.java
@@ -0,0 +1,38 @@
+package org.springframework.security.intercept.web;
+
+/**
+ * @author Luke Taylor
+ * @version $Id$
+ */
+public class RequestKey {
+ String url;
+ String method;
+
+ public RequestKey(String url) {
+ this(url, "");
+ }
+
+ public RequestKey(String url, String method) {
+ this.url = url;
+ this.method = method;
+ }
+
+ public int hashCode() {
+ int code = 31;
+ code ^= url.hashCode();
+ code ^= method.hashCode();
+
+ return code;
+
+ }
+
+ public boolean equals(Object obj) {
+ if (!(obj instanceof RequestKey)) {
+ return false;
+ }
+
+ RequestKey key = (RequestKey) obj;
+
+ return url.equals(key.url) && method.equals(key.method);
+ }
+}
diff --git a/core/src/main/java/org/springframework/security/providers/ProviderManager.java b/core/src/main/java/org/springframework/security/providers/ProviderManager.java
index 991095a655..bb24cc7977 100644
--- a/core/src/main/java/org/springframework/security/providers/ProviderManager.java
+++ b/core/src/main/java/org/springframework/security/providers/ProviderManager.java
@@ -26,11 +26,9 @@ import org.springframework.security.CredentialsExpiredException;
import org.springframework.security.DisabledException;
import org.springframework.security.LockedException;
import org.springframework.security.AccountStatusException;
-
import org.springframework.security.concurrent.ConcurrentLoginException;
import org.springframework.security.concurrent.ConcurrentSessionController;
import org.springframework.security.concurrent.NullConcurrentSessionController;
-
import org.springframework.security.event.authentication.AbstractAuthenticationEvent;
import org.springframework.security.event.authentication.AuthenticationFailureBadCredentialsEvent;
import org.springframework.security.event.authentication.AuthenticationFailureConcurrentLoginEvent;
@@ -42,25 +40,20 @@ import org.springframework.security.event.authentication.AuthenticationFailurePr
import org.springframework.security.event.authentication.AuthenticationFailureProxyUntrustedEvent;
import org.springframework.security.event.authentication.AuthenticationFailureServiceExceptionEvent;
import org.springframework.security.event.authentication.AuthenticationSuccessEvent;
-
-import org.springframework.security.providers.cas.ProxyUntrustedException;
-
import org.springframework.security.userdetails.UsernameNotFoundException;
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
-
import org.springframework.beans.factory.InitializingBean;
-
import org.springframework.context.ApplicationEvent;
import org.springframework.context.ApplicationEventPublisher;
import org.springframework.context.ApplicationEventPublisherAware;
import org.springframework.context.MessageSource;
import org.springframework.context.MessageSourceAware;
import org.springframework.context.support.MessageSourceAccessor;
-
import org.springframework.util.Assert;
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+
import java.lang.reflect.Constructor;
import java.lang.reflect.InvocationTargetException;
@@ -140,7 +133,7 @@ public class ProviderManager extends AbstractAuthenticationManager implements In
AuthenticationFailureConcurrentLoginEvent.class.getName());
DEFAULT_EXCEPTION_MAPPINGS.put(ProviderNotFoundException.class.getName(),
AuthenticationFailureProviderNotFoundEvent.class.getName());
- DEFAULT_EXCEPTION_MAPPINGS.put(ProxyUntrustedException.class.getName(),
+ DEFAULT_EXCEPTION_MAPPINGS.put("org.springframework.security.providers.cas.ProxyUntrustedException",
AuthenticationFailureProxyUntrustedEvent.class.getName());
}
@@ -338,16 +331,15 @@ public class ProviderManager extends AbstractAuthenticationManager implements In
applicationEventPublisher.publishEvent(event);
}
}
-
+
/**
* Sets additional exception to event mappings. These are automatically merged with the default
* exception to event mappings that ProviderManager defines.
- *
- * @param additionalExceptionMappings where keys are the fully-qualified string name of the
- * exception class and the values are the fully-qualified string name of the event class to fire
+ *
+ * @param additionalExceptionMappings where keys are the fully-qualified string name of the exception class and the
+ * values are the fully-qualified string name of the event class to fire.
*/
- public void setAdditionalExceptionMappings(
- Properties additionalExceptionMappings) {
- this.additionalExceptionMappings = additionalExceptionMappings;
- }
+ public void setAdditionalExceptionMappings(Properties additionalExceptionMappings) {
+ this.additionalExceptionMappings = additionalExceptionMappings;
+ }
}
diff --git a/core/src/test/java/org/springframework/security/MockAclManager.java b/core/src/test/java/org/springframework/security/MockAclManager.java
index 041af871f4..53fa008221 100644
--- a/core/src/test/java/org/springframework/security/MockAclManager.java
+++ b/core/src/test/java/org/springframework/security/MockAclManager.java
@@ -41,8 +41,6 @@ public class MockAclManager implements AclManager {
this.acls = acls;
}
- private MockAclManager() {}
-
//~ Methods ========================================================================================================
public AclEntry[] getAcls(Object domainInstance, Authentication authentication) {
diff --git a/core/src/test/java/org/springframework/security/MockPortResolver.java b/core/src/test/java/org/springframework/security/MockPortResolver.java
index e4f67240d5..026857196e 100644
--- a/core/src/test/java/org/springframework/security/MockPortResolver.java
+++ b/core/src/test/java/org/springframework/security/MockPortResolver.java
@@ -39,8 +39,6 @@ public class MockPortResolver implements PortResolver {
this.https = https;
}
- private MockPortResolver() {}
-
//~ Methods ========================================================================================================
public int getServerPort(ServletRequest request) {
diff --git a/core/src/test/java/org/springframework/security/context/SecurityContextImplTests.java b/core/src/test/java/org/springframework/security/context/SecurityContextImplTests.java
index 9ebaf7f921..0a2b150d48 100644
--- a/core/src/test/java/org/springframework/security/context/SecurityContextImplTests.java
+++ b/core/src/test/java/org/springframework/security/context/SecurityContextImplTests.java
@@ -41,14 +41,6 @@ public class SecurityContextImplTests extends TestCase {
//~ Methods ========================================================================================================
- public static void main(String[] args) {
- junit.textui.TestRunner.run(SecurityContextImplTests.class);
- }
-
- public final void setUp() throws Exception {
- super.setUp();
- }
-
public void testEmptyObjectsAreEquals() {
SecurityContextImpl obj1 = new SecurityContextImpl();
SecurityContextImpl obj2 = new SecurityContextImpl();
diff --git a/core/src/test/java/org/springframework/security/intercept/method/aspectj/AspectJSecurityInterceptorTests.java b/core/src/test/java/org/springframework/security/intercept/method/aspectj/AspectJSecurityInterceptorTests.java
index 805412ba4a..ce84556d32 100644
--- a/core/src/test/java/org/springframework/security/intercept/method/aspectj/AspectJSecurityInterceptorTests.java
+++ b/core/src/test/java/org/springframework/security/intercept/method/aspectj/AspectJSecurityInterceptorTests.java
@@ -64,8 +64,7 @@ public class AspectJSecurityInterceptorTests extends TestCase {
SecurityContextHolder.clearContext();
}
- public void testCallbackIsInvokedWhenPermissionGranted()
- throws Exception {
+ public void testCallbackIsInvokedWhenPermissionGranted() throws Exception {
AspectJSecurityInterceptor si = new AspectJSecurityInterceptor();
si.setApplicationEventPublisher(MockApplicationContext.getContext());
si.setAccessDecisionManager(new MockAccessDecisionManager());
@@ -96,8 +95,7 @@ public class AspectJSecurityInterceptorTests extends TestCase {
assertEquals("object proceeded", result);
}
- public void testCallbackIsNotInvokedWhenPermissionDenied()
- throws Exception {
+ public void testCallbackIsNotInvokedWhenPermissionDenied() throws Exception {
AspectJSecurityInterceptor si = new AspectJSecurityInterceptor();
si.setApplicationEventPublisher(MockApplicationContext.getContext());
si.setAccessDecisionManager(new MockAccessDecisionManager());
diff --git a/core/src/test/resources/org/springframework/security/applicationContext.xml b/core/src/test/resources/org/springframework/security/applicationContext.xml
index 6195bf67ed..1b9098f760 100644
--- a/core/src/test/resources/org/springframework/security/applicationContext.xml
+++ b/core/src/test/resources/org/springframework/security/applicationContext.xml
@@ -28,18 +28,14 @@
-
- classpath:/ehcache-failsafe.xml
-
+
-
- testingCache
-
+
diff --git a/openid/pom.xml b/openid/pom.xml
index bd2b8c333f..f764a51ef0 100644
--- a/openid/pom.xml
+++ b/openid/pom.xml
@@ -12,11 +12,11 @@
2.0-SNAPSHOT
-
- org.springframework.security
- spring-security-core
- ${project.version}
-
+
+ org.springframework.security
+ spring-security-core
+ ${project.version}
+
org.springframework
spring-core
diff --git a/pom.xml b/pom.xml
index e61da59f7b..e4c6ae63cb 100644
--- a/pom.xml
+++ b/pom.xml
@@ -1,3 +1,4 @@
+
4.0.0
org.springframework.security
@@ -14,7 +15,11 @@
ntlm
openid
samples
-
+ cas
+ captcha
+ acl
+ taglibs
+
Spring Security
@@ -418,9 +423,9 @@
-
-
-
+
+
+
@@ -574,6 +579,11 @@
spring-jdbc
${spring.version}
+
+ org.springframework
+ spring-dao
+ ${spring.version}
+
org.springframework
spring-support
diff --git a/samples/cas/client/src/main/webapp/WEB-INF/applicationContext-security.xml b/samples/cas/client/src/main/webapp/WEB-INF/applicationContext-security.xml
index c482a733c1..18f6cf3562 100644
--- a/samples/cas/client/src/main/webapp/WEB-INF/applicationContext-security.xml
+++ b/samples/cas/client/src/main/webapp/WEB-INF/applicationContext-security.xml
@@ -28,11 +28,7 @@
-
-
-
-
-
+
diff --git a/samples/contacts/pom.xml b/samples/contacts/pom.xml
index 2cc2bda0d3..089ea5472f 100644
--- a/samples/contacts/pom.xml
+++ b/samples/contacts/pom.xml
@@ -15,6 +15,11 @@
spring-security-core
${project.version}
+
+ org.springframework.security
+ spring-security-acl
+ ${project.version}
+
org.springframework
spring-webmvc
diff --git a/samples/dms/pom.xml b/samples/dms/pom.xml
index a4ee1b9a48..e70a4f8416 100644
--- a/samples/dms/pom.xml
+++ b/samples/dms/pom.xml
@@ -1,42 +1,49 @@
-
- 4.0.0
-
- org.springframework.security
- spring-security-samples
- 2.0-SNAPSHOT
-
- spring-security-samples-dms
- Spring Security - DMS sample
-
-
- org.springframework.security
- spring-security-core
- ${project.version}
-
-
- org.springframework
- spring-jdbc
-
-
- org.springframework
- spring-aop
- runtime
-
-
- org.springframework
- spring-mock
- ${spring.version}
-
-
- hsqldb
- hsqldb
- 1.8.0.4
-
-
- net.sf.ehcache
- ehcache
- 1.2.4
- runtime
-
-
+
+ 4.0.0
+
+ org.springframework.security
+ spring-security-samples
+ 2.0-SNAPSHOT
+
+ spring-security-samples-dms
+ Spring Security - DMS sample
+
+
+ org.springframework.security
+ spring-security-core
+ ${project.version}
+
+
+ org.springframework.security
+ spring-security-acl
+ ${project.version}
+
+
+
+ org.springframework
+ spring-jdbc
+
+
+ org.springframework
+ spring-aop
+ runtime
+
+
+ org.springframework
+ spring-mock
+ ${spring.version}
+
+
+ hsqldb
+ hsqldb
+ 1.8.0.4
+
+
+ net.sf.ehcache
+ ehcache
+ 1.2.4
+ runtime
+
+
\ No newline at end of file
diff --git a/taglibs/pom.xml b/taglibs/pom.xml
new file mode 100644
index 0000000000..877ef764d2
--- /dev/null
+++ b/taglibs/pom.xml
@@ -0,0 +1,49 @@
+
+
+
+ spring-security-parent
+ org.springframework.security
+ 2.0-SNAPSHOT
+
+ 4.0.0
+ org.springframework.security
+ spring-security-taglibs
+ Spring Security - JSP Taglibs
+ 2.0-SNAPSHOT
+ jar
+
+
+
+ org.springframework.security
+ spring-security-core
+ ${project.version}
+
+
+ org.springframework.security
+ spring-security-acl
+ ${project.version}
+
+
+ org.springframework
+ spring-web
+
+
+ org.springframework
+ spring-mock
+ test
+
+
+ javax.servlet
+ jsp-api
+ 2.0
+ true
+
+
+ taglibs
+ standard
+ 1.0.6
+ true
+
+
+
\ No newline at end of file
diff --git a/core/src/main/java/org/springframework/security/taglibs/authz/AccessControlListTag.java b/taglibs/src/main/java/org/springframework/security/taglibs/authz/AccessControlListTag.java
similarity index 100%
rename from core/src/main/java/org/springframework/security/taglibs/authz/AccessControlListTag.java
rename to taglibs/src/main/java/org/springframework/security/taglibs/authz/AccessControlListTag.java
diff --git a/core/src/main/java/org/springframework/security/taglibs/authz/AclTag.java b/taglibs/src/main/java/org/springframework/security/taglibs/authz/AclTag.java
similarity index 100%
rename from core/src/main/java/org/springframework/security/taglibs/authz/AclTag.java
rename to taglibs/src/main/java/org/springframework/security/taglibs/authz/AclTag.java
diff --git a/core/src/main/java/org/springframework/security/taglibs/authz/AuthenticationTag.java b/taglibs/src/main/java/org/springframework/security/taglibs/authz/AuthenticationTag.java
similarity index 100%
rename from core/src/main/java/org/springframework/security/taglibs/authz/AuthenticationTag.java
rename to taglibs/src/main/java/org/springframework/security/taglibs/authz/AuthenticationTag.java
diff --git a/core/src/main/java/org/springframework/security/taglibs/authz/AuthorizeTag.java b/taglibs/src/main/java/org/springframework/security/taglibs/authz/AuthorizeTag.java
similarity index 100%
rename from core/src/main/java/org/springframework/security/taglibs/authz/AuthorizeTag.java
rename to taglibs/src/main/java/org/springframework/security/taglibs/authz/AuthorizeTag.java
diff --git a/core/src/main/java/org/springframework/security/taglibs/authz/package.html b/taglibs/src/main/java/org/springframework/security/taglibs/authz/package.html
similarity index 100%
rename from core/src/main/java/org/springframework/security/taglibs/authz/package.html
rename to taglibs/src/main/java/org/springframework/security/taglibs/authz/package.html
diff --git a/core/src/main/java/org/springframework/security/taglibs/package.html b/taglibs/src/main/java/org/springframework/security/taglibs/package.html
similarity index 100%
rename from core/src/main/java/org/springframework/security/taglibs/package.html
rename to taglibs/src/main/java/org/springframework/security/taglibs/package.html
diff --git a/core/src/main/java/org/springframework/security/taglibs/velocity/Authz.java b/taglibs/src/main/java/org/springframework/security/taglibs/velocity/Authz.java
similarity index 100%
rename from core/src/main/java/org/springframework/security/taglibs/velocity/Authz.java
rename to taglibs/src/main/java/org/springframework/security/taglibs/velocity/Authz.java
diff --git a/core/src/main/java/org/springframework/security/taglibs/velocity/AuthzImpl.java b/taglibs/src/main/java/org/springframework/security/taglibs/velocity/AuthzImpl.java
similarity index 100%
rename from core/src/main/java/org/springframework/security/taglibs/velocity/AuthzImpl.java
rename to taglibs/src/main/java/org/springframework/security/taglibs/velocity/AuthzImpl.java
diff --git a/core/src/main/resources/org/springframework/security/taglibs/security.tld b/taglibs/src/main/resources/org/springframework/security/taglibs/security.tld
similarity index 100%
rename from core/src/main/resources/org/springframework/security/taglibs/security.tld
rename to taglibs/src/main/resources/org/springframework/security/taglibs/security.tld
diff --git a/core/src/test/java/org/springframework/security/taglibs/authz/AclTagTests.java b/taglibs/src/test/java/org/springframework/security/taglibs/authz/AclTagTests.java
similarity index 82%
rename from core/src/test/java/org/springframework/security/taglibs/authz/AclTagTests.java
rename to taglibs/src/test/java/org/springframework/security/taglibs/authz/AclTagTests.java
index 21bc7c6c06..083bb505c0 100644
--- a/core/src/test/java/org/springframework/security/taglibs/authz/AclTagTests.java
+++ b/taglibs/src/test/java/org/springframework/security/taglibs/authz/AclTagTests.java
@@ -19,20 +19,17 @@ import junit.framework.TestCase;
import org.springframework.security.Authentication;
import org.springframework.security.GrantedAuthority;
-import org.springframework.security.MockAclManager;
-import org.springframework.security.MockApplicationContext;
+import org.springframework.security.util.InMemoryXmlApplicationContext;
import org.springframework.security.acl.AclEntry;
import org.springframework.security.acl.AclManager;
-import org.springframework.security.acl.basic.MockAclObjectIdentity;
import org.springframework.security.acl.basic.SimpleAclEntry;
-
+import org.springframework.security.acl.basic.AclObjectIdentity;
import org.springframework.security.context.SecurityContextHolder;
-
import org.springframework.security.providers.TestingAuthenticationToken;
import org.springframework.context.ApplicationContext;
-import org.springframework.context.ConfigurableApplicationContext;
+import org.springframework.context.support.StaticApplicationContext;
import javax.servlet.jsp.JspException;
import javax.servlet.jsp.PageContext;
@@ -57,8 +54,7 @@ public class AclTagTests extends TestCase {
SecurityContextHolder.clearContext();
}
- public void testInclusionDeniedWhenAclManagerUnawareOfObject()
- throws JspException {
+ public void testInclusionDeniedWhenAclManagerUnawareOfObject() throws JspException {
Authentication auth = new TestingAuthenticationToken("rod", "koala", new GrantedAuthority[] {});
SecurityContextHolder.getContext().setAuthentication(auth);
@@ -67,8 +63,7 @@ public class AclTagTests extends TestCase {
assertEquals(Tag.SKIP_BODY, aclTag.doStartTag());
}
- public void testInclusionDeniedWhenNoListOfPermissionsGiven()
- throws JspException {
+ public void testInclusionDeniedWhenNoListOfPermissionsGiven() throws JspException {
Authentication auth = new TestingAuthenticationToken("rod", "koala", new GrantedAuthority[] {});
SecurityContextHolder.getContext().setAuthentication(auth);
@@ -77,8 +72,7 @@ public class AclTagTests extends TestCase {
assertEquals(Tag.SKIP_BODY, aclTag.doStartTag());
}
- public void testInclusionDeniedWhenPrincipalDoesNotHoldAnyPermissions()
- throws JspException {
+ public void testInclusionDeniedWhenPrincipalDoesNotHoldAnyPermissions() throws JspException {
Authentication auth = new TestingAuthenticationToken("john", "crow", new GrantedAuthority[] {});
SecurityContextHolder.getContext().setAuthentication(auth);
@@ -90,8 +84,7 @@ public class AclTagTests extends TestCase {
assertEquals(Tag.SKIP_BODY, aclTag.doStartTag());
}
- public void testInclusionDeniedWhenPrincipalDoesNotHoldRequiredPermissions()
- throws JspException {
+ public void testInclusionDeniedWhenPrincipalDoesNotHoldRequiredPermissions() throws JspException {
Authentication auth = new TestingAuthenticationToken("rod", "koala", new GrantedAuthority[] {});
SecurityContextHolder.getContext().setAuthentication(auth);
@@ -100,8 +93,7 @@ public class AclTagTests extends TestCase {
assertEquals(Tag.SKIP_BODY, aclTag.doStartTag());
}
- public void testInclusionDeniedWhenSecurityContextEmpty()
- throws JspException {
+ public void testInclusionDeniedWhenSecurityContextEmpty() throws JspException {
SecurityContextHolder.getContext().setAuthentication(null);
aclTag.setHasPermission(new Long(SimpleAclEntry.ADMINISTRATION).toString());
@@ -109,15 +101,13 @@ public class AclTagTests extends TestCase {
assertEquals(Tag.SKIP_BODY, aclTag.doStartTag());
}
- public void testInclusionPermittedWhenDomainObjectIsNull()
- throws JspException {
+ public void testInclusionPermittedWhenDomainObjectIsNull() throws JspException {
aclTag.setHasPermission(new Integer(SimpleAclEntry.READ).toString());
aclTag.setDomainObject(null);
assertEquals(Tag.EVAL_BODY_INCLUDE, aclTag.doStartTag());
}
- public void testJspExceptionThrownIfHasPermissionNotValidFormat()
- throws JspException {
+ public void testJspExceptionThrownIfHasPermissionNotValidFormat() throws JspException {
Authentication auth = new TestingAuthenticationToken("john", "crow", new GrantedAuthority[] {});
SecurityContextHolder.getContext().setAuthentication(auth);
@@ -131,8 +121,7 @@ public class AclTagTests extends TestCase {
}
}
- public void testOperationWhenPrincipalHoldsPermissionOfMultipleList()
- throws JspException {
+ public void testOperationWhenPrincipalHoldsPermissionOfMultipleList() throws JspException {
Authentication auth = new TestingAuthenticationToken("rod", "koala", new GrantedAuthority[] {});
SecurityContextHolder.getContext().setAuthentication(auth);
@@ -141,8 +130,7 @@ public class AclTagTests extends TestCase {
assertEquals(Tag.EVAL_BODY_INCLUDE, aclTag.doStartTag());
}
- public void testOperationWhenPrincipalHoldsPermissionOfSingleList()
- throws JspException {
+ public void testOperationWhenPrincipalHoldsPermissionOfSingleList() throws JspException {
Authentication auth = new TestingAuthenticationToken("rod", "koala", new GrantedAuthority[] {});
SecurityContextHolder.getContext().setAuthentication(auth);
@@ -159,15 +147,28 @@ public class AclTagTests extends TestCase {
private class MyAclTag extends AclTag {
protected ApplicationContext getContext(PageContext pageContext) {
- ConfigurableApplicationContext context = MockApplicationContext.getContext();
+ StaticApplicationContext context = new StaticApplicationContext();
- // Create an AclManager
- AclManager aclManager = new MockAclManager("object1", "rod",
- new AclEntry[] {
+ final AclEntry[] acls = new AclEntry[] {
new MockAclEntry(),
new SimpleAclEntry("rod", new MockAclObjectIdentity(), null, SimpleAclEntry.ADMINISTRATION),
new SimpleAclEntry("rod", new MockAclObjectIdentity(), null, SimpleAclEntry.READ)
- });
+ };
+
+
+ // Create an AclManager
+ AclManager aclManager = new AclManager() {
+ String object = "object1";
+ String principal = "rod";
+
+ public AclEntry[] getAcls(Object domainInstance) {
+ return domainInstance.equals(object) ? acls : null;
+ }
+
+ public AclEntry[] getAcls(Object domainInstance, Authentication authentication) {
+ return domainInstance.equals(object) && authentication.getPrincipal().equals(principal) ? acls : null;
+ }
+ };
// Register the AclManager into our ApplicationContext
context.getBeanFactory().registerSingleton("aclManager", aclManager);
@@ -175,4 +176,7 @@ public class AclTagTests extends TestCase {
return context;
}
}
+
+ private static class MockAclObjectIdentity implements AclObjectIdentity {
+ }
}
diff --git a/core/src/test/java/org/springframework/security/taglibs/authz/AuthenticationTagTests.java b/taglibs/src/test/java/org/springframework/security/taglibs/authz/AuthenticationTagTests.java
similarity index 100%
rename from core/src/test/java/org/springframework/security/taglibs/authz/AuthenticationTagTests.java
rename to taglibs/src/test/java/org/springframework/security/taglibs/authz/AuthenticationTagTests.java
diff --git a/core/src/test/java/org/springframework/security/taglibs/authz/AuthorizeTagAttributeTests.java b/taglibs/src/test/java/org/springframework/security/taglibs/authz/AuthorizeTagAttributeTests.java
similarity index 100%
rename from core/src/test/java/org/springframework/security/taglibs/authz/AuthorizeTagAttributeTests.java
rename to taglibs/src/test/java/org/springframework/security/taglibs/authz/AuthorizeTagAttributeTests.java
diff --git a/core/src/test/java/org/springframework/security/taglibs/authz/AuthorizeTagCustomGrantedAuthorityTests.java b/taglibs/src/test/java/org/springframework/security/taglibs/authz/AuthorizeTagCustomGrantedAuthorityTests.java
similarity index 100%
rename from core/src/test/java/org/springframework/security/taglibs/authz/AuthorizeTagCustomGrantedAuthorityTests.java
rename to taglibs/src/test/java/org/springframework/security/taglibs/authz/AuthorizeTagCustomGrantedAuthorityTests.java
diff --git a/core/src/test/java/org/springframework/security/taglibs/authz/AuthorizeTagExpressionLanguageTests.java b/taglibs/src/test/java/org/springframework/security/taglibs/authz/AuthorizeTagExpressionLanguageTests.java
similarity index 96%
rename from core/src/test/java/org/springframework/security/taglibs/authz/AuthorizeTagExpressionLanguageTests.java
rename to taglibs/src/test/java/org/springframework/security/taglibs/authz/AuthorizeTagExpressionLanguageTests.java
index 64b49adea3..dbebb02a84 100644
--- a/core/src/test/java/org/springframework/security/taglibs/authz/AuthorizeTagExpressionLanguageTests.java
+++ b/taglibs/src/test/java/org/springframework/security/taglibs/authz/AuthorizeTagExpressionLanguageTests.java
@@ -58,8 +58,7 @@ public class AuthorizeTagExpressionLanguageTests extends TestCase {
SecurityContextHolder.clearContext();
}
- public void testAllGrantedUsesExpressionLanguageWhenExpressionIsEL()
- throws JspException {
+ public void testAllGrantedUsesExpressionLanguageWhenExpressionIsEL() throws JspException {
pageContext.setAttribute("authority", "ROLE_TELLER");
authorizeTag.setIfAllGranted("${authority}");
@@ -67,8 +66,7 @@ public class AuthorizeTagExpressionLanguageTests extends TestCase {
authorizeTag.doStartTag());
}
- public void testAnyGrantedUsesExpressionLanguageWhenExpressionIsEL()
- throws JspException {
+ public void testAnyGrantedUsesExpressionLanguageWhenExpressionIsEL() throws JspException {
pageContext.setAttribute("authority", "ROLE_TELLER");
authorizeTag.setIfAnyGranted("${authority}");
@@ -76,8 +74,7 @@ public class AuthorizeTagExpressionLanguageTests extends TestCase {
authorizeTag.doStartTag());
}
- public void testNotGrantedUsesExpressionLanguageWhenExpressionIsEL()
- throws JspException {
+ public void testNotGrantedUsesExpressionLanguageWhenExpressionIsEL() throws JspException {
pageContext.setAttribute("authority", "ROLE_TELLER");
authorizeTag.setIfNotGranted("${authority}");
diff --git a/core/src/test/java/org/springframework/security/taglibs/authz/AuthorizeTagTests.java b/taglibs/src/test/java/org/springframework/security/taglibs/authz/AuthorizeTagTests.java
similarity index 100%
rename from core/src/test/java/org/springframework/security/taglibs/authz/AuthorizeTagTests.java
rename to taglibs/src/test/java/org/springframework/security/taglibs/authz/AuthorizeTagTests.java
diff --git a/core/src/test/java/org/springframework/security/taglibs/velocity/AuthzImplAttributeTest.java b/taglibs/src/test/java/org/springframework/security/taglibs/velocity/AuthzImplAttributeTest.java
similarity index 100%
rename from core/src/test/java/org/springframework/security/taglibs/velocity/AuthzImplAttributeTest.java
rename to taglibs/src/test/java/org/springframework/security/taglibs/velocity/AuthzImplAttributeTest.java
diff --git a/core/src/test/java/org/springframework/security/taglibs/velocity/AuthzImplAuthorizeTagTest.java b/taglibs/src/test/java/org/springframework/security/taglibs/velocity/AuthzImplAuthorizeTagTest.java
similarity index 100%
rename from core/src/test/java/org/springframework/security/taglibs/velocity/AuthzImplAuthorizeTagTest.java
rename to taglibs/src/test/java/org/springframework/security/taglibs/velocity/AuthzImplAuthorizeTagTest.java
diff --git a/core/src/test/java/org/springframework/security/taglibs/velocity/AuthzImplTest.java b/taglibs/src/test/java/org/springframework/security/taglibs/velocity/AuthzImplTest.java
similarity index 91%
rename from core/src/test/java/org/springframework/security/taglibs/velocity/AuthzImplTest.java
rename to taglibs/src/test/java/org/springframework/security/taglibs/velocity/AuthzImplTest.java
index 7c23f8aa6e..e2a002ba07 100644
--- a/core/src/test/java/org/springframework/security/taglibs/velocity/AuthzImplTest.java
+++ b/taglibs/src/test/java/org/springframework/security/taglibs/velocity/AuthzImplTest.java
@@ -19,12 +19,11 @@ import junit.framework.TestCase;
import org.springframework.security.Authentication;
import org.springframework.security.GrantedAuthority;
-import org.springframework.security.MockAclManager;
import org.springframework.security.acl.AclEntry;
import org.springframework.security.acl.AclManager;
-import org.springframework.security.acl.basic.MockAclObjectIdentity;
import org.springframework.security.acl.basic.SimpleAclEntry;
+import org.springframework.security.acl.basic.AclObjectIdentity;
import org.springframework.security.context.SecurityContextHolder;
@@ -36,9 +35,6 @@ import org.springframework.context.ConfigurableApplicationContext;
import org.springframework.context.support.StaticApplicationContext;
-/**
- * DOCUMENT ME!
- */
public class AuthzImplTest extends TestCase {
//~ Instance fields ================================================================================================
@@ -50,22 +46,36 @@ public class AuthzImplTest extends TestCase {
protected void setUp() throws Exception {
super.setUp();
- /*String[] paths = { "applicationEmpty.xml" };
- ctx = new ClassPathXmlApplicationContext(paths);*/
ctx = new StaticApplicationContext();
- // Create an AclManager
- AclManager aclManager = new MockAclManager("object1", "rod",
- new AclEntry[] {
- new MockAclEntry(),
+ final AclEntry[] acls = new AclEntry[] {new MockAclEntry(),
new SimpleAclEntry("rod", new MockAclObjectIdentity(), null, SimpleAclEntry.ADMINISTRATION),
new SimpleAclEntry("rod", new MockAclObjectIdentity(), null, SimpleAclEntry.READ)
- });
+ };
+
+
+ // Create an AclManager
+ AclManager aclManager = new AclManager() {
+ String object = "object1";
+ String principal = "rod";
+
+ public AclEntry[] getAcls(Object domainInstance) {
+ return domainInstance.equals(object) ? acls : null;
+ }
+
+ public AclEntry[] getAcls(Object domainInstance, Authentication authentication) {
+ return domainInstance.equals(object) && authentication.getPrincipal().equals(principal) ? acls : null;
+ }
+ };
// Register the AclManager into our ApplicationContext
ctx.getBeanFactory().registerSingleton("aclManager", aclManager);
}
+ protected void tearDown() throws Exception {
+ ctx.close();
+ }
+
public void testIllegalArgumentExceptionThrownIfHasPermissionNotValidFormat() {
Authentication auth = new TestingAuthenticationToken("john", "crow", new GrantedAuthority[] {});
SecurityContextHolder.getContext().setAuthentication(auth);
@@ -230,4 +240,7 @@ public class AuthzImplTest extends TestCase {
// just so AclTag iterates some different types of AclEntrys
}
+
+ private static class MockAclObjectIdentity implements AclObjectIdentity {
+ }
}