在添加权限控制后,添加方法 查看

当用户访问”获取用户信息”、”新增用户”和”删除用户”的时,后台输出打印如下信息 ,

Druid数据源SQL监控

为了避免频繁访问数据库获取权限信息,在Shiro中加入缓存

缓存有基于Redis和Ehcache的

基于Redis

1.Shiro集成Redis的引入依赖

  1. <dependency>
  2. <groupId>org.crazycake</groupId>
  3. <artifactId>shiro-redis</artifactId>
  4. </dependency>

2.Redis配置

  1. spring.redis.host=localhost
  2. spring.redis.port=6379
  3. spring.redis.jedis.pool.max-active=8
  4. spring.redis.jedis.pool.max-wait=-1
  5. spring.redis.jedis.pool.max-idle=8
  6. spring.redis.jedis.pool.min-idle=0
  7. spring.redis.timeout=0

3.在ShiroConfig中配置Redis

  1. public RedisManager redisManager() {
  2. RedisManager redisManager = new RedisManager();
  3. return redisManager;
  4. }
  5.  
  6. public RedisCacheManager cacheManager() {
  7. RedisCacheManager redisCacheManager = new RedisCacheManager();
  8. redisCacheManager.setRedisManager(redisManager());
  9. return redisCacheManager;
  10. }

在SecurityManager中加入RedisCacheManager

  1. @Bean
  2. public SecurityManager securityManager() {
  3. DefaultWebSecurityManager securityManager = new DefaultWebSecurityManager();
  4. ……
  5. securityManager.setCacheManager(cacheManager());
  6. return securityManager;
  7. }

4.测试

启动项目

访问访问”获取用户信息”、”新增用户”和”删除用户”,后台只打印一次获取权限信息

Druid数据源SQL监控

基于Ehcache

1.添加依赖

  1. <!-- shiro ehcache -->
  2. <dependency>
  3. <groupId>org.apache.shiro</groupId>
  4. <artifactId>shiro-ehcache</artifactId>
  5. <version>1.4.1</version>
  6. </dependency>
  7. <!-- ehchache -->
  8. <dependency>
  9. <groupId>org.springframework.boot</groupId>
  10. <artifactId>spring-boot-starter-cache</artifactId>
  11. </dependency>
  12. <dependency>
  13. <groupId>net.sf.ehcache</groupId>
  14. <artifactId>ehcache</artifactId>
  15. </dependency>

2.添加配置

src\main\resources\config下添加shiro-ehcache.xml

  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <ehcache xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  3. xsi:noNamespaceSchemaLocation="http://ehcache.org/ehcache.xsd"
  4. updateCheck="false">
  5. <diskStore path="java.io.tmpdir/Tmp_EhCache"/>
  6. <defaultCache
  7. maxElementsInMemory="10000"
  8. eternal="false"
  9. timeToIdleSeconds="120"
  10. timeToLiveSeconds="120"
  11. overflowToDisk="false"
  12. diskPersistent="false"
  13. diskExpiryThreadIntervalSeconds="120"/>
  14.  
  15. <!-- 登录记录缓存锁定1小时 -->
  16. <cache
  17. name="passwordRetryCache"
  18. maxEntriesLocalHeap="2000"
  19. eternal="false"
  20. timeToIdleSeconds="3600"
  21. timeToLiveSeconds="0"
  22. overflowToDisk="false"
  23. statistics="true"/>
  24. </ehcache>

3.在ShiroConfig中

  注入Ehcache缓存

  添加getEhCacheManager()

  1. @Bean
  2. public EhCacheManager getEhCacheManager() {
  3. EhCacheManager em = new EhCacheManager();
  4. em.setCacheManagerConfigFile("classpath:config/shiro-ehcache.xml");
  5. return em;
  6. }

  将缓存对象注入到SecurityManager中

  修改securityManager()

  1. @Bean
  2. public SecurityManager securityManager() {
  3. DefaultWebSecurityManager securityManager = new DefaultWebSecurityManager();
  4. securityManager.setRealm(myShiroRealm());
  5. securityManager.setRememberMeManager(rememberMeManager());
  6. securityManager.setCacheManager(getEhCacheManager());
  7. return securityManager;
  8. }

4.测试

  启动项目,分别访问访问”获取用户信息”、”新增用户”,只获取一次权限信息

