Shiro 整合 Redis

Shiro 整合 Redis

前言

Shiro 、Redis简介

Shiro apache 出品的权限管理框架、Redis 基于内存的 NoSQL(非关系型数据库)非常适合作为 缓存使用

配置

目前已有Shiro 整合 Redis的项目 我们只需要 引入依赖,稍微配置一下即可使用

依赖

在已有Shiro配置的前提下 加入Shiro redis 依赖

        org.crazycakeshiro-redis2.4.2.1-RELEASEjedisredis.clientsredis.clientsjedis2.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 修饰了


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部