diff --git a/acl/pom.xml b/acl/pom.xml index 0f6779916d..1f89807955 100644 --- a/acl/pom.xml +++ b/acl/pom.xml @@ -17,7 +17,7 @@ spring-security-core ${project.version} - +--> org.springframework.security spring-security-core @@ -36,7 +36,7 @@ org.springframework spring-context-support - + org.springframework spring-jdbc @@ -56,13 +56,17 @@ hsqldb test + + org.jmock + jmock-junit4 + - + org.springframework.security.*;version=${pom.version.osgi} - + net.sf.ehcache.*;version="[1.4.1, 2.0.0)";resolution:=optional, org.springframework.security.*;version="[${pom.version.osgi},${pom.version.osgi}]", @@ -79,7 +83,7 @@ !org.springframework.security.* - org.springframework.security.acls - - - \ No newline at end of file + org.springframework.security.acls + + + diff --git a/acl/src/test/java/org/springframework/security/acls/domain/AclImplTests.java b/acl/src/test/java/org/springframework/security/acls/domain/AclImplTests.java index d80c53e557..d53adc80a2 100644 --- a/acl/src/test/java/org/springframework/security/acls/domain/AclImplTests.java +++ b/acl/src/test/java/org/springframework/security/acls/domain/AclImplTests.java @@ -1,11 +1,16 @@ package org.springframework.security.acls.domain; +import static org.junit.Assert.*; + import java.lang.reflect.Field; import java.util.List; import java.util.Map; -import junit.framework.TestCase; - +import org.jmock.Expectations; +import org.jmock.Mockery; +import org.junit.After; +import org.junit.Before; +import org.junit.Test; import org.springframework.security.Authentication; import org.springframework.security.GrantedAuthority; import org.springframework.security.GrantedAuthorityImpl; @@ -29,142 +34,103 @@ import org.springframework.security.context.SecurityContextHolder; import org.springframework.security.providers.TestingAuthenticationToken; import org.springframework.security.util.FieldUtils; + /** * Tests for {@link AclImpl}. - * + * * @author Andrei Stefan */ -public class AclImplTests extends TestCase { +public class AclImplTests { + Authentication auth = new TestingAuthenticationToken("johndoe", "ignored", "ROLE_ADMINISTRATOR"); + Mockery jmockCtx = new Mockery(); + AclAuthorizationStrategy mockAuthzStrategy; + AuditLogger mockAuditLogger; + ObjectIdentity objectIdentity = new ObjectIdentityImpl("org.springframework.security.TargetObject", new Long(100)); + // ~ Methods ======================================================================================================== - @Override - protected void setUp() throws Exception { - super.setUp(); + @Before + public void setUp() throws Exception { + SecurityContextHolder.getContext().setAuthentication(auth); + mockAuthzStrategy = jmockCtx.mock(AclAuthorizationStrategy.class); + mockAuditLogger = jmockCtx.mock(AuditLogger.class);; + jmockCtx.checking(new Expectations() {{ + ignoring(mockAuthzStrategy); + ignoring(mockAuditLogger); + }}); + auth.setAuthenticated(true); } - @Override - protected void tearDown() throws Exception { + @After + public void tearDown() throws Exception { SecurityContextHolder.clearContext(); - super.tearDown(); } - public void testConstructorsRejectNullParameters() throws Exception { - Authentication auth = new TestingAuthenticationToken("johndoe", "ignored", - new GrantedAuthority[] { new GrantedAuthorityImpl("ROLE_ADMINISTRATOR") }); - auth.setAuthenticated(true); - SecurityContextHolder.getContext().setAuthentication(auth); - AclAuthorizationStrategyImpl strategy = new AclAuthorizationStrategyImpl(new GrantedAuthority[] { - new GrantedAuthorityImpl("ROLE_OWNERSHIP"), new GrantedAuthorityImpl("ROLE_AUDITING"), - new GrantedAuthorityImpl("ROLE_GENERAL") }); - AuditLogger auditLogger = new ConsoleAuditLogger(); - ObjectIdentity identity = new ObjectIdentityImpl("org.springframework.security.TargetObject", new Long(100)); - + @Test(expected=IllegalArgumentException.class) + public void testConstructorsRejectNullObjectIdentity() throws Exception { try { - Acl acl = new AclImpl(null, new Long(1), strategy, auditLogger); - fail("It should have thrown IllegalArgumentException"); + new AclImpl(null, new Long(1), mockAuthzStrategy, mockAuditLogger, null, null, true, new PrincipalSid("johndoe")); + fail("Should have thrown IllegalArgumentException"); } catch (IllegalArgumentException expected) { - assertTrue(true); - } - try { - Acl acl = new AclImpl(identity, null, strategy, auditLogger); - fail("It should have thrown IllegalArgumentException"); - } - catch (IllegalArgumentException expected) { - assertTrue(true); - } - try { - Acl acl = new AclImpl(identity, new Long(1), null, auditLogger); - fail("It should have thrown IllegalArgumentException"); - } - catch (IllegalArgumentException expected) { - assertTrue(true); - } - try { - Acl acl = new AclImpl(identity, new Long(1), strategy, null); - fail("It should have thrown IllegalArgumentException"); - } - catch (IllegalArgumentException expected) { - assertTrue(true); - } - try { - Acl acl = new AclImpl(null, new Long(1), strategy, auditLogger, null, null, true, new PrincipalSid("johndoe")); - fail("It should have thrown IllegalArgumentException"); - } - catch (IllegalArgumentException expected) { - assertTrue(true); - } - try { - Acl acl = new AclImpl(identity, null, strategy, auditLogger, null, null, true, new PrincipalSid("johndoe")); - fail("It should have thrown IllegalArgumentException"); - } - catch (IllegalArgumentException expected) { - assertTrue(true); - } - try { - Acl acl = new AclImpl(identity, new Long(1), null, auditLogger, null, null, true, new PrincipalSid("johndoe")); - fail("It should have thrown IllegalArgumentException"); - } - catch (IllegalArgumentException expected) { - assertTrue(true); - } - try { - Acl acl = new AclImpl(identity, new Long(1), strategy, null, null, null, true, new PrincipalSid("johndoe")); - fail("It should have thrown IllegalArgumentException"); - } - catch (IllegalArgumentException expected) { - assertTrue(true); - } - try { - Acl acl = new AclImpl(identity, new Long(1), strategy, auditLogger, null, null, true, null); - fail("It should have thrown IllegalArgumentException"); - } - catch (IllegalArgumentException expected) { - assertTrue(true); } + new AclImpl(null, new Long(1), mockAuthzStrategy, mockAuditLogger); } + @Test(expected=IllegalArgumentException.class) + public void testConstructorsRejectNullId() throws Exception { + try { + new AclImpl(objectIdentity, null, mockAuthzStrategy, mockAuditLogger, null, null, true, new PrincipalSid("johndoe")); + fail("Should have thrown IllegalArgumentException"); + } + catch (IllegalArgumentException expected) { + } + new AclImpl(objectIdentity, null, mockAuthzStrategy, mockAuditLogger); + } + + @Test(expected=IllegalArgumentException.class) + public void testConstructorsRejectNullAclAuthzStrategy() throws Exception { + try { + new AclImpl(objectIdentity, new Long(1), null, mockAuditLogger, null, null, true, new PrincipalSid("johndoe")); + fail("It should have thrown IllegalArgumentException"); + } + catch (IllegalArgumentException expected) { + } + new AclImpl(objectIdentity, new Long(1), null, mockAuditLogger); + } + + @Test(expected=IllegalArgumentException.class) + public void testConstructorsRejectNullAuditLogger() throws Exception { + try { + new AclImpl(objectIdentity, new Long(1), mockAuthzStrategy, null, null, null, true, new PrincipalSid("johndoe")); + fail("It should have thrown IllegalArgumentException"); + } + catch (IllegalArgumentException expected) { + } + new AclImpl(objectIdentity, new Long(1), mockAuthzStrategy, null); + } + + @Test public void testInsertAceRejectsNullParameters() throws Exception { - Authentication auth = new TestingAuthenticationToken("johndoe", "ignored", - new GrantedAuthority[] { new GrantedAuthorityImpl("ROLE_ADMINISTRATOR") }); - auth.setAuthenticated(true); - SecurityContextHolder.getContext().setAuthentication(auth); - AclAuthorizationStrategyImpl strategy = new AclAuthorizationStrategyImpl(new GrantedAuthority[] { - new GrantedAuthorityImpl("ROLE_OWNERSHIP"), new GrantedAuthorityImpl("ROLE_AUDITING"), - new GrantedAuthorityImpl("ROLE_GENERAL") }); - AuditLogger auditLogger = new ConsoleAuditLogger(); - ObjectIdentity identity = new ObjectIdentityImpl("org.springframework.security.TargetObject", new Long(100)); - - MutableAcl acl = new AclImpl(identity, new Long(1), strategy, auditLogger, null, null, true, new PrincipalSid( + MutableAcl acl = new AclImpl(objectIdentity, new Long(1), mockAuthzStrategy, mockAuditLogger, null, null, true, new PrincipalSid( "johndoe")); try { acl.insertAce(0, null, new GrantedAuthoritySid("ROLE_IGNORED"), true); fail("It should have thrown IllegalArgumentException"); } catch (IllegalArgumentException expected) { - assertTrue(true); } try { acl.insertAce(0, BasePermission.READ, null, true); fail("It should have thrown IllegalArgumentException"); } catch (IllegalArgumentException expected) { - assertTrue(true); } } + @Test public void testInsertAceAddsElementAtCorrectIndex() throws Exception { - Authentication auth = new TestingAuthenticationToken("johndoe", "ignored", - new GrantedAuthority[] { new GrantedAuthorityImpl("ROLE_ADMINISTRATOR") }); - auth.setAuthenticated(true); - SecurityContextHolder.getContext().setAuthentication(auth); - AclAuthorizationStrategyImpl strategy = new AclAuthorizationStrategyImpl(new GrantedAuthority[] { - new GrantedAuthorityImpl("ROLE_OWNERSHIP"), new GrantedAuthorityImpl("ROLE_AUDITING"), - new GrantedAuthorityImpl("ROLE_GENERAL") }); - AuditLogger auditLogger = new ConsoleAuditLogger(); - ObjectIdentity identity = new ObjectIdentityImpl("org.springframework.security.TargetObject", new Long(100)); - MutableAcl acl = new AclImpl(identity, new Long(1), strategy, auditLogger, null, null, true, new PrincipalSid( - "johndoe")); + MutableAcl acl = new AclImpl(objectIdentity, new Long(1), mockAuthzStrategy, mockAuditLogger, null, null, true, new PrincipalSid("johndoe")); MockAclService service = new MockAclService(); // Insert one permission @@ -198,17 +164,9 @@ public class AclImplTests extends TestCase { assertEquals(acl.getEntries()[2].getSid(), new GrantedAuthoritySid("ROLE_TEST2")); } + @Test(expected=NotFoundException.class) public void testInsertAceFailsForInexistentElement() throws Exception { - Authentication auth = new TestingAuthenticationToken("johndoe", "ignored", - new GrantedAuthority[] { new GrantedAuthorityImpl("ROLE_ADMINISTRATOR") }); - auth.setAuthenticated(true); - SecurityContextHolder.getContext().setAuthentication(auth); - AclAuthorizationStrategyImpl strategy = new AclAuthorizationStrategyImpl(new GrantedAuthority[] { - new GrantedAuthorityImpl("ROLE_OWNERSHIP"), new GrantedAuthorityImpl("ROLE_AUDITING"), - new GrantedAuthorityImpl("ROLE_GENERAL") }); - AuditLogger auditLogger = new ConsoleAuditLogger(); - ObjectIdentity identity = new ObjectIdentityImpl("org.springframework.security.TargetObject", new Long(100)); - MutableAcl acl = new AclImpl(identity, new Long(1), strategy, auditLogger, null, null, true, new PrincipalSid( + MutableAcl acl = new AclImpl(objectIdentity, new Long(1), mockAuthzStrategy, mockAuditLogger, null, null, true, new PrincipalSid( "johndoe")); MockAclService service = new MockAclService(); @@ -216,26 +174,12 @@ public class AclImplTests extends TestCase { acl.insertAce(0, BasePermission.READ, new GrantedAuthoritySid("ROLE_TEST1"), true); service.updateAcl(acl); - try { - acl.insertAce(55, BasePermission.READ, new GrantedAuthoritySid("ROLE_TEST2"), true); - fail("It should have thrown NotFoundException"); - } - catch (NotFoundException expected) { - assertTrue(true); - } + acl.insertAce(55, BasePermission.READ, new GrantedAuthoritySid("ROLE_TEST2"), true); } + @Test public void testDeleteAceKeepsInitialOrdering() throws Exception { - Authentication auth = new TestingAuthenticationToken("johndoe", "ignored", - new GrantedAuthority[] { new GrantedAuthorityImpl("ROLE_ADMINISTRATOR") }); - auth.setAuthenticated(true); - SecurityContextHolder.getContext().setAuthentication(auth); - AclAuthorizationStrategyImpl strategy = new AclAuthorizationStrategyImpl(new GrantedAuthority[] { - new GrantedAuthorityImpl("ROLE_OWNERSHIP"), new GrantedAuthorityImpl("ROLE_AUDITING"), - new GrantedAuthorityImpl("ROLE_GENERAL") }); - AuditLogger auditLogger = new ConsoleAuditLogger(); - ObjectIdentity identity = new ObjectIdentityImpl("org.springframework.security.TargetObject", new Long(100)); - MutableAcl acl = new AclImpl(identity, new Long(1), strategy, auditLogger, null, null, true, new PrincipalSid( + MutableAcl acl = new AclImpl(objectIdentity, new Long(1), mockAuthzStrategy, mockAuditLogger, null, null, true, new PrincipalSid( "johndoe")); MockAclService service = new MockAclService(); @@ -265,65 +209,49 @@ public class AclImplTests extends TestCase { assertEquals(0, acl.getEntries().length); } + @Test public void testDeleteAceFailsForInexistentElement() throws Exception { - Authentication auth = new TestingAuthenticationToken("johndoe", "ignored", - new GrantedAuthority[] { new GrantedAuthorityImpl("ROLE_ADMINISTRATOR") }); - auth.setAuthenticated(true); - SecurityContextHolder.getContext().setAuthentication(auth); AclAuthorizationStrategyImpl strategy = new AclAuthorizationStrategyImpl(new GrantedAuthority[] { new GrantedAuthorityImpl("ROLE_OWNERSHIP"), new GrantedAuthorityImpl("ROLE_AUDITING"), new GrantedAuthorityImpl("ROLE_GENERAL") }); AuditLogger auditLogger = new ConsoleAuditLogger(); - ObjectIdentity identity = new ObjectIdentityImpl("org.springframework.security.TargetObject", new Long(100)); - MutableAcl acl = new AclImpl(identity, new Long(1), strategy, auditLogger, null, null, true, new PrincipalSid( + MutableAcl acl = new AclImpl(objectIdentity, new Long(1), strategy, auditLogger, null, null, true, new PrincipalSid( "johndoe")); try { acl.deleteAce(99); fail("It should have thrown NotFoundException"); } catch (NotFoundException expected) { - assertTrue(true); } } + @Test public void testIsGrantingRejectsEmptyParameters() throws Exception { - AclAuthorizationStrategyImpl strategy = new AclAuthorizationStrategyImpl(new GrantedAuthority[] { - new GrantedAuthorityImpl("ROLE_OWNERSHIP"), new GrantedAuthorityImpl("ROLE_AUDITING"), - new GrantedAuthorityImpl("ROLE_GENERAL") }); - AuditLogger auditLogger = new ConsoleAuditLogger(); - ObjectIdentity identity = new ObjectIdentityImpl("org.springframework.security.TargetObject", new Long(100)); - MutableAcl acl = new AclImpl(identity, new Long(1), strategy, auditLogger, null, null, true, new PrincipalSid( + MutableAcl acl = new AclImpl(objectIdentity, new Long(1), mockAuthzStrategy, mockAuditLogger, null, null, true, new PrincipalSid( "johndoe")); - try { acl.isGranted(new Permission[] {}, new Sid[] { new PrincipalSid("ben") }, false); fail("It should have thrown IllegalArgumentException"); } catch (IllegalArgumentException expected) { - assertTrue(true); } try { acl.isGranted(new Permission[] { BasePermission.READ }, new Sid[] {}, false); fail("It should have thrown IllegalArgumentException"); } catch (IllegalArgumentException expected) { - assertTrue(true); } } + @Test public void testIsGrantingGrantsAccessForAclWithNoParent() throws Exception { - Authentication auth = new TestingAuthenticationToken("ben", "ignored", new GrantedAuthority[] { - new GrantedAuthorityImpl("ROLE_GENERAL"), new GrantedAuthorityImpl("ROLE_GUEST") }); + Authentication auth = new TestingAuthenticationToken("ben", "ignored", "ROLE_GENERAL","ROLE_GUEST"); auth.setAuthenticated(true); SecurityContextHolder.getContext().setAuthentication(auth); - AclAuthorizationStrategyImpl strategy = new AclAuthorizationStrategyImpl(new GrantedAuthority[] { - new GrantedAuthorityImpl("ROLE_OWNERSHIP"), new GrantedAuthorityImpl("ROLE_AUDITING"), - new GrantedAuthorityImpl("ROLE_GENERAL") }); - AuditLogger auditLogger = new ConsoleAuditLogger(); ObjectIdentity rootOid = new ObjectIdentityImpl("org.springframework.security.TargetObject", new Long(100)); // Create an ACL which owner is not the authenticated principal - MutableAcl rootAcl = new AclImpl(rootOid, new Long(1), strategy, auditLogger, null, null, false, new PrincipalSid( + MutableAcl rootAcl = new AclImpl(rootOid, new Long(1), mockAuthzStrategy, mockAuditLogger, null, null, false, new PrincipalSid( "johndoe")); // Grant some permissions @@ -341,7 +269,6 @@ public class AclImplTests extends TestCase { fail("It should have thrown NotFoundException"); } catch (NotFoundException expected) { - assertTrue(true); } assertTrue(rootAcl.isGranted(new Permission[] { BasePermission.WRITE }, new Sid[] { new PrincipalSid("scott") }, false)); @@ -356,19 +283,14 @@ public class AclImplTests extends TestCase { fail("It should have thrown NotFoundException"); } catch (NotFoundException expected) { - assertTrue(true); } } + @Test public void testIsGrantingGrantsAccessForInheritableAcls() throws Exception { - Authentication auth = new TestingAuthenticationToken("ben", "ignored", - new GrantedAuthority[] { new GrantedAuthorityImpl("ROLE_GENERAL") }); + Authentication auth = new TestingAuthenticationToken("ben", "ignored","ROLE_GENERAL"); auth.setAuthenticated(true); SecurityContextHolder.getContext().setAuthentication(auth); - AclAuthorizationStrategyImpl strategy = new AclAuthorizationStrategyImpl(new GrantedAuthority[] { - new GrantedAuthorityImpl("ROLE_OWNERSHIP"), new GrantedAuthorityImpl("ROLE_AUDITING"), - new GrantedAuthorityImpl("ROLE_GENERAL") }); - AuditLogger auditLogger = new ConsoleAuditLogger(); ObjectIdentity grandParentOid = new ObjectIdentityImpl("org.springframework.security.TargetObject", new Long(100)); ObjectIdentity parentOid1 = new ObjectIdentityImpl("org.springframework.security.TargetObject", new Long(101)); ObjectIdentity parentOid2 = new ObjectIdentityImpl("org.springframework.security.TargetObject", new Long(102)); @@ -376,15 +298,15 @@ public class AclImplTests extends TestCase { ObjectIdentity childOid2 = new ObjectIdentityImpl("org.springframework.security.TargetObject", new Long(104)); // Create ACLs - MutableAcl grandParentAcl = new AclImpl(grandParentOid, new Long(1), strategy, auditLogger, null, null, false, + MutableAcl grandParentAcl = new AclImpl(grandParentOid, new Long(1), mockAuthzStrategy, mockAuditLogger, null, null, false, new PrincipalSid("johndoe")); - MutableAcl parentAcl1 = new AclImpl(parentOid1, new Long(2), strategy, auditLogger, null, null, true, + MutableAcl parentAcl1 = new AclImpl(parentOid1, new Long(2), mockAuthzStrategy, mockAuditLogger, null, null, true, new PrincipalSid("johndoe")); - MutableAcl parentAcl2 = new AclImpl(parentOid2, new Long(3), strategy, auditLogger, null, null, true, + MutableAcl parentAcl2 = new AclImpl(parentOid2, new Long(3), mockAuthzStrategy, mockAuditLogger, null, null, true, new PrincipalSid("johndoe")); - MutableAcl childAcl1 = new AclImpl(childOid1, new Long(4), strategy, auditLogger, null, null, true, + MutableAcl childAcl1 = new AclImpl(childOid1, new Long(4), mockAuthzStrategy, mockAuditLogger, null, null, true, new PrincipalSid("johndoe")); - MutableAcl childAcl2 = new AclImpl(childOid2, new Long(4), strategy, auditLogger, null, null, false, + MutableAcl childAcl2 = new AclImpl(childOid2, new Long(4), mockAuthzStrategy, mockAuditLogger, null, null, false, new PrincipalSid("johndoe")); // Create hierarchies @@ -450,17 +372,12 @@ public class AclImplTests extends TestCase { } } + @Test public void testUpdateAce() throws Exception { - Authentication auth = new TestingAuthenticationToken("ben", "ignored", - new GrantedAuthority[] { new GrantedAuthorityImpl("ROLE_GENERAL") }); + Authentication auth = new TestingAuthenticationToken("ben", "ignored","ROLE_GENERAL"); auth.setAuthenticated(true); SecurityContextHolder.getContext().setAuthentication(auth); - AclAuthorizationStrategyImpl strategy = new AclAuthorizationStrategyImpl(new GrantedAuthority[] { - new GrantedAuthorityImpl("ROLE_OWNERSHIP"), new GrantedAuthorityImpl("ROLE_AUDITING"), - new GrantedAuthorityImpl("ROLE_GENERAL") }); - AuditLogger auditLogger = new ConsoleAuditLogger(); - ObjectIdentity identity = new ObjectIdentityImpl("org.springframework.security.TargetObject", new Long(100)); - MutableAcl acl = new AclImpl(identity, new Long(1), strategy, auditLogger, null, null, false, new PrincipalSid( + MutableAcl acl = new AclImpl(objectIdentity, new Long(1), mockAuthzStrategy, mockAuditLogger, null, null, false, new PrincipalSid( "johndoe")); MockAclService service = new MockAclService(); @@ -484,17 +401,12 @@ public class AclImplTests extends TestCase { assertEquals(acl.getEntries()[2].getPermission(), BasePermission.READ); } + @Test public void testUpdateAuditing() throws Exception { - Authentication auth = new TestingAuthenticationToken("ben", "ignored", new GrantedAuthority[] { - new GrantedAuthorityImpl("ROLE_AUDITING"), new GrantedAuthorityImpl("ROLE_GENERAL") }); + Authentication auth = new TestingAuthenticationToken("ben", "ignored", "ROLE_AUDITING", "ROLE_GENERAL"); auth.setAuthenticated(true); SecurityContextHolder.getContext().setAuthentication(auth); - AclAuthorizationStrategyImpl strategy = new AclAuthorizationStrategyImpl(new GrantedAuthority[] { - new GrantedAuthorityImpl("ROLE_OWNERSHIP"), new GrantedAuthorityImpl("ROLE_AUDITING"), - new GrantedAuthorityImpl("ROLE_GENERAL") }); - AuditLogger auditLogger = new ConsoleAuditLogger(); - ObjectIdentity identity = new ObjectIdentityImpl("org.springframework.security.TargetObject", new Long(100)); - MutableAcl acl = new AclImpl(identity, new Long(1), strategy, auditLogger, null, null, false, new PrincipalSid( + MutableAcl acl = new AclImpl(objectIdentity, new Long(1), mockAuthzStrategy, mockAuditLogger, null, null, false, new PrincipalSid( "johndoe")); MockAclService service = new MockAclService(); @@ -518,54 +430,50 @@ public class AclImplTests extends TestCase { assertTrue(((AuditableAccessControlEntry) acl.getEntries()[1]).isAuditSuccess()); } + @Test public void testGettersSetters() throws Exception { Authentication auth = new TestingAuthenticationToken("ben", "ignored", new GrantedAuthority[] { new GrantedAuthorityImpl("ROLE_GENERAL") }); auth.setAuthenticated(true); SecurityContextHolder.getContext().setAuthentication(auth); - AclAuthorizationStrategyImpl strategy = new AclAuthorizationStrategyImpl(new GrantedAuthority[] { - new GrantedAuthorityImpl("ROLE_GENERAL"), new GrantedAuthorityImpl("ROLE_GENERAL"), - new GrantedAuthorityImpl("ROLE_GENERAL") }); - AuditLogger auditLogger = new ConsoleAuditLogger(); ObjectIdentity identity = new ObjectIdentityImpl("org.springframework.security.TargetObject", new Long(100)); ObjectIdentity identity2 = new ObjectIdentityImpl("org.springframework.security.TargetObject", new Long(101)); - MutableAcl acl = new AclImpl(identity, new Long(1), strategy, auditLogger, null, null, true, new PrincipalSid( + MutableAcl acl = new AclImpl(identity, new Long(1), mockAuthzStrategy, mockAuditLogger, null, null, true, new PrincipalSid( "johndoe")); - MutableAcl parentAcl = new AclImpl(identity2, new Long(2), strategy, auditLogger, null, null, true, new PrincipalSid( + MutableAcl parentAcl = new AclImpl(identity2, new Long(2), mockAuthzStrategy, mockAuditLogger, null, null, true, new PrincipalSid( "johndoe")); MockAclService service = new MockAclService(); acl.insertAce(0, BasePermission.READ, new GrantedAuthoritySid("ROLE_USER_READ"), true); acl.insertAce(1, BasePermission.WRITE, new GrantedAuthoritySid("ROLE_USER_READ"), true); service.updateAcl(acl); - + assertEquals(acl.getId(), new Long(1)); assertEquals(acl.getObjectIdentity(), identity); assertEquals(acl.getOwner(), new PrincipalSid("johndoe")); assertNull(acl.getParentAcl()); assertTrue(acl.isEntriesInheriting()); assertEquals(2, acl.getEntries().length); - + acl.setParent(parentAcl); assertEquals(acl.getParentAcl(), parentAcl); - + acl.setEntriesInheriting(false); assertFalse(acl.isEntriesInheriting()); - + ((OwnershipAcl) acl).setOwner(new PrincipalSid("ben")); assertEquals(acl.getOwner(), new PrincipalSid("ben")); } - + + @Test public void testIsSidLoaded() throws Exception { AclAuthorizationStrategyImpl strategy = new AclAuthorizationStrategyImpl(new GrantedAuthority[] { new GrantedAuthorityImpl("ROLE_GENERAL"), new GrantedAuthorityImpl("ROLE_GENERAL"), new GrantedAuthorityImpl("ROLE_GENERAL") }); AuditLogger auditLogger = new ConsoleAuditLogger(); - ObjectIdentity identity = new ObjectIdentityImpl("org.springframework.security.TargetObject", new Long(100)); - Sid[] loadedSids = new Sid[] { new PrincipalSid("ben"), new GrantedAuthoritySid("ROLE_IGNORED") }; - MutableAcl acl = new AclImpl(identity, new Long(1), strategy, auditLogger, null, loadedSids, true, new PrincipalSid( + MutableAcl acl = new AclImpl(objectIdentity, new Long(1), mockAuthzStrategy, mockAuditLogger, null, loadedSids, true, new PrincipalSid( "johndoe")); - + assertTrue(acl.isSidLoaded(loadedSids)); assertTrue(acl.isSidLoaded(new Sid[] { new GrantedAuthoritySid("ROLE_IGNORED"), new PrincipalSid("ben") })); assertTrue(acl.isSidLoaded(new Sid[] { new GrantedAuthoritySid("ROLE_IGNORED")})); @@ -576,8 +484,8 @@ public class AclImplTests extends TestCase { assertFalse(acl.isSidLoaded(new Sid[] { new GrantedAuthoritySid("ROLE_GENERAL"), new GrantedAuthoritySid("ROLE_IGNORED") })); assertFalse(acl.isSidLoaded(new Sid[] { new GrantedAuthoritySid("ROLE_IGNORED"), new GrantedAuthoritySid("ROLE_GENERAL") })); } - - // ~ Inner Classes ================================================================================================== + + //~ Inner Classes ================================================================================================== private class MockAclService implements MutableAclService { public MutableAcl createAcl(ObjectIdentity objectIdentity) throws AlreadyExistsException {