Преглед на файлове

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 години
родител
ревизия
97bc240602
променени са 1 файла, в които са добавени 14 реда и са изтрити 0 реда
  1. 14 0
      acl/src/main/java/org/springframework/security/acls/domain/EhCacheBasedAclCache.java

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