Răsfoiți Sursa

Extracted removeUserFromCache(String) to UserCache interface.

Ben Alex 21 ani în urmă
părinte
comite
eb9c7d0852

+ 1 - 0
changelog.txt

@@ -3,6 +3,7 @@ Changes in version 0.x (2004-xx-xx)
 
 * Added additional DaoAuthenticationProvider event when user not found
 * Added Authentication.getDetails() to DaoAuthenticationProvider response
+* Extracted removeUserFromCache(String) to UserCache interface
 * Fixed EH-CACHE-based caching implementation behaviour when cache exists
 * Fixed Ant "release" target not including project.properties
 * Documentation improvements

+ 16 - 0
core/src/main/java/org/acegisecurity/providers/dao/UserCache.java

@@ -54,4 +54,20 @@ public interface UserCache {
      *        cache
      */
     public void putUserInCache(UserDetails user);
+
+    /**
+     * Removes the specified user from the cache. The <code>username</code> is
+     * the key used to remove the user. If the user is not found, the method
+     * should simply return (not thrown an exception).
+     * 
+     * <P>
+     * Some cache implementations may not support eviction from the cache,  in
+     * which case they should provide appropriate behaviour to alter the user
+     * in either its documentation, via an exception, or through a log
+     * message.
+     * </p>
+     *
+     * @param username to be evicted from the cache
+     */
+    public void removeUserFromCache(String username);
 }

+ 2 - 0
core/src/main/java/org/acegisecurity/providers/dao/cache/NullUserCache.java

@@ -33,4 +33,6 @@ public class NullUserCache implements UserCache {
     }
 
     public void putUserInCache(UserDetails user) {}
+
+    public void removeUserFromCache(String username) {}
 }

+ 2 - 0
core/src/test/java/org/acegisecurity/providers/dao/DaoAuthenticationProviderTests.java

@@ -354,5 +354,7 @@ public class DaoAuthenticationProviderTests extends TestCase {
         public void putUserInCache(UserDetails user) {
             cache.put(user.getUsername(), user);
         }
+
+        public void removeUserFromCache(String username) {}
     }
 }

+ 1 - 0
core/src/test/java/org/acegisecurity/providers/dao/cache/NullUserCacheTests.java

@@ -53,6 +53,7 @@ public class NullUserCacheTests extends TestCase {
         NullUserCache cache = new NullUserCache();
         cache.putUserInCache(getUser());
         assertNull(cache.getUserFromCache(null));
+        cache.removeUserFromCache(null);
     }
 
     private User getUser() {