又看了一遍源码才找到问题可能解决方法有点土,各位大神还望给点意见
shiro的logout登出只是将放置PrincipalCollection这个集合置空,删除了session但是没有清空缓存,所以当修改密码重新登录的時候按照以下流程,调试模式一步步走
在这里的获取info时,会判断是否从缓存中取
下面看一下从缓存中怎么取的
从传递过来的token中获取key這个key就是当前登录名
然后获取info,如果有这个实体就不会再创建了
然后在这里会在缓存中查找info,这个时候里面存的是有数据的也就是以湔的密码和账号,所以就不会再新建在执行验证的时候会验证以前的密码(注意;在认证的时候才会执行数据库查询,所以即使数据库密碼已经修改也没有用)
解决办法:在shiro的缓存中将其清掉
目前解决办法欢迎各位大神补充
这个写个shiro的执行过程,比较详细