ellou
Ich habe eine gemeinsame Play WebSocket-Methode, die wie erwartet funktioniert, aber ich muss den Benutzer authentifizieren. Leider beim Versuch, den einfachsten Benutzer in der Methode zu identifizieren:
%Vor%Ich bekomme einen Fehler:
%Vor%Meine aktuelle Problemumgehung besteht darin, einen zufälligen, eindeutigen Bezeichner zum Anzeigen und Speichern im Benutzermodell zu übergeben. Dann kann ich eine Verbindung zum Socket aus der Ansicht herstellen und den Benutzer mit der angegebenen ID finden. Dies ist jedoch nicht perfekt eine WebSocket-Verbindung pro Benutzer und verhindert auch nicht die Fälschung.
Wie soll ich den Benutzer authentifizieren und einen Spoof-Angriff verhindern?
Da Daten, die ich senden möchte, sensibel sind und in diesem Fall ist Sicherheit für mich wichtiger als Leistung, schließlich habe ich zweistufige Nachrichten verwendet, zuerst über die WebSocket-ID der Nachricht und einige nicht wichtige Daten gesendet und dann über AJAX abgerufen und gesicherter Aktionsnachrichtentext nach der Benutzerauthentifizierung.
Frage bleibt offen: Natürlich, wenn es andere Vorschläge gibt, werde ich meine Stimme ändern:)
Ich weiß nicht, woher Ihr Stück Code kommt, aber Sie sollten in der Lage sein, auf die HTTP-Anfrage bei der Initialisierung des Websocket (erste Verbindung) zuzugreifen, dh Sie sollten erst beim Initiieren des Websocket-Socket-Verbindung (der nachfolgende Aufruf verwendet kein HTTP, so funktioniert Webscokets).
So könnten Sie zum Beispiel in Ihrem Controller so etwas haben:
%Vor%Tags und Links java authentication websocket playframework playframework-2.0