Verbreiten HTTP-header (JWT Token) über services mit spring rest-Vorlage
Habe ich einen microservice-Architektur, die beide von Ihnen securized von spring security ein JWT Token.
So, wenn ich Anrufe, meine erste microservice, ich will das JWT token und senden Sie eine Anfrage an einen anderen Dienst verwenden diese Anmeldeinformationen.
Wie kann ich abrufen des token und schickte Sie wieder zu den anderen Dienst?
- Wäre genial mit einigen code-Beispielen 🙂
Du musst angemeldet sein, um einen Kommentar abzugeben.
Grundsätzlich werden Ihre token im header der Anfrage wie zum Beispiel: Authorization: Bearer . Für immer Sie können Sie abrufen, alle header-Wert von @RequestHeader() im controller:
Nun können Sie das token in den header für die folgende Anforderung:
Nun können Sie die HttpEntity Ihrer Ruhe Vorlage:
Hoffe ich konnte helfen
Ich habe die Aufgabe erfüllt, erstellen Sie einen benutzerdefinierten Filter
Dann, die Einstellung in meiner config
In diesem Sinne habe ich erstellen Sie eine weitere Klasse mit einer ThreadLocal-variable übergeben werden, die JWT token von dem Controller zu dem Rest Templace interceptor
}
Interceptor hinzufügen der config -
Ich denke, es ist besser, fügen Sie die interceptor, die speziell für das RestTemplate, wie diese:
Und fügen Sie es zu der RestTemplate etwa so:
So, jedes mal, wenn Sie brauchen eine RestTemplate können Sie einfach autowiring, um es zu bekommen. Sie implementieren müssen, um die AuthenticationService noch um das token aus der TokenStore, wie diese: