فهرست منبع

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