dolyw/ShiroJwt

疑似bug

w3n9 opened this issue · 8 comments

w3n9 commented

我怎么觉得有问题
首先你写在config.properties里面的accessTokenExpireTime等没有读取到
其次是当token超时以后
执行executeLogin抛出了 AuthenticationException
这个异常你的程序里面没有处理
但是我看控制台抛出的是TokenExpiredException(这个好像是从verity那边跑出来的)
但是在JwtFilter里面的是AuthenticationException
所以没法刷新token
不知道是我自己问题还是你的问题,麻烦大佬看一下

w3n9 commented

image

w3n9 commented

这个异常是subject.login抛出的

dolyw commented

你直接看返回什么,登录失败会抛出几种异常
1、token解密认证异常SignatureVerificationException,说明你token或者密钥不正确
2、token超时异常TokenExpiredException,这个会继续判断是不是refreshToken是否过期,没过期就刷新accessToken
其他异常目前没有发现,主要是这两个异常

刷新token肯定是抛出认证失败AuthenticationException,导致此异常的是TokenExpiredException,这个异常就说明当前token过期,这里你弄清楚accessToken和refreshToken,开始判断是否可以进行token刷新,查看当前用户的refreshToken是否过期,没过期就可以直接新颁发一个token返回并且继续执行当前的请求,刷新token其实就是新颁发一个token

w3n9 commented

token的verity失败抛出了tokenExpiredException但是程序仍然继续运行,Realm抛出的是你自己throw的AuthenticationException 在JwtFilter是无法捕获到这个异常的

w3n9 commented

说错了不会继续执行,但是抛出的是AuthenticationException

w3n9 commented

不好意思我搞错了

dolyw commented

好了吗

w3n9 commented

好了谢谢大佬