Shiro用ehcache缓存session,关于JSESSIONID失效报错问题

/ 后端 / 无站内评论 / 472浏览

背景

发生的是以前写的一个水果商城项目,页面如果发送404、500等一系列异常,会导致shiro的session丢失,导致自动跳转登录页。

解决方法如下:

<bean id="sessionManager" class="org.apache.shiro.web.session.mgt.DefaultWebSessionManager">
        <property name="sessionDAO" ref="sessionDAO"/>//如果项目没有配置sessionDAO,删掉此行

        <property name="sessionIdCookieEnabled" value="true"/>
        <property name="sessionIdCookie" ref="sessionIdCookie"/>
    </bean>

    <!-- 指定本系统SESSIONID, 默认为: JSESSIONID 问题: 与SERVLET容器名冲突, 如JETTY, TOMCAT 等默认JSESSIONID,
        当跳出SHIRO SERVLET时如ERROR-PAGE容器会为JSESSIONID重新分配值导致登录会话丢失! -->
    <bean id="sessionIdCookie" class="org.apache.shiro.web.servlet.SimpleCookie">
        <constructor-arg name="name" value="fruitshop.session.id"/>//这里的fruitshop可以随便定义
    </bean>

就是自定义一个不与容器冲突的SEESIONID

召唤蕾姆
琼ICP备18000156号

鄂公网安备 42011502000211号