Jwt应该异常转换为Shiro异常?
yihuishou opened this issue · 14 comments
token刷新的时候后台会打印一大堆东西,而且Shiro也会报异常类型警官的说。
截图看下,我测试没有发现问题
Token刷新时报的是你当前访问的AccessToken过期的异常吧,刷新的机制是当前AccessToken已过期,且RefreshToken还存在,才进行刷新,所以抛异常,你可以自己Debug走一遍流程
签名异常...这是你Token私钥KEY有问题?这个异常是你Token有误才会报的,正常不会报这个异常,不过我刚刚Debug了一下,确实会重复调用doGetAuthorizationInfo认证方法,好像是SpringBoot整合Shiro的问题,所以导致后台抛出N个Token过期和Token提交失败异常
这个是shiro验证异常的问题,如果抛出的不是shiro的异常,shrio就会打印出来。并提示警告吧?
解决了,你更新下,一直都没发现这个问题,这是原作者没有解决的问题,Shiro源码是执行isAccessAllowed和onAccessDenied方法,现在只重写了isAccessAllowed,而onAccessDenied源码是重复调用了executeLogin方法,造成了循环调用认证,所以导致后台抛出N个Token过期和Token提交失败异常,现在没有了,认证和刷新Token都只会抛出一个当前Token过期的异常,你可以看下
这个是Shiro捕获到Token过期异常时打印的警告,你看下,异常不会再报了,只会抛出一个当前Token过期的异常
一般不需要打印这个吧?
也是呢~
既然已经手动处理了。拦截配置里的 factoryBean.setUnauthorizedUrl("/401");
也没有必要了吧?
没发现哎,之前都把/401的都删除了,这里还有一个残留。。。你Fork提交一下吧