Closed chinesejie closed 10 years ago
很感谢你写了这么一篇教程,让入门者得益。我遇到这么一个问题,项目用了ehcache,作为管理员打算删除用户A的权限,这时候修改了数据库用户A的之后,需要删除用户A的AuthorizationInfo cache。但是管理员拿不到用户A的principal,我暂时用了这招来删除。 public class ShiroDbRealm extends AuthorizingRealm { public void clearSomeoneCachedAuthorizationInfo(String username) { //用户名肯定是唯一的 Cache<Object, AuthorizationInfo> cache = getAuthorizationCache();
Object k = null; if (cache != null) { for (Object key : cache.keys()) { if (key.toString().equals(username)) { k = key; break; } } cache.remove(k); } }
} 但是我觉得这种遍历的方法很差劲,其次也没有考虑到对cache加锁。你有更好的建议吗?或者shiro已经内置了更好的api可以处理这种需求。 望告知,谢谢
我记得后边有例子讲这个 你看下
很感谢你写了这么一篇教程,让入门者得益。我遇到这么一个问题,项目用了ehcache,作为管理员打算删除用户A的权限,这时候修改了数据库用户A的之后,需要删除用户A的AuthorizationInfo cache。但是管理员拿不到用户A的principal,我暂时用了这招来删除。 public class ShiroDbRealm extends AuthorizingRealm { public void clearSomeoneCachedAuthorizationInfo(String username) { //用户名肯定是唯一的 Cache<Object, AuthorizationInfo> cache = getAuthorizationCache();
} 但是我觉得这种遍历的方法很差劲,其次也没有考虑到对cache加锁。你有更好的建议吗?或者shiro已经内置了更好的api可以处理这种需求。 望告知,谢谢