2016-05-14 6 views
0

Ich arbeite an einem Java-Client, der die UAA-API mit meinem Java-Controller verbindet. Ich habe Probleme bei der Implementierung der Passwortänderungsfunktion bekommen. Selbst mit Postman kann ich nicht das gewünschte Ergebnis erzielen.Passwort Änderung mit der UAA Rest API

Es folgt, wie ich die Anfrage mache: Meine API Endpoint ist:

https://2bcddc1b-01be-4d79-a2c4-ee583984f538.predix-uaa.run.aws-usw02-pr.ice.predix.io/Users/8f47875b-a1c8-47d4-bdde-79eb178eaed8/password 

Im Folgenden sind die Header:

Content-Type: application/json 
Authorization: Bearer <user-access-token-generated after login> 
Pragma: no-cache 

Jedesmal, wenn ich eine Anfrage, dass sie die folgende Antwort erhalten:

{ 
    "error": "access_denied", 
    "error_description": "Invalid token does not contain resource id (password)" 
} 

Dies ist die API:

https://github.com/cloudfoundry/uaa/blob/master/docs/UAA-APIs.rst#change-password-put-users-id-password 
+0

Was ist im Körper Ihrer Anfrage? Haben Sie ein '' uaac token decode'' auf dem Benutzerzugriffstoken versucht? Hat der Benutzer den richtigen Umfang, um das Client-Passwort zu ändern? – j12y

+0

Ja. Der eingeloggte Client hat sowohl die scim.write- als auch die scim.read-Berechtigung sowie den Bereich, so dass ich nicht glaube, dass hier eine Berechtigung besteht. P.S .: Der einzige Grund, warum ich den Java Controller erstelle, ist die Verwendung von UAA Client zu vermeiden. –

Antwort

0

Der Endpunkt erfordert password.write scope.

Ein Zugriffstoken enthält Bereiche. Damit der Zugriffstoken den password.write Umfang enthalten, sowohl der Client als auch der Benutzer ist das password.write Umfang haben

password.write ein Standardbenutzerbereich - alle Benutzer haben es

in Ihr Fall, der Client, der das Token erhalten hat, hat kein password.write, so dass Sie auf das Token zugreifen können.

+1

Danke. Ich erkannte, dass mein Fehler die URL war, die geschrieben wurde. Es erforderte die UAA-Benutzer-ID nicht den Benutzernamen. –