2016-07-23 11 views
0

Ich versuche, eine grundlegende Spring Boot-App zu erstellen, mit der ich die Arbeit der Authentifizierung von Benutzern an einen externen OAuth2-Anbieter wie Facebook delegieren kann.Nach der OAuth2-Authentifizierung mithilfe von Spring Boot nicht ordnungsgemäß umleiten

Ich habe zwei Hauptprobleme bekam:

  1. Sobald der Authentifizierungsprozess abgeschlossen ist, und ich bekomme:

GET request for " https://graph.facebook.com/me " resulted in 200 (OK)

ich auch die folgenden:

Reading [interface java.util.Map] as "application/json" using [org.springfr[email protected]2a7ce52b] Delegating to org.springframework.security.w[email protected]4f061f45 SecurityContext is empty or contents are anonymous - context will not be stored in HttpSession.

Es ist, als ob etwas mit dem Parsen und Speichern der zurückgegebenen Anmeldedaten nicht stimmt.

  1. Manchmal bekomme ich einen 401-Fehler:

Authentication request failed: org.springframework.security.authentication.BadCredentialsException: Could not obtain access token

Es ist ein eine Art von hit and miss, und ich konnte das Problem nicht zurückzuverfolgen. Dies ist auch der Fall, wenn Sie stattdessen Google OAuth2 verwenden.

habe ich im Grunde das @ EnableOAuth2Sso Anmerkung und konfiguriert die Berechtigungsnachweise der application.yml Datei:

security: 
    oauth2: 
    client: 
     clientId: 123 
     clientSecret: bla 
     accessTokenUri: https://graph.facebook.com/oauth/access_token 
     userAuthorizationUri: https://www.facebook.com/dialog/oauth 
     tokenName: oauth_token 
     authenticationScheme: query 
     clientAuthenticationScheme: form 
    resource: 
     userInfoUri: https://graph.facebook.com/me 
     preferTokenInfo: false 

Jede Hilfe ist sehr geschätzt :)

Antwort

0

Endlich habe ich es geschafft, diese zu lösen, die spring-boot-starter-tomcat Die maven-Abhängigkeit wurde als <scope>provided</scope> markiert, wodurch die Fähigkeit beeinträchtigt wird, das Federkontextobjekt im eingebetteten Tomcat ordnungsgemäß zu initialisieren.