5

Ich versuche Service zu Service-Sicherheit in Spring-Boot-Dienste mit Spring oauth2 zu implementieren. Ich möchte, dass ein Dienst auf eine gesicherte Ressource eines anderen Dienstes zugreift, ohne dass eine Benutzeraktion erforderlich ist.Spring Oauth2 Client-Anmeldeinformationen fließen Beispiel

Es gibt viele Beispiele für den Autorisierungscode-Grant-Typ, aber nicht sehr viel über den Client-Credentials-Grant-Typ, der für diesen Anwendungsfall der richtige zu sein scheint.

Ich kann den Auth-Server einrichten und eine Curl-Anforderung verwenden, um ein Token zu erhalten. Die Tests, die ich fand, verwendeten Http-Objekte, um Statuscodes zu überprüfen.

Wie kann ich den Client Credentials Grant-Typ in einem Java-Client mit RestTemplate und Spring oauth2 verwenden?

Ich würde denken, dass es so einfach sein muss wie das Hinzufügen einer Abhängigkeit, einer Annotation und einer Konfigurationsdatei, aber ich kann es nicht laufen lassen.

+0

Bitte aktualisieren Sie Ihre Frage, um den Code, den Sie versuchten, und die Fehler, die Sie erhalten, hinzuzufügen. Um Ihre Frage zu verbessern, lesen Sie bitte Wie man http://stackoverflow.com/help/how-to-ask fragt und wie man ein minimales, komplettes und überprüfbares Beispiel erstellt http://stackoverflow.com/help/mcve. Und fragen Sie nie nach Tutorial/Arbeitsbeispiel, da wir nicht hier sind, um Ihre Arbeit für Sie zu lehren – davejal

Antwort

0

Es ist einfach zu beenden.

  1. eine Config-Klasse erstellen whitch mit @Configutration
  2. In dieser Klasse erstellen Bean vom Typ OAuth2ProtectedResourceDetails (Schnittstelle) und erstellen Sie ein ClientCredentialsResourceDetails Objekt in dieser Methode bezeichnet ist. Fügen Sie Ihre Werte hinzu und geben Sie sie zurück.
  3. Erstellen Sie eine zweite Bean vom Typ OAuth2RestTemplate in der Konfigurationsklasse, und erstellen Sie in dieser Methode ein DefaultOAuth2ClientContext-Objekt mit dem Standardkonstruktor. Erstellen Sie dann eine OAuth2RestTemplate, und fügen Sie ihr die OAuth2ProtectedResourceDetails-Bean und das DefaultOAuth2ClientContext-Objekt hinzu. Geben Sie anschließend das OAuth2RestTemplate-Objekt zurück.
  4. Fügen Sie es mit @Autowired in Ihren Controller-Klassen und Service-Implementierungen hinzu, um es zu verwenden.
Verwandte Themen