Shiro Cache配置

Shiro第十一章-cache缓存 缓存 Shiro提供了类似于Spring的Cache抽象,即它本身不实现cache,但是对cache进行了抽象,方便更换底层cache实现(如,Ehcache,Hazelcast,OSCache,Terracotta,Coherence,GigaSpaces,JBossCache)。 Cache接口: public interface Cache<K, V>... 阅读详情

要实现Shiro的Cache配置非常简单,默认使用ehcache,直接配置cacheManager制定实现为EhCacheManager,然后通过property制定对应的ehcache-shiro.xml文件

spring配置文件
<!-- 用户授权信息Cache, 采用EhCache -->
    <bean id="cacheManager" class="org.apache.shiro.cache.ehcache.EhCacheManager">
        <property name="cacheManagerConfigFile" value="classpath:ehcache-shiro.xml" />
    </bean>

    <!-- Shiro's main business-tier object for web-enabled applications -->
    <bean id="securityManager" class="org.apache.shiro.web.mgt.DefaultWebSecurityManager">
        <property name="realm" ref="userRealm"/>
        <property name="sessionManager" ref="sessionManager"/>
        <property name="cacheManager" ref="cacheManager"/>
        <property name="rememberMeManager" ref="rememberMeManager"/>
    </bean>

然后在ehcache-shiro.xml文件中,配置需要使用的Cache相关信息。

Shiro ehcache配置xml
<?xml version="1.0" encoding="UTF-8"?>
<ehcache name="es_shiro" updateCheck="false">

    <diskStore path="java.io.tmpdir"/>

    <!-- 登录记录缓存 锁定10分钟 -->
    <cache name="passwordRetryCache"
           maxEntriesLocalHeap="2000"
           eternal="false"
           timeToIdleSeconds="3600"
           timeToLiveSeconds="0"
           overflowToDisk="false"
           statistics="true">
    </cache>

    <cache name="authorizationCache"
           maxEntriesLocalHeap="2000"
           eternal="false"
           timeToIdleSeconds="3600"
           timeToLiveSeconds="0"
           overflowToDisk="false"
           statistics="true">
    </cache>

    <cache name="authenticationCache"
           maxEntriesLocalHeap="2000"
           eternal="false"
           timeToIdleSeconds="3600"
           timeToLiveSeconds="0"
           overflowToDisk="false"
           statistics="true">
    </cache>

    <cache name="shiro-activeSessionCache"
           maxEntriesLocalHeap="2000"
           eternal="false"
           timeToIdleSeconds="3600"
           timeToLiveSeconds="0"
           overflowToDisk="false"
           statistics="true">
    </cache>

</ehcache>

这里有2个要注意的问题:
1. 如果系统使用了hibernate,hibernate配置了singleton secondary layer cache,那么会导致shiro的cache配置文件不被load的情况,我的解决方案是把singleton改成允许多个cache实例。
2. 如果想查看cache是否生效,使用情况,可以通过jmx来export相关ehcache统计信息。


    <bean id="mbeanExporter" class="org.springframework.jmx.export.MBeanExporter" lazy-init="false">
        <property name="beans">
            <map>
                <entry key="com.cloud.DemoSystem:name=ehcacheStatisticsMBean"
                    value-ref="ehCacheMBeanRegistration" />              
            </map>
        </property>
         <property name="server" ref="mbeanServer"/>
    </bean>

    <!-- JMX for ehcache -->
     <bean id="ehCacheMBeanRegistration"
                class="org.springframework.beans.factory.config.MethodInvokingFactoryBean">

                <property name="staticMethod"
                        value="net.sf.ehcache.management.ManagementService.registerMBeans"/>
                <property name="arguments">
                        <list>
                                <ref bean="cacheManager"/>
                                <ref bean="mbeanServer"/>
                                <value>true</value>
                                <value>true</value>
                                <value>true</value>
                                <value>true</value>
                        </list>
                </property>
        </bean>
AI Agent在智能投研中的实战:多智能体信息整合与策略生成 那么,什么是AI Agent?简单来说,AI Agent是一种能够感知环境、做出决策并采取行动的自主系统。自主性:能够在没有人类直接干预的情况下运行,对自己的行为和内部状态有一定的控制权。反应性:能够感知环境的变化,并及时做出反应。主动性:不仅能够对环境变化做出反应,还能够主动地设定目标并采取行动实现这些目标。社会性:能够与其他Agent(包括人类和人工智能)进行交互、协作和竞争。它们可以全天候不间断地监控和处理海量信息,大大提升信息处理能力; 阅读详情

