Browse Source

SEC-1519: Added extra constructor to make sure strategy objects are initialized before the first attempt to retrieve an object from the Acl cache.

Luke Taylor 15 năm trước cách đây
mục cha
commit
97bc240602

+ 14 - 0
acl/src/main/java/org/springframework/security/acls/domain/EhCacheBasedAclCache.java

@@ -46,11 +46,25 @@ public class EhCacheBasedAclCache implements AclCache {
 
     //~ Constructors ===================================================================================================
 
+    /**
+     * @deprecated use the second constructor which injects the strategy objects. See SEC-1498.
+     */
+    @Deprecated
     public EhCacheBasedAclCache(Ehcache cache) {
         Assert.notNull(cache, "Cache required");
         this.cache = cache;
     }
 
+    public EhCacheBasedAclCache(Ehcache cache, PermissionGrantingStrategy permissionGrantingStrategy,
+            AclAuthorizationStrategy aclAuthorizationStrategy) {
+        Assert.notNull(cache, "Cache required");
+        Assert.notNull(permissionGrantingStrategy, "PermissionGrantingStrategy required");
+        Assert.notNull(aclAuthorizationStrategy, "AclAuthorizationStrategy required");
+        this.cache = cache;
+        this.permissionGrantingStrategy = permissionGrantingStrategy;
+        this.aclAuthorizationStrategy = aclAuthorizationStrategy;
+    }
+
     //~ Methods ========================================================================================================
 
     public void evictFromCache(Serializable pk) {