【商业版BladeX-Boot-2.5.1】启用”有状态,单人模式令牌“功能失败

Bug 已结 1 1293
184759758
184759758 剑圣 2020-07-25 15:12

一、该问题的重现步骤是什么?

开启BladeX-Boot2.5.1中的 [ 有状态,单人模式令牌 ]。

启用配置如下:

blade:
  #token配置
  token:
    # 有状态
    state: true
    # 只可同时在线一人
    single: true


二、你期待的结果是什么?实际看到的又是什么?

期望:

    "有状态,单人模式令牌“功能正常运行。


实际效果:(底部有POSTMAN测试脚本

   登录时候refresh_token获取失败,使得返回值中没有了tokenType等键值对,进而导致之后的请求鉴权失败。


image.png



三、你正在使用的是什么产品,什么版本?在什么操作系统上?

BladeX-Boot  

2.5.1

Windows10


四、请提供详细的错误堆栈信息,这很重要。



五、若有更多详细信息,请在下面提供。

参考文档 : 5.3.2.2 令牌认证配置


另外:

1. 这个问题我们已经找到了问题的根源: 位于 blade-core-secure 项目中的 SecureUtil.createJWT() 方法,其同时负责生成 accessToken 和 refreshToken, 在启用了有状态TOKEN之后,在生成refreshToken因为判断缺失导致refreshToken值将已经放进去的accessToken值进行了覆盖。

2. 对于商业版代码里发现的问题如何作贡献? 我们本想通过提交PR的方式来修复地,但没有发现这个选项。


附上相应的POSTMAN测试脚本。(其中使用了POSTMAN的测试脚本传递accessToken,所以在调用时候需要创建一个Environment,无需向Environment填入任何参数,脚本会自行添加)

BladeX-Boot-有状态TOKEN.postman.zip



1条回答
  •  smallchill
    smallchill (最佳回答者)
    2020-07-27 11:13

    这个问题已经记录,pr的方式稍后会私聊你

    0 讨论(1)
提交回复