2016-05-14 6 views
0

私はUAA-APIを私のJavaコントローラにリンクするJavaクライアントを開発中です。 私はパスワード変更機能を実装する際に問題に直面しています。郵便配達所でも、私は希望の結果を得ることができません。続きUAA Rest APIを使用したパスワード変更

は私が要求を行っています方法です: 私の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

あなたのご要望は何ですか?ユーザアクセストークンで '' uaac token decode'を試しましたか?ユーザーはクライアントのパスワードを変更する適切な範囲を持っていますか? – j12y

+0

はい。ログインしたクライアントにはscim.writeとscim.read権限とスコープがありますので、権限はここでは問題ではないと思います。 P.S .: Java Controllerを作成する唯一の理由は、UAAクライアントの使用を避けることです。 –

答えて

0

エンドポイントにはpassword.writeスコープが必要です。

アクセストークンにはスコープが含まれています。 password.writeスコープを格納するためのアクセストークンためには、クライアントとユーザーの両方がpassword.writeスコープを持っている必要が

password.writeは、デフォルトのユーザーのスコープである - すべてのユーザーがそれ

Inを持っていますあなたのケース、トークンを受け取ったクライアントはpassword.writeを持っていないので、アクセストークンもそれを持っていません。

+1

ありがとうございます。私は自分の間違いが書かれたURLであることに気づいた。 UAAユーザIDにはユーザ名ではないことが必要でした。 –

関連する問題