Shiro 整合 Redis
Shiro 整合 Redis
前言
Shiro 、Redis简介
Shiro apache 出品的权限管理框架、Redis 基于内存的 NoSQL(非关系型数据库)非常适合作为 缓存使用
配置
目前已有Shiro 整合 Redis的项目 我们只需要 引入依赖,稍微配置一下即可使用
依赖
在已有Shiro配置的前提下 加入Shiro redis 依赖
org.crazycake shiro-redis 2.4.2.1-RELEASE jedis redis.clients redis.clients jedis 2.9.0
整合Redis配置
@Beanpublic RedisManager initRedisManager(){RedisManager redisManager = new RedisManager();redisManager.setHost("127.0.0.1");redisManager.setPort(6379);return redisManager;}@Beanpublic RedisCacheManager initRedisCacheManager(RedisManager redisManager){RedisCacheManager redisCacheManager = new RedisCacheManager();redisCacheManager.setRedisManager(redisManager);return redisCacheManager;}@Beanpublic DefaultSecurityManager securityManager(Realm realm,RedisCacheManager redisCacheManager) {DefaultSecurityManager securityManager = new DefaultWebSecurityManager();securityManager.setRealm(realm);//添加缓存管理securityManager.setCacheManager(redisCacheManager);return securityManager;}
测试
访问带有权限限制的接口,如果同一个用户多次访问 查询权限的SQL只执行了一次 就成功了
注意
如果出现如下 错误,需要将 jedis 排除,重新依赖其他版本jedis
org.apache.shiro.cache.CacheException: java.lang.IllegalAccessError: tried to access method redis.clients.jedis.JedisPool.returnResource(Lredis/clients/jedis/Jedis;)V from class org.crazycake.shiro.RedisManager
出现这个异常是因为 redis.clients.jedis.JedisPool.returnResource 方法改用 protected 修饰了
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!
