问题描述:springmvc+shiro 同一浏览器多次请求,后台controller获取的sessionid不同。
解决办法: 修改shiro默认的cookie名字JSESSIONID为其他名字。<property name="sessionIdCookie.name" value="jsid"/>
<bean id="shiroSessionManager" class="org.apache.shiro.web.session.mgt.DefaultWebSessionManager">
<property name="sessionDAO" ref="sessionDAO"/>
<!-- <property name="sessionValidationScheduler" ref="shiroSessionValidationScheduler"/> -->
<property name="sessionValidationInterval" value="1800000"/> <!-- 相隔多久检查一次session的有效性 -->
<property name="globalSessionTimeout" value="1800000"/> <!-- session 有效时间为半小时 (毫秒单位)-->
<property name="sessionIdCookie.domain" value=".xxx.com"/>
<property name="sessionIdCookie.name" value="jsid"/>
<property name="sessionIdCookie.path" value="/"/>
<!-- <property name="sessionListeners">
<list>
<bean class="com.concom.security.interfaces.listener.SessionListener"/>
</list>
</property> -->
</bean>
参考:https://blog.youkuaiyun.com/lhacker/article/details/19341735
当使用SpringMVC和Shiro时,可能会遇到同一浏览器请求导致sessionID变化的问题。解决方法是在Shiro配置中修改默认的sessionIdCookie名称,将其改为其他值,例如'jsid',以确保在同一浏览器会话中sessionID的一致性。这可以通过调整Shiro的DefaultWebSessionManager配置实现,包括设置cookie的域、路径以及有效期等属性。
578

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



