文档章节

Shiro快速入门 —— 7.缓存

哼_哼
 哼_哼
发布于 2017/05/17 18:04
字数 472
阅读 92
收藏 0

本系列博文目录:https://my.oschina.net/u/3452433/blog/907396

 

本篇文章我们使用Ehcache作为Cache实现进行配置。

引入所需jar包

maven坐标

<dependency>
	<groupId>org.apache.shiro</groupId>
	<artifactId>shiro-ehcache</artifactId>
	<version>1.2.4</version>
</dependency>

 

shiro配置

shiro有两种缓存 Realm缓存 和 Session缓存

这里的写法是spring boot的shiro配置文件

    /**
     * 创建EhCache缓存类
     * @return
     */
    @Bean(name = "shiroCacheManager")
    public EhCacheManager shiroCacheManager() {
        EhCacheManager ehCacheManager = new EhCacheManager();
        ehCacheManager.setCacheManagerConfigFile("classpath:shiro-ehcache.xml");//指定缓存配置文件路径
        return ehCacheManager;
    }

    /**
     * 创建安全认证资源类
     * (自己实现的登陆和授权认证规则)
     */
    @Bean(name = "shiroRealm")
    public ShiroRealm shiroRealm(EhCacheManager shiroCacheManager) {
        ShiroRealm realm = new ShiroRealm();
        realm.setCacheManager(shiroCacheManager); //为资源类配置缓存
        return realm;
    }

    /**
     * 创建默认的安全管理类
     * 整个安全认证流程的管理都由此类负责
     */
    @Bean(name = "securityManager")
    public DefaultWebSecurityManager securityManager(ShiroRealm shiroRealm,EhCacheManager shiroCacheManager) {
        DefaultWebSecurityManager defaultWebSecurityManager = new DefaultWebSecurityManager(); //创建安全管理类
        defaultWebSecurityManager.setRealm(shiroRealm); //指定资源类
        defaultWebSecurityManager.setCacheManager(shiroCacheManager);//为管理类配置Session缓存
        return defaultWebSecurityManager;
    }

 

Ehcache配置

<?xml version="1.0" encoding="UTF-8"?>
<ehcache name="shiro-ehcache">
        <!-- 缓存文件存放目录 -->
        <!-- java.io.tmpdir代表操作系统默认的临时文件目录,不同操作系统路径不同 -->
        <!-- windows 7   C:\Users\Administrator\AppData\Local\Temp -->
        <!-- linux    /tmp -->
        <diskStore path="${java.io.tmpdir}/shiro/ehcache"/>

        <!-- 设置缓存规则-->
        <!--
          maxElementsInMemory:缓存文件在内存上最大数目
          maxElementsOnDisk:缓存文件在磁盘上的最大数目
          eternal:缓存是否永不过期。true永不过期,false会过期
          timeToIdleSeconds :缓存最大空闲时间,空闲超过此时间则过期(单位:秒)。当eternal为false时有效
          timeToLiveSeconds :缓存最大的生存时间,从创建开始超过这个时间则过期(单位:秒)。当eternal为false时有效
          overflowToDisk:如果内存中数据超过内存限制,是否缓存到磁盘上
          diskPersistent:是否在磁盘上持久化缓存,系统重启后缓存依然存在
        -->
        <defaultCache
                maxElementsInMemory="1000"
                maxElementsOnDisk="10000"
                eternal="false"
                timeToIdleSeconds="300"
                timeToLiveSeconds="600"
                overflowToDisk="true"
                diskPersistent="false"/>
</ehcache>

 

 

© 著作权归作者所有

哼_哼

哼_哼

粉丝 11
博文 63
码字总数 87158
作品 0
哈尔滨
私信 提问
shiro实战系列(一)之入门实战

一、什么是shiro? Apache Shiro 是一个强大而灵活的开源安全框架,它干净利落地处理身份认证,授权,企业会话管理和加密。 Apache Shiro 的首要目标是易于使用和理解。安全有时候是很复杂的,...

youcongtech
2018/06/03
0
0
【shiro】入门程序

Apache Shiro是一个强大的且易用的java安全框架,执行身份验证、授权、密码学和会话管理。使用Shiro的易于理解的API,可以快速,轻松的获得任何应用程序,从最小的移动应用程序到最大的网络和...

binggetong
2017/12/19
0
0
Shiro之身份认证、与spring集成(入门级)

目录1.Shro的概念2.Shiro的简单身份认证实现3.Shiro与spring对身份认证的实现   前言:   Shiro 可以非常容易的开发出足够好的应用,其不仅可以用在 JavaSE 环境,也可以用在 JavaEE 环境...

左羽
2018/05/03
0
0
Apache Shiro 10分钟入门教程

1.简介 欢迎来到Apache Shiro的10分钟教程! 通过阅读这个快速简单的教程,您将充分了解开发人员如何在其应用程序中使用Shiro。而且你应该可以在10分钟内做到这一点。 2.概览 什么是Apache ...

尘_竹
2018/05/22
0
0
zhaoml529/SpringMVC-Activiti5.16-Shiro

SpringOA简介 基于SpringMVC+Shiro+Activiti 5.16 的简单OA,可以快速入门Activiti学习用。 此版本前台使用的是EasyUI 框架简介 框架以Spring Framework为核心、Spring MVC作为模型视图控制器...

zhaoml529
2017/05/19
0
0

没有更多内容

加载失败,请刷新页面

加载更多

多线程同时加载缓存实现

import com.google.common.cache.Cache;import com.google.common.cache.CacheBuilder;import java.util.concurrent.ExecutionException;import java.util.concurrent.ExecutorServi......

暗中观察
28分钟前
1
0
解决Windows和Ubuntu时间不一致的问题

解决Windows和Ubuntu时间不一致的问题 问题原因是使用的时间不一致导致的。win10直接从bios读出来的时间认为就是实际时间,ubuntu认为加上8个小时 后的才是。win10用的rtc ,ubuntu用的utc 在...

shzwork
31分钟前
2
0
mysql mysql三种插入数据语句和增删改方法

点开题目是不是有点懵X,因为你只知道insert...values这一种,重来没有听说过三种,现在来介绍一下。 插入数据三种方式: insert into 表名(字段名) values(插入值); 最常用的插入语句 inse...

edison_kwok
32分钟前
2
0
利用VisualVM 内存查看

准备工作,建几个测试类。等下就是要查看这几个类里面的属性 package visualvm;public class MultiObject { private String str; private int i; MultiObject(String str...

冷基
44分钟前
1
0
组装一台工作游戏两用机

一、配置清单如下: 分类 项目 价格(元) 主板 华硕(ASUS)TUF Z370-PLUS GAMING II 电竞特工 Z370二代 支持9代CPU 1049 CPU 英特尔(Intel) i7 8700K 酷睿六核 盒装CPU处理器 2640 风扇 九...

mbzhong
50分钟前
1
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部