公司项目中使用的是jeeplus的框架做后台。更新框架后去融合老项目的时候出现了一个问题。就是在登陆的时候账号被shiro拦截了,报错内容显示是认证失败了。
WARN[org.apache.shiro.authc.AbstractAuthenticator] - Authentication failed for token submission [com.jeeplus.modules.sys.security.UsernamePasswordToken - admin, rememberMe=false (0:0:0:0:0:0:0:1)]. Possible unexpected error? (Typical or expected login exceptions should extend from AuthenticationException).
本来看到这个问题第一反应是浏览器缓存的原因,清理了浏览器缓存后发现bug并未解决。然后我感觉是数据库链接的问题,但是在idea里面测试发现数据库能够正常链接。这些方法都没能解决后,我拿同事电脑测试是否是项目中realm类出现问题,但是同事电脑可以正常运行,最后在清理maven包试图解决失败后我重装了一遍系统,问题解决了。
不过哪有这么简单嘛,在融合项目后又出现同样的问题,这次我发现在执行到检测会话时无法进入下一步,直接跳出引发查询返回值为null,最终抛出异常。出现问题的会话类是
CacheSessionDAO
看类名就又回到了原点,还是缓存的原因,但是这里的原因是在redis缓存中,虽然我还未查明为什么redis缓存会出现异常,但是在更换redis后,该bug得以解决,清理redis缓存应该也能起到同样的效果。
第一篇文章,留给为了这个bug忙活了两天的我。