2013-02-17 3 views
5

Ich baue eine Webapp mit Spring MVC auf Tomcat7 und ich benutze Spring Security für die Benutzerauthentifizierung. Abgesehen von Standard-Controllern habe ich auch ein Websocket-Servlet, das Verbindungen benötigt, um authentifiziert zu werden.Websocket Authentifizierung mit Feder Sicherheit

Der Ablauf ist wie folgt: ein Client stellt eine Verbindung zum Server her und wird zu einer Anmeldeseite umgeleitet. Nach erfolgreicher Authentifizierung versucht die empfangene Ansicht, eine Verbindung zum Socket herzustellen. Ich muss sicherstellen, dass nur ein authentifizierter Benutzer die Websocket-Verbindung starten kann.

Nach einigen Nachforschungen fand ich, dass die Authentifizierung der HTTP-Upgrade-Anfrage, die Websocket-Verbindung startet, sollte ausreichen. Ich bin jedoch ratlos, wie ich das mit den Technologien, die ich verwende, machen kann. Das einfache Abfangen von URLs, die auf den Websocket zeigen, scheint nicht zu funktionieren, da Versuche, sich mit dem Socket zu verbinden, mit einer 302 Antwort enden, also schätze ich, dass die Authentifizierung fehlschlägt und ich auf meine Anmeldeseite umgeleitet werde. Ich wäre dankbar für einige Hilfe bei der Lösung des Problems.

Dank

+0

denke ich, und das ist, was für mein Projekt auch ist ich die Erforschung, dass der Frühling-Sicherheit für die Authentifizierung innerhalb Formularelemente überprüft, aber websocket Authentifizierung als Header im Verbindungsrahmen gesendet. Ich schätze, Sie müssen einen Filter schreiben, um nach Header-Elementen für Login/Passwort-Details zu suchen und den Benutzer zu validieren. – demesne

+0

Die Antwort in dieser [Frage] [1] könnte Ihrem Fall helfen. [1]: https://stackoverflow.com/questions/25004081/springmvc-websockets-messaging-user-authentication-with-spring-security/27853391#27853391 – phuong

Antwort