我正在开发一个将UAA-API与我的java控制器链接起来的java客户端。 我一直面临着实施密码更改功能的问题。即使有邮差,我也无法得到理想的结果。
以下是我提出请求的方式: 我的API端点是:
https://2bcddc1b-01be-4d79-a2c4-ee583984f538.predix-uaa.run.aws-usw02-pr.ice.predix.io/Users/8f47875b-a1c8-47d4-bdde-79eb178eaed8/password
以下是标题:
Content-Type: application/json
Authorization: Bearer <user-access-token-generated after login>
Pragma: no-cache
每次我发出请求时都会给出以下回复:
{
"error": "access_denied",
"error_description": "Invalid token does not contain resource id (password)"
}
这是API:
https://github.com/cloudfoundry/uaa/blob/master/docs/UAA-APIs.rst#change-password-put-users-id-password
答案 0 :(得分:0)
端点需要password.write范围。
访问令牌包含范围。为了使访问令牌包含password.write范围,客户端和用户都必须具有password.write范围
password.write是默认的用户范围 - 所有用户都拥有它
在您的情况下,收到令牌的客户端没有password.write,因此您访问令牌也不会拥有它。