shiro篇】 四. shiro缓存配置

【shiro篇】 三. shiro登录认证与授权案例 上
【shiro篇】 三. shiro登录认证与授权案例 下

篇幅较长可以通过右侧目录查看文章目录

shiro缓存配置

项目准备

  1. 新建项目day64-shiro-03-cache
  2. 将day64-shiro-02-spring直接搬过来即可,详细参考上面2篇
  3. 也可以直接在day64-shiro-02-spring在配置缓存
    在这里插入图片描述

1 缓存配置

1.1 添加缓存的配置文件 ehcache.xml

<ehcache>
    <diskStore path="java.io.tmpdir/shiro-ehcache"/>
    <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>
</ehcache>

1.2 spring容器配置缓存

<bean id="cacheManager" class="org.apache.shiro.cache.ehcache.EhCacheManager">
   <!-- cache配置文件 -->
    <property name="cacheManagerConfigFile" value="classpath:ehcache.xml" />
</bean>

在这里插入图片描述

1.3 spring容器配置安全数据源属性

<!-- 启用缓存,默认false; -->
<property name="cachingEnabled" value="true" />
<!--启用身份验证缓存,即缓存AuthenticationInfo信息,默认false -->
<property name="authenticationCachingEnabled" value="true" />
<!--缓存AuthenticationInfo信息的缓存名称 -->
<property name="authenticationCacheName" value="authenticationCache" />
<!--启用授权缓存,即缓存AuthorizationInfo信息,默认false -->
<property name="authorizationCachingEnabled" value="true" />
<!--缓存AuthorizationInfo信息的缓存名称 -->
<property name="authorizationCacheName" value="authorizationCache" />

在这里插入图片描述

1.4 测试

在没配置缓存之前,在授权方法输出一条语句就会发现每次调用add和delete方法就会重复调用该授权方法。设置缓存后,在第一次调用后会存在缓存中,下次在调用就不会调用授权方法了。认证同理。。。

发布了56 篇原创文章 · 获赞 11 · 访问量 4078

猜你喜欢

转载自blog.csdn.net/TheNew_One/article/details/104120283