处理过程:
1.session过期时间太短,导致session过期找不到session报错,
这里org.apache.shiro.web.session.mgt.DefaultWebSessionManager设置session时间
globalSessionTimeout时间太短 这个单位是毫秒,建议设置长点时间
2.时间修改长后,还是报错,但是可以执行 SecurityUtils.getSubject().logout();程序执行到return "index";报错
logout可以安全正确退出,session也可以删除,授权信息,认证信息也会被清除(debug进去可以看到的)
但是如果直接return就会报错
3.DEBUG方式
org.apache.shiro.session.UnknownSessionException: There is no session with id
debug进去发现,直接return程序还是会查找你刚才logout的sessionId,因为logout了,当然是找不到session了,理所当然报错
解决方法:
1.修改查询账户信息接口
兼容用户名为数字时的情况
注:公共调用接口,不可改动太大,尽量兼容,避免其他调用接口的位置报错
2.解决报错问题
将原有跳转页面处理改为跳转redirect