Browse Source

SEC-1054: Add method "clear" to interface AclCache. As requested.

Luke Taylor 16 years ago
parent
commit
766aca885b

+ 2 - 0
acl/src/main/java/org/springframework/security/acls/jdbc/AclCache.java

@@ -39,4 +39,6 @@ public interface AclCache {
     MutableAcl getFromCache(Serializable pk);
 
     void putInCache(MutableAcl acl);
+
+    void clearCache();
 }

+ 6 - 2
acl/src/main/java/org/springframework/security/acls/jdbc/EhCacheBasedAclCache.java

@@ -31,7 +31,7 @@ import org.springframework.util.Assert;
 
 /**
  * Simple implementation of {@link AclCache} that delegates to EH-CACHE.
- * 
+ *
  * <p>
  * Designed to handle the transient fields in {@link AclImpl}. Note that this implementation assumes all
  * {@link AclImpl} instances share the same {@link AuditLogger} and {@link AclAuthorizationStrategy} instance.
@@ -121,7 +121,7 @@ public class EhCacheBasedAclCache implements AclCache {
                 this.auditLogger = (AuditLogger) FieldUtils.getProtectedFieldValue("auditLogger", acl);
             }
         }
-        
+
         if ((acl.getParentAcl() != null) && (acl.getParentAcl() instanceof MutableAcl)) {
             putInCache((MutableAcl) acl.getParentAcl());
         }
@@ -137,4 +137,8 @@ public class EhCacheBasedAclCache implements AclCache {
         }
         return value;
     }
+
+    public void clearCache() {
+        cache.removeAll();
+    }
 }