Ich versuche eine Spring Boot-Anwendung zu schreiben, die Google Single Sign On (SSO) zur Authentifizierung von Benutzern verwendet (es könnte jeder andere SSO-Anbieter sein, wie Facebook - in diesem Beispiel wird nur Google verwendet).Spring Boot und Google SSO
Ich folgte einige Tutorials und kam mit einem sehr einfachen Aufbau auf:
appplication.properties:
security.oauth2.client.client-id: xxx
security.oauth2.client.client-secret: yyy
security.oauth2.client.access-token-uri=https://www.googleapis.com/oauth2/v3/token
security.oauth2.client.user-authorization-uri=https://accounts.google.com/o/oauth2/auth
security.oauth2.client.client-authentication-scheme=query
security.oauth2.client.scope=profile,email
security.oauth2.resource.user-info-uri=https://www.googleapis.com/plus/v1/people/me
security.oauth2.resource.prefer-token-info=false
-Controller:
@RestController
public class ExampleController {
@RequestMapping("/")
String hello(OAuth2Authentication authentication) {
return "Hello " + authentication.getName();
}
@RequestMapping("/details")
Object details(OAuth2Authentication authentication) {
return authentication.getUserAuthentication();
}
}
Alles funktioniert in der Fein Browser und ich werde aufgefordert, meine Google-Anmeldeinformationen und erst danach ich kann auf meine Endpunkte zugreifen.
Das Problem ist, dass ich gerne auch programmatisch auf diese API zugreifen möchte (zum Beispiel mit oder RestClient
).
Ich habe versucht, die folgenden:
curl xxx:[email protected]:8080/my-api/oauth/token -d grant_type=client_credentials
aber bekam folgende Antwort:
{"timestamp":1466365089477,"status":403,"error":"Forbidden","message":"Expected CSRF token not found. Has your session expired?","path":"/my-api/oauth/token"}
ich einige gute Dokumentation oder Tutorials zu finden bin kämpfen, wie mit SSO Frühlings-Boot-Apis programmatisch zu arbeiten. Könnte jemand erklären, was ich verpasse oder auf ein funktionierendes Tutorial mit einem voll funktionsfähigen Multi-User-API-Beispiel zeigen?
Danke für den Link. Werde es später testen, aber es sieht vielversprechend aus! – Smajl
Scheint zu arbeiten, aber ich kann immer noch nicht herausfinden, wie ich meine Rest-Client-Anfrage schreiben (cUrl oder ähnliches Dienstprogramm), um mit der API zu verbinden ... – Smajl