用户登出的时候清除整个session,一开始调用session.invalidate()飘红
看了下上面代码是Session session = SecurityUtils.getSubject().getSession();
就把Session类型直接转成了HttpSession类型:((HttpSession)session).invalidate();
不飘红了,跑一下,后台报错:
java.lang.ClassCastException: org.apache.shiro.subject.support.DelegatingSubject$StoppingAwareProxiedSession cannot be cast to javax.servlet.http.HttpSession 报错行数就是((HttpSession)session).invalidate();这句
参考了一下https://www.jianshu.com/p/a8ab2d1fb61a,debug了一下发现session的会话类型是org.apache.shiro.subject.support.DelegatingSubject$StoppingAwareProxiedSession,那httpsession的invalidate方法就不好用了,得用shiro的
改用session.stop();清session缓存
解决