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 { + } }