这里提供两种清除用户缓存的方法
1、通过ehcache清除缓存(已验证)
这种方法简单明了,适合对cache比较了解的人
思路:从shiroCacheManager获取用户的认证缓存,以及权限缓存,然后根据principal(username等可以确定用户信息的key,在配置shiro的时候由用户指定)对cache进行remove操作。
代码:
@Resource(name = "shiroCacheManager")
private CacheManager shiroCacheManager;
@Override
public void removeUserAuthorization(String userName) {
Cache<SimplePrincipalCollection, Object> cache = shiroCacheManager.getCache("authorizationCache");
if (cache == null) {
throw ApplicationExceptionFactory.getSyncApplicationException(90014);
}
cache.remove(new SimplePrincipalCollection(userName, USER_REALM_NAME));
}
这里需要注意一点,就是这里 cache.remove(new SimplePrincipalCollection(userName,USER