一个奇怪错误
在有一段时间我启动了服务器容器之后,用Shiro进行登陆正常,但是一旦登陆后刷新页面用户就被Shiro自动踢出了,还要重新登陆
原因在哪
原因在于SecurityManager使用了自定义的Session选项 DefaultWebSessionManager 而没有设置Cookie导致的
1 | <bean id="sessionManager" class="org.apache.shiro.web.session.mgt.DefaultWebSessionManager"> |
配置中 sessionIdCookie 和 sessionIdCookieEnabled 被注销掉了,由于不能使用服务器容器提供的Cookie又把自己的注销掉了,根据Session与Cookie协同保持登陆状态中的原理描述,第一次登陆的时候当然正常,一旦刷新,由于没有Cookie又被当作新的链接者,所以是未登录状态。