【shiro篇】 三. shiro登录认证与授权案例 上
【shiro篇】 三. shiro登录认证与授权案例 下
篇幅较长可以通过右侧目录查看文章目录
shiro缓存配置
项目准备
- 新建项目day64-shiro-03-cache
- 将day64-shiro-02-spring直接搬过来即可,详细参考上面2篇
- 也可以直接在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方法就会重复调用该授权方法。设置缓存后,在第一次调用后会存在缓存中,下次在调用就不会调用授权方法了。认证同理。。。