Spring boot后台搭建二为Shiro权限控制添加缓存的更多相关文章

  1. Spring boot后台搭建二集成Shiro权限控制

    上一篇文章,实现了用户验证 查看,接下来实现下权限控制 权限控制,是管理资源访问的过程,用于对用户进行的操作授权,证明该用户是否允许进行当前操作,如访问某个链接,某个资源文件等 Apache Shir ...

  2. Spring boot后台搭建二集成Shiro实现用户验证

    上一篇文章中介绍了Shiro 查看 将Shiro集成到spring boot的步骤: (1)定义一个ShiroConfig,配置SecurityManager Bean,SecurityManager ...

  3. Spring boot后台搭建一使用MyBatis集成Mapper和PageHelper

    目标: 使用 Spring  boot+MyBatis+mysql 集成 Mapper 和 PageHelper,实现基本的增删改查 先建一个基本的 Spring Boot 项目开启 Spring B ...

  4. Spring boot后台搭建二集成Shiro添加Remember Me

    上一片文章实现了用户验证  查看 当用户成功登录后,关闭浏览器,重新打开浏览器访问http://localhost:8080,页面会跳转到登录页,因为浏览器的关闭后之前的登录已失效 Shiro提供了R ...

  5. yii2搭建完美后台并实现rbac权限控制实例教程

    1.安装yii2 未安装的请参考yii2史上最简单式安装教程,没有之一 或者参考yii2实战教程之详细安装步骤 已安装的请继续看下一步操作 2.配置数据库 2.1 配置数据库 修改common/con ...

  6. shiro权限控制入门

    一:权限控制两种主要方式 粗粒度 URL 级别权限控制和细粒度方法级别权限控制 1.粗粒度 URL 级别权限控制 可以基于 Filter 实现在数据库中存放 用户.权限.访问 URL 对应关系, 当前 ...

  7. Spring Boot 最简单整合Shiro+JWT方式

    简介 目前RESTful大多都采用JWT来做授权校验,在Spring Boot 中可以采用Shiro和JWT来做简单的权限以及认证验证,在和Spring Boot集成的过程中碰到了不少坑.便结合自身以 ...

  8. Spring Boot+CXF搭建WebService(转)

    概述 最近项目用到在Spring boot下搭建WebService服务,对Java语言下的WebService了解甚少,而今抽个时间查阅资料整理下Spring Boot结合CXF打架WebServi ...

  9. 2017.2.13 开涛shiro教程-第十二章-与Spring集成(二)shiro权限注解

    原博客地址:http://jinnianshilongnian.iteye.com/blog/2018398 根据下载的pdf学习. 第十二章-与Spring集成(二)shiro权限注解 shiro注 ...

随机推荐

  1. 运维笔试Python编程题

    一.用Python语言把列表[1,3,5,7,9]倒序并将元素变为字符类型,请写出多种方法: 第一种方法: list = [1, 3, 5, 7, 9] list.reverse() list2 = ...

  2. Python 利用函数、列表来实现计算天数

    这几天课程学习了列表的操作,结合以前的函数知识,编写了一个能够判断天数的代码 源码如下 def is_year(year): return year % 4 == 0 and year % 100 ! ...

  3. 《逆袭团队》第九次团队作业【Beta】Scrum meeting 3

    项目 内容 软件工程 任课教师博客主页链接 作业链接地址 团队作业9:Beta冲刺与团队项目验收 团队名称 逆袭团队 具体目标 (1)掌握软件黑盒测试技术:(2)学会编制软件项目总结PPT.项目验收报 ...

  4. 深度学习Keras框架笔记之Activation类使用

    使用 keras.layers.core.Activation(activation) Apply an activation function tothe input.(貌似是把激活函数应用到输入数 ...

  5. 大数据开发keras框架环境配置小结

    系统安装问题 win10+ubuntu16.04 在win10在需要security boot设置成disable,否则安装完后无法设置启动项. 安装完ubuntu重启,系统会直接进入win10,需要 ...

  6. JAVA 启动服务命令

    java -Xdebug -Xrunjdwp:server=y,transport=dt_socket,address=7301,suspend=n -Xms2048m -Xmx4096m -XX:+ ...

  7. 数据分析 - Numpy

    简介 Numpy是高性能科学计算和数据分析的基础包.它也是pandas等其他数据分析的工具的基础,基本所有数据分析的包都用过它.NumPy为Python带来了真正的多维数组功能,并且提供了丰富的函数库 ...

  8. Stirling数入门

    第一类Stirling数 定义 $$\begin{aligned}(x)_n & =x(x-1)...(x-n+1)\\&= s(n, 0) + s(n,1)x +..+s(n,n)x ...

  9. 洛谷 P3469 [POI2008]BLO-Blockade 题解

    一道经典的割点例题,用size数组记录该子树有多少个节点,sum是这棵搜索树上有多少个节点,sum*(n-sum-1)是将点删掉后的数对数量. #include<iostream> #in ...

  10. Thread线程框架学习

    原文:https://www.cnblogs.com/wangkeqin/p/9351299.html Thread线程框架 线程定义:线程可以理解为一个特立独行的函数.其存在的意义,就是并行,避免了 ...