相关推荐

保姆级教程:用STM32H743+TJA1042T玩转FDCAN,CubeMX配置1M/5M双速率通信(附完整代码)

本文提供STM32H743与TJA1042T实现FDCAN双速率通信的保姆级教程,详细讲解CubeMX配置1M/5M双速率通信的全过程,包括硬件连接、时钟树配置、过滤器设置及中断管理,并附完整代码示例,助力开发者快速掌握FDCAN高速通信技术。

weixin_30698297的博客 473

Apache Shiro(六)——Shiro缓存管理

一、概述 CacheManagerAware 接口 • Shiro 内部相应的组件(DefaultSecurityManager)会自 动检测相应的对象(如Realm)是否实现了 CacheManagerAware 并自动注入相应的 CacheManager。 Realm 缓存 • Shiro 提供了 CachingRealm,其实现了 CacheManagerAware 接口,提供了缓存的一些基...

传臣、的博客 568

ORACLE 12C RAC 启动报错,错误代码 ORA-27300,ORA-27301,ORA-27302

非一体机,12.2 无任何补丁,2套X86服务器,1节点集群异常(数据库正常,还有会话),2节点正常工作,负载不高,硬件、空间均未检查到异常,多路径存在掉线的情况,但通过Mulitpath -ll 看又是正常的,2根私有网络,其中一根不同,sysctl中配置的稀疏模式。5、再次加成crs alert ohas等集群日志,以及根据现象和错误再次到后台sr中查找可用信息,发现有一个类似问题,12.2 RAC 无任何补丁,报同样错误,解决方案为重启两套服务器。查询MOS文档以及后台文档,排除上面指出的问题。

weixin_42344665的博客 1464

Apache Shiro 框架解析

Apache Shiro设计理念是用直观、简单的方式来保证应用的安全。 软件设计通常是基于用户故事来实现的,也就是会根据用户如何与系统交互来设计用户接口或者服务API。比如这样一个用户故事,用户登录后会显示一个查看个人账户信息的按钮,如果用户未注册,则显示一个注册按钮。 这个用户故事暗含了应用主要应完成的用户需求。即使这里的用户不是人而是第三方系统,在编码时也同样当做与系统交互的“用户”来处理

A梦先生的专栏 2614

基于STM32的心电图监测系统设计

本论文旨在设计一种基于 STM32 微控制器的心电图监测系统,通过对人体心电信号的采集、处理和分析,实现对心电图的实时监测与显示。系统采用高精度的心电信号采集模块,结合 STM32 强大的数据处理能力,能够有效去除噪声干扰,提取出准确的心电信号特征。同时,利用 LCD 显示屏实现心电波形的实时显示,并通过蓝牙模块实现数据的无线传输,方便医护人员远程监测。经测试,该系统具有较高的精度和稳定性,能够满足临床心电图监测的基本需求,为医学诊断提供可靠的数据支持。

道亦无名 1349

Proteus仿真实战:用STM32F103C8T6输入捕获模式精准测量PWM频率(附完整代码)

本文详细解析了如何在Proteus仿真环境中,利用STM32F103C8T6的输入捕获模式精准测量PWM频率。文章从输入捕获的工作原理、Proteus电路搭建、模块化代码实现到调试优化,提供了完整的实战指南和代码示例,帮助开发者深入理解并掌握这一关键技术。

weixin_29158047的博客 257

shiro中CacheMananger(缓存管理器)

文章目录使用EhCache实现缓存1.引入maven依赖开启缓存使用redis实现缓存引入maven依赖 使用EhCache实现缓存 shiro 默认使用 EhCache实现本地缓存 EhCache 是一个纯Java的进程内缓存框架,具有快速、精干等特点 1.引入maven依赖 <!-- https://mvnrepository.com/artifact/org.apache.shiro/shiro-ehcache --> <dependency> <groupI

qq_42418169的博客 2291

【Unity动画优化插件】BT - OptiAnimX —— AAA级动画优化框架深度剖析

BT - OptiAnimX 是一款面向 Unity 的高性能动画优化框架,核心目标是解决多角色动画场景中的性能瓶颈问题。该插件对标《战争机器5》和《巫师3》等 AAA 游戏中的动画优化技术,通过一整套自动化与智能化的优化策略,将动画性能提升与视觉质量控制结合在一起。它适用于从移动端、VR 到高端 PC 的多平台项目,尤其在“多人角色 + 高频动画”的场景中表现突出,例如 MMO、开放世界、动作游戏等。BT - OptiAnimX 本质上是一套“动画性能调度系统”,而不仅仅是优化工具。

