0
点赞
收藏
分享

微信扫一扫

shiro1.4.0是不是有bug啊

晒大太阳了 2022-09-14 阅读 139


做了redis shiro session缓存,但是登入成功后再连接,得不到sessionId,redis又生成一条session缓存,又跳转到登入界限,怎么回事

shiro1.4.0是不是有bug啊_apache


shiro1.4.0是不是有bug啊_redis_02


没有sessionId我怎么从redis读出session


问题在于多次SecurityUtils.getSubject()得到的不是一个对象


subject被重新bind了



结果

bean id="securityManager" class="org.apache.shiro.web.mgt.DefaultWebSecurityManager">
<property name="realm" ref="userAuthorizingRealm"/>
<property name="rememberMeManager" ref="rememberMeManager"/>
<property name="sessionManager" ref="sessionManager"/>
<property name="cacheManager" ref="shiroCacheManager"/>
<property name="sessionMode" value="http"></property>
</bean>

加一个sessionMode解决问题,但是sessionMode已经过期了啊



找到病根DefaultWebSessionManager这个类居然是native的session

shiro1.4.0是不是有bug啊_缓存_03

问题是<property name="sessionMode" value="http"></property>用了这个后不会更新redis session


找到原因是配置的问题

<bean id="sessionManager" class="org.apache.shiro.web.session.mgt.DefaultWebSessionManager">
<property name="sessionDAO" ref="sessionDAO"/>
<property name="globalSessionTimeout" value="1800000"/>
<property name="sessionValidationInterval" value="120000"/>
<property name="sessionValidationSchedulerEnabled" value="true"/>
<!-- <property name="sessionIdCookie" ref="sessionIdCookie"/>
<property name="sessionIdCookieEnabled" value="true"/> -->
</bean>

举报

相关推荐

0 条评论