Pobieranie aktualnie zalogowanego Usera przy websocketach

0

Witajcie,
Chciałbym pobrać aktualnie zalogowanego usera w kontrollerze websocketa. Mój kod:

@MessageMapping("/test")
@SendTo("/abc")
public String username() {
    Object authentication = SecurityContextHolder.getContext().getAuthentication();
    return "Hello world";
}

Niestety, po zapięciu się debuggerem do kodu, zmienna authentication ma wartość null. Wiem że metoda getContext() zwraca context, zależnie od wątku w którym została wykonana. Podejrzewam że właśnie w tym tutaj problem, ponieważ websocket działa w innym wątku.

Jest jakieś sprytne obejście na to? Tak żeby pobrać aktualnie zalogowanego Principala?

0

ja robie tak że przy onconnect wysylam jsessionid + adres ip zalogowanego a pozniej sprawdzam czy sesja websocket z przypisanym jsessionid ma przypisany principal. Całość leci po wss i generalnie się sprawdza - także spróbuj albo ktoś inny może podrzuci lepsze rozwiązanie.

1 użytkowników online, w tym zalogowanych: 0, gości: 1