2013-02-17 9 views
5

Buduję webapp ze Spring MVC na Tomcat7 i używam Spring Security do uwierzytelniania użytkownika. Oprócz standardowych kontrolerów, mam również serwlet websocket, który wymaga uwierzytelnienia połączeń.Uwierzytelnianie Websocket z zabezpieczeniem sprężynowym

Przepływ jest następujący: klient łączy się z serwerem i jest przekierowywany do strony logowania, po pomyślnym uwierzytelnieniu, widok, który otrzymuje, próbuje połączyć się z gniazdem. Muszę się upewnić, że tylko uwierzytelniony użytkownik może uruchomić połączenie z internetem.

Po kilku badaniach stwierdziłem, że uwierzytelnienie żądania aktualizacji Http, które uruchamia połączenie z siecią, powinno wystarczyć. Jednak jestem zaskoczony, jak to zrobić z technologiami, których używam. Proste przechwytywanie adresu URL do websocket nie działa, ponieważ próby połączenia się z gniazdem kończą się odpowiedzią 302, więc domyślam się, że uwierzytelnienie się nie udaje i jestem przekierowywany na moją stronę logowania. Byłbym wdzięczny za pomoc w rozwiązaniu problemu.

Dzięki

+0

myślę, a to, co mam na badania dla mojego projektu, jak również to, że wiosna-security jest sprawdzanie autentyczności wewnątrz elementów formularza, ale jest uwierzytelnienie websocket wysłane jako nagłówek w ramce połączenia. Domyślam się, że musisz napisać filtr, aby sprawdzić elementy nagłówka dla danych logowania/hasła i zweryfikować użytkownika. – demesne

+0

Odpowiedź na to [pytanie] [1] może pomóc w twojej sprawie. [1]: https://stackoverflow.com/questions/25004081/springmvc-websockets-messaging-user-authentication-with-spring-security/27853391#27853391 – phuong

Odpowiedz