From 3f87849f31b0ffd0890aa3dd624b5ec86f85b433 Mon Sep 17 00:00:00 2001 From: Ben Alex Date: Mon, 23 Aug 2004 02:03:46 +0000 Subject: [PATCH] Fixed GrantedAuthorityEffectiveAclsResolver if null ACLs provided to method. --- changelog.txt | 1 + .../acl/basic/GrantedAuthorityEffectiveAclsResolver.java | 4 ++++ .../basic/GrantedAuthorityEffectiveAclsResolverTests.java | 5 +++++ 3 files changed, 10 insertions(+) diff --git a/changelog.txt b/changelog.txt index efe7721445..636bc4e8e6 100644 --- a/changelog.txt +++ b/changelog.txt @@ -6,6 +6,7 @@ Changes in version 0.x (2004-xx-xx) * Extracted removeUserFromCache(String) to UserCache interface * Fixed EH-CACHE-based caching implementation behaviour when cache exists * Fixed Ant "release" target not including project.properties +* Fixed GrantedAuthorityEffectiveAclsResolver if null ACLs provided to method * Documentation improvements Changes in version 0.6 (2004-08-09) diff --git a/core/src/main/java/org/acegisecurity/acl/basic/GrantedAuthorityEffectiveAclsResolver.java b/core/src/main/java/org/acegisecurity/acl/basic/GrantedAuthorityEffectiveAclsResolver.java index d98e9760f9..9a9ccf8a5a 100644 --- a/core/src/main/java/org/acegisecurity/acl/basic/GrantedAuthorityEffectiveAclsResolver.java +++ b/core/src/main/java/org/acegisecurity/acl/basic/GrantedAuthorityEffectiveAclsResolver.java @@ -59,6 +59,10 @@ public class GrantedAuthorityEffectiveAclsResolver public AclEntry[] resolveEffectiveAcls(AclEntry[] allAcls, Authentication filteredBy) { + if ((allAcls == null) || (allAcls.length == 0)) { + return null; + } + List list = new Vector(); for (int i = 0; i < allAcls.length; i++) { diff --git a/core/src/test/java/org/acegisecurity/acl/basic/GrantedAuthorityEffectiveAclsResolverTests.java b/core/src/test/java/org/acegisecurity/acl/basic/GrantedAuthorityEffectiveAclsResolverTests.java index 1d2a9631df..ba8babc322 100644 --- a/core/src/test/java/org/acegisecurity/acl/basic/GrantedAuthorityEffectiveAclsResolverTests.java +++ b/core/src/test/java/org/acegisecurity/acl/basic/GrantedAuthorityEffectiveAclsResolverTests.java @@ -104,6 +104,11 @@ public class GrantedAuthorityEffectiveAclsResolverTests extends TestCase { resolver.resolveEffectiveAcls(acls, scott)[2]); } + public void testResolveAclsReturnsNullIfNoAclsInFirstPlace() { + GrantedAuthorityEffectiveAclsResolver resolver = new GrantedAuthorityEffectiveAclsResolver(); + assertNull(resolver.resolveEffectiveAcls(null, scott)); + } + public void testSkipsNonBasicAclEntryObjects() { GrantedAuthorityEffectiveAclsResolver resolver = new GrantedAuthorityEffectiveAclsResolver(); AclEntry[] basicAcls = {entry100Marissa, entry100Scott, entry100RoleEverybody, entry100RoleOne, new MockAcl(), entry100RoleTwo};