我在使用Shiro
(v4.1.4)的java Web项目中使用Spring
(v1.2.3)。
我为shiro启用了Ehcache
,以帮助存储shiro会话。
我的问题是:
我是否需要在ehcache.xml配置文件中为shiro会话定义<cache>
实体,或者shiro会自动管理它?
总之,我是否需要将以下配置段放入ehcache-shiro.xml
:
<cache name="shiro-activeSessionCache" maxElementsInMemory="10000" overflowToDisk="true" eternal="true"
timeToLiveSeconds="0" timeToIdleSeconds="0" diskPersistent="true" diskExpiryThreadIntervalSeconds="600" />
答案 0 :(得分:3)
如果默认设置适合您,则不需要。 ehcache.xml文件是shiro-ehcache模块的一部分,默认情况下将使用。您引用的设置与此文件中定义的设置相同。正如Shiro doc about session management提到:
默认情况下,EhCacheManager使用特定于Shiro的ehcache.xml文件 设置会话缓存区域和必要的设置 确保正确存储和检索会话。
但是,如果您想更改缓存设置,或配置您的 拥有自己的ehcache.xml或EHCache net.sf.ehcache.CacheManager实例 将需要配置缓存区域以确保Sessions 处理得当。
如果查看默认的ehcache.xml文件,您将看到 关注shiro-activeSessionCache缓存配置:
<cache name="shiro-activeSessionCache"
maxElementsInMemory="10000"
overflowToDisk="true"
eternal="true"
timeToLiveSeconds="0"
timeToIdleSeconds="0"
diskPersistent="true"
diskExpiryThreadIntervalSeconds="600"/>
如果您希望使用自己的ehcache.xml文件,请确保已定义类似的缓存 进入Shiro的需求