今天在配置Shiro的过期时间的时候,发现整合了Ehcache的缓存,但是Ehcache的缓存又不生效,无语了
最开始参考网上的方法,配置了eternal="false",也设置了timeToIdleSeconds和timeToLiveSeconds的值,但是一直没有没有生效,没到半小时就自动登录失效了。原来的配置如下:
再看了很多博客后,发现用力错地方~ 并且,解决办法及其简单。。。。
第一步,添加DefaultWebSessionManager
<bean id="sessionManager" class="org.apache.shiro.web.session.mgt.DefaultWebSessionManager">
<property name="sessionValidationSchedulerEnabled" value="true" />
<property name="sessionIdCookieEnabled" value="true" />
<property name="globalSessionTimeout" value="6000" />
</bean>
我为了测试只设置了6秒 单位为毫秒
第二步,在DefaultWebSecurityManager中引用
<bean id="securityManager" class="org.apache.shiro.web.mgt.DefaultWebSecurityManager">
......
<property name="sessionManager" ref="sessionManager" />
......
</bean>
完成~
作者:彼岸舞
时间:2021\07\08
内容关于:工作中用到的小技术
本文属于作者原创,未经允许,禁止转发
在配置Shiro的会话超时过程中遇到问题,原本设置的Ehcache缓存未生效。通过调整配置,使用DefaultWebSessionManager并启用sessionValidationScheduler,设置全局会话超时时间为6000毫秒(6秒)进行测试,解决了问题。此方法适用于需要自定义会话超时的场景。
3303

被折叠的 条评论
为什么被折叠?