2403_88403568的博客 433

shiro的缓存管理器

借助Shiro的缓存管理器将数据缓存起来。 1 内置缓存管理器:org.apache.shiro.cache.MemoryConstrainedCacheManager 2 Ehcache管理器:org.apache.shiro.cache.ehcache.EhCacheManager 3 redis缓存管理器:org.crazycake.shiro.RedisCacheManag...

慢慢的博客 784

AI智能体丨使用Coze一键生成爆款书单视频,3个月内获赞131.1w!(附保姆级教程)

这篇教程详细介绍了如何使用扣子(Coze)平台的AI智能工作流批量制作爆款书单视频。通过自动化流程,只需1-2分钟即可生成45-50秒的书单视频,效率提升近百倍。工作流包含文案生成、音频合成、图片素材获取、视频剪辑等全流程,支持随机生成8本书单、自动提取金句、智能配音等功能。教程提供了完整的操作步骤,包括剪映草稿配置、特效添加等细节,并附体验链接和示例效果。最终生成的视频包含书单展示、金句字幕、背景音乐等元素,适合书单号运营者快速批量产出内容。

李同学Lino的博客 2354

Unity 面试篇|(六)数据结构和算法篇 【全面总结 | 持续更新】

先拿10000个数建堆,然后一次添加剩余元素,如果大于堆顶的数(10000中最小的),将这个数替换堆顶,并调整结构使之仍然是一个最小堆,这样遍历完后,堆中的10000个数就是所需的最大的10000个。桶排序是计数排序的升级版。它的工作原理:首先在未排序序列中找到最小(大)元素,存放到排序序列的起始位置,然后,再从剩余未排序元素中继续寻找最小(大)元素,然后放到已排序序列的末尾。这样处理就可以分别在每个文件的10^6个数据中找出最大的10000个数,合并到一起在再找出1000*10000中的最终的结果。

游戏开发小Y的博客 12万+

Spring boot shiro session cache ecache redis 共存配置

SecurityManager对应 shiro来说 SecurityManager 非常重要,这里配置了 Realm CacheManager RememberMeManager sessionManager 可以说是shiro的核心我们今天就是要 配置 sessionManager 和 CacheManager 让 ecache和redis来缓存 session和 Author

不想当码农的程序员 1381

嵌入式STM32F407CET6移植OpenHarmony系统方法

文件末尾添加:export PATH=~/gcc-arm-none-eabi-10-2020-q4-major/bin:$PATH。编译完成文件输出在LiteOs源码目录下out/STM32F407_ATK_Explorer文件夹中。②点击connect to the target,下方会自动显示识别出来的芯片型号以及flash大小。⑤点击program verify并点击start,等待烧写并校验完成,你就能看到程序正在运行了。,在选择刚才我们说的Huawei_LiteOS.hex文件。

嵌入式技术开发 546

shiro项目启动报cache无效的配置异常错误

由于开发工具空间有限不能把重要的一部分错误信息全部截下来我就把它们copy到记事本然后截下来的,可以看得更清楚。 错误信息理解为可能你的ehcache缓存配置文件被spring管理之后有问题,解决办法就是上网copy一份新的并且大部分通用的ehcahe配置文件过来尝试着看一下能不能行,反正我是这么解决了的,然后记录下来有需要的就试试。

qq_31759675的博客 1130

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

shiro 之 Cache

shiro 之 Cache本节将学习以一下Shiro 的核心功能之一 Cache。关于Shiro 的 Cache 我再次先声明一下下:Shiro 的Cache 的服务范围一般在Shiro 的服务内。关于缓存我们之前有学习过Redis,在一些Application中我们也是用到了 Redis作为缓存来处理数据。因而我们可以得出一个结论:其他缓存可以作为 Shiro 的缓存代理,但是Shiro 自身的缓

Dusty丶one的博客 539

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

Shiro 入门教程 - Shiro 缓存机制

作者简介:大家好,我是哥,前中兴通讯、美团架构师,现某互联网公司联系qq:184480602,加我进群,大家一起学习,一起进步,一起对抗互联网寒冬学习必须往深处挖,挖的越深,基础越扎实!

smart_an的专栏 954

