/blade-auth/oauth/token 报认证信息错误或无效

Blade 未结 1 165

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

1. 按org.springblade.test.Sm2KeyGenerator配置了blade.yaml的pubilc-key 和private-key 

image.png

2. 请求的password是取blade_user表的password的值进行org.springblade.test.Sm2KeyGenerator加密流程后的值image.png

image.png

3.


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

获取 token   /blade-auth/oauth/token  正常返回token

获取 token   /blade-auth/oauth/token 报认证信息错误或无效

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

版本4.3.0.RELEASE

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

image.png

image.png

image.png

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

1条回答
  • 你打开前端系统,配置publicKey后看看能不能登录


    还可以在这几个类对应的行打断点查看参数


    IMG_4266.jpeg

    回答: 1天前

    password的加密值要和publickey还有privatekey一套,你到我发你的截图里,对应行打断点再看看

    作者追问:1天前

    图二的判断的值因为是包是只读的看不了直接值!

    image.png

    image.png


    打了断点OAuth2TokenEndPoint的117行跑不到这行,从107行抛异常进入109 行

    OAuth2TokenEndPoint[object Object]

    作者追问:1天前

    password的加密值要和publickey还有privatekey一套,这些都是一套的,是Sm2KeyGenerator跑出来的,断点参数是以上的几个图


    image.png

    回答: 1天前

    到你打断点的match方法的实现类打断点

    作者追问:1天前

    image.png

    作者追问:1天前

    你好!以上问题是密码错误造成的吗?

    回答: 1天前

    正常情况,如果key和加密密文是一套的,decryptPassword应该就是admin明文才对

    CleanShot20250106211940@2x.png


    encodedPassword.equals(encode(decryptPassword)) 进行比对的时候 encode(decryptPassword) 会把 admin明文进行加密,然后再和数据库的密文进行比对。如果两者一致,才会返回成功,才会获取token成功

    作者追问:12小时前

    谢谢了,搞明白了,请求的password的值用原始密码进行Sm2KeyGenerator进行加密后的值,而不是数据表blade_user中password的值进行Sm2KeyGenerator进行加密后的值,还有一个问题,master分支下的代码,没有找关于user保存的代码,请求一下user的原始密码是经过怎么加密后保存到数据库的

    image.png




    0 讨论(0)
提交回复