Womit könnte der ursprüngliche OAuth2-Statusparameter in org.springframework.social.connect.web.ConnectSupport null sein?

8

Ich versuche, Spring Social in meiner Anwendung zu verwenden, und habe beim Debuggen festgestellt, dass der ursprüngliche OAuth2-Statusparameter in meiner App immer null ist.

Siehe Spring Social-Quellcode für org.springframework.social.connect.web.ConnectSupport unten:

%Vor%

Kann jemand bitte helfen?

bearbeiten : Ich sehe, dass der Statusparameter von Facebook zurückgegeben wird:

%Vor%

2 bearbeiten Übrigens ist die Ausnahme die folgende:

%Vor%     
balteo 13.09.2016, 11:42
quelle

3 Antworten

3

Es stellte sich heraus, dass das Problem auf die Tatsache zurückzuführen war, dass ich für die Verwaltung der Sitzung im Gegensatz zu Cookies verwendete.

Durch das Auskommentieren der folgenden Spring-Session-Konfigurations-Bean:

%Vor%

Das OAuth2-Statusparameterproblem wurde sortiert.

P.S. Jetzt muss ich einen Weg finden, Spring Social mit meiner aktuellen Spring Session-Konfiguration zu arbeiten ...

Bearbeiten : Ich habe es geschafft, die HeaderHttpSessionStrategy (auf der Frühjahrssession-Seite) zu behalten und sie umzusetzen, indem ich meine eigene SessionStrategy (auf der Spring Social-Seite) wie folgt implementiere:

%Vor%     
balteo 19.09.2016, 14:38
quelle
0

Was Sie von Facebook bekommen, ist kein Anfrage-Attribut, es ist ein Anfrage-Parameter.

Sie sollten es durch etwas wie erhalten:

%Vor%     
Riccardo Cossu 14.09.2016 14:17
quelle
0

Probieren Sie diese Arbeit aus und sehen Sie, ob das für Sie funktioniert:

Zu meiner Überraschung habe ich die Anwendung in einem 'inkognito' Browser geöffnet und alles hat funktioniert. Genau so. Ich denke bevor etwas zwischengespeichert wurde und das Problem verursacht hat.

Ich bin heute auf dieses Problem gestoßen. Meine Bewerbung lief einwandfrei. Ich habe nur für ein paar Stunden eine Pause gemacht und als ich es erneut ausgeführt habe, habe ich mich darüber beschwert, dass der Parameter 'OAuth2' state 'fehlt oder nicht übereinstimmt.' Der Zustandsparameter wird zuerst in die Sitzung eingegeben, dann wird die Anfrage an Facebook gesendet und die Anfrage kommt mit dem gleichen Zustandsparameter zurück, aber wenn der Frühling nach dem Sitzungsobjekt sucht, um den Zustandsparameter zu erhalten, findet er die Sitzung nicht. Ich denke, dass es die Sitzung nicht findet, weil, wenn die Anfrage zurückkommt, es denkt, dass es ein anderer Klient (oder Wirt) ist, obwohl das alte HttpSession-Objekt noch existiert. Der Container verwaltet eine HttpSession pro Client.

    
Muneer Y 14.10.2017 01:28
quelle