已经实现了oauth2,只要我在授权服务器配置中使用clients.inMemory它就可以正常工作。当我将其更改为clients.jdbc并提供数据存储时,获取oauth2令牌的第一步成功。使用该令牌的第二步总是失败。即使对于内存代码片段,这两个步骤都有效。所以使用jdbc,我无法达到我的休息终点。我收到错误。以下作品
curl -u ksclient:top_secret -X POST http://localhost:8080/oauth/token -H "Accept:application/json" -d "username=mickey&password=cheese&grant_t
ype=password"
结果:
{"access_token":"4e6a6ff2-87e9-428d-9a80-13f0300a7344","token_type":"bearer","expires_in":43016,"scope":"read write"}
然后使用它的第二步失败
curl http://localhost:8080/oauth2/hello -H "Authorization: Bearer 4e6a6ff2-87e9-428d-9a80-13f0300a7344"
错误:
{"error":"invalid_token","error_description":"Invalid access token: 4e6a6ff2-87e9-428d-9a80-13f0300a7344"}
有趣的是,在mysql端,“oauth_client_details”的表确实有数据,而“oauth_client_token”/“oauth_access_token”的表从不有任何记录。 这是我的代码的链接 https://github.com/ksachdev1/springbootlearning