Pobieranie aktualnie zalogowanego Usera przy websocketach

Pobieranie aktualnie zalogowanego Usera przy websocketach
ZA
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 174
0

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

Kopiuj
@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?

  • Rejestracja: dni
  • Ostatnio: dni
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.

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.