jfinal-ext shiro插件中cache无用

为什么80%的码农都做不了架构师?>>> ...

weixin_34055910的博客 129

(1)Shiro笔记-整合Ehcache时缺少默认cache配置异常解决

在使用Ehcache配置shiro cacheManager时遇到了如下异常,异常全文:org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'shiroFilter' defined in URL [file:/D:/workspace/.metadata/.plugins/or

404 Not Found 5798

shiro-redis整合demo

----知其然不知其所以然阶段--- 总结:自定义redis继承shiro缓存所需要的对象的接口; shiro配置文件 @Configuration public class ShiroConfiguration { /** * ShiroFilterFactoryBean 处理拦截资源文件问题。 * 注意:单独一个ShiroFilterFactoryBean配置是或报错的,...

fouling的博客 1190

Shiro快速入门 —— 7.缓存

本篇文章我们使用Ehcache作为Cache实现进行配置。 引入所需jar包 maven坐标 <dependency> <groupId>org.apache.shiro</groupId> <artifactId>shiro-ehcache</artifactId> <version>1.2.4</version> </dependency> shiro配置 shiro有两种缓存 Realm缓存

哼哼的博客 186

redis序列化缓存shiro权限角色

当权限信息存放在数据库中时,对于每次前端的访问请求都需要进行一次数据库查询。特别是在大量使用shiro的jsp标签的场景下,对应前端的一个页面访问请求会同时出现很多的权限查询操作,这对于权限信息变化不是很频繁的场景,每次前端页面访问都进行大量的权限数据库查询是非常不经济的。shiro eache缓存方案有效解决了这个问题,但是多台服务器操作的时候就会产生一个问题,一个用户多次登陆,负载均衡可能把...

盛小伟的博客 2450

shiro cache使用

此文章是分享于开涛写的shiro,本人只是用来作为学习笔记,如果觉得我不尊重原创者,请点击此处:http://jinnianshilongnian.iteye.com/blog/2018936,谢谢开涛的无私分享,我觉得讲的很好! Shiro提供了类似于Spring的Cache抽象,即Shiro本身不实现Cache,但是对Cache进行了又抽象,方便更换不同的底层Cache实现。对于Cach

臣本布衣,躬耕于南阳 5594

shiro实例 缓存之Realm篇

Shiro 提供的 Cache 接口: public interface Cache { //根据Key获取缓存中的值 public V get(K key) throws CacheException; //往缓存中放入key-value,返回缓存中之前的值 public V put(K key, V value) throws CacheException

zmq52007的博客 1956

Shiro中Session和Cache

Session是一种状态保持机制,参考文章Session是什么可知Session和Web服务也没有必然关系,Shiro本身的Security Manager也可以脱离Servlet自己管理Session 根据Security Manager不同 Shiro本身有3种Session管理机制 Session Manager 所需Security Manager Session周期 ...

lgxzzz的博客 542

apache shiro集群实现(二)— cache共享

上一篇已经解决了第一个问题,session的共享,现在我们解决第二个问题cache的共享。     先看下spring的配置文件,上一篇已经提到过了     这里cacheManager我们注入了shiro自定的本机内存实现的cacheManager类,当然,这肯定不满足我们集群的需要,所以我们要自己实现cacheManager类,这里我还是用了redis作为cache

michaelliuyang的专栏 5484

shairo中的cache

Shiro并不实现缓存的功能,Shiro 的缓存支持基本上是一个抽象的(包装)API,这允许Shiro终端用户配置他们喜欢的任何缓存机制。 Shiro 有三个重要的缓存接口: 1:CacheManager - 负责所有缓存的主要管理组件,它返回Cache 实例,CacheManager 返回Cache 实例,各种不同的Shiro 组件使用这些Cache 实例来缓存必要的数据。任何实现了Cach...

gaoyongjianqq的专栏 479

shiro ---缓存配置

 shiro 对缓存的管理:    存放缓存是一个ConcurrentMap&lt;String, Cache&gt; caches;caches是一个线程安全的ConcurrentMap类型,在这里,至少存放两个Cache,一个是用来存放session的,一个是用来存放权限(Authorization)的,shiro先从caches里拿,如果拿不到相应的Cache,就调用createC...

feiteyizu 426
上一篇: Shiro使用自己的SessionId管理和rememberMe配置
下一篇: dropwizard metrics - healthchecks
开心的D哥
博客等级 码龄22年 63粉丝 110原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值