一、该问题的重现步骤是什么?
1. 按org.springblade.test.Sm2KeyGenerator配置了blade.yaml的pubilc-key 和private-key
2. 请求的password是取blade_user表的password的值进行org.springblade.test.Sm2KeyGenerator加密流程后的值
3.
二、你期待的结果是什么?实际看到的又是什么?
获取 token /blade-auth/oauth/token 正常返回token
获取 token /blade-auth/oauth/token 报认证信息错误或无效
三、你正在使用的是什么产品,什么版本?在什么操作系统上?
版本4.3.0.RELEASE
四、请提供详细的错误堆栈信息,这很重要。
五、若有更多详细信息,请在下面提供。
你打开前端系统,配置publicKey后看看能不能登录
还可以在这几个类对应的行打断点查看参数
password的加密值要和publickey还有privatekey一套,你到我发你的截图里,对应行打断点再看看
图二的判断的值因为是包是只读的看不了直接值!
打了断点OAuth2TokenEndPoint的117行跑不到这行,从107行抛异常进入109 行
OAuth2TokenEndPoint[object Object]
password的加密值要和publickey还有privatekey一套,这些都是一套的,是Sm2KeyGenerator跑出来的,断点参数是以上的几个图
到你打断点的match方法的实现类打断点
你好!以上问题是密码错误造成的吗?
正常情况,如果key和加密密文是一套的,decryptPassword应该就是admin明文才对
encodedPassword.equals(encode(decryptPassword)) 进行比对的时候 encode(decryptPassword) 会把 admin明文进行加密,然后再和数据库的密文进行比对。如果两者一致,才会返回成功,才会获取token成功
谢谢了,搞明白了,请求的password的值用原始密码进行Sm2KeyGenerator进行加密后的值,而不是数据表blade_user中password的值进行Sm2KeyGenerator进行加密后的值,还有一个问题,master分支下的代码,没有找关于user保存的代码,请求一下user的原始密码是经过怎么加密后保存到数据库的
扫一扫访问 Blade技术社区 移动端