shiro缓存管理和session管理

shiro中提供了对认证和授权的缓存,shiro是默认开始授权缓存而关闭认证缓存的

在SecurityManager中需要这个参数

项目一

	
	
		
		
		
	
项目二


		
		
		
		
		
		
		
		
	
可以使用不同的缓存

cacheManager



    	
    
redis

	
	    
	

redisManager 就是一个简单的数据库连接

	
	   
		
		
		
		
		
		
		
		
		
		
		
	

缓存清空

如果用户正常退出 缓存清空

如果用户非正常退出比如关闭浏览器 缓存清空

如果session到期,缓存清空,设置一般在缓存的配置文件中

如果修改了用户的权限,而用户不退出系统,修改的权限不会生效,需要手动调用realm的clearCache方法清除

	public void clearCached() {
		PrincipalCollection principals = SecurityUtils.getSubject().getPrincipals();
		super.clearCache(principals);
	}
redis

	public static void remove(String cacheName, String key) {
//		getCache(cacheName).remove(key);
		RedisUtils.removeCache(key);
	}
	public static void removeCache(String key){
//		LOGGER.debug("根据key从redis中删除对象 key [" + key + "]");
		cacheManager.del(key.getBytes());
	}
注意 这些方法一般情况下修改用户权限都是在Service当中所以应该在service中调用清空缓存的方法

还可以在SecurityManager中配置Sessionmanager,配制方法增加property属性

	
	 
		
		
		
		
		
		
		

 		
 		
		
		
	


    
        
        
        
        
    

shiro管理session,shiro提供了sessionDao操作

	
	
		
		
		
	


你可能感兴趣的:(shiro)