• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Spring - Przechowywanie sesji użytkownika

42 Warsaw Coding Academy
0 głosów
2,079 wizyt
pytanie zadane 22 maja 2017 w Java przez Jonki Dyskutant (8,180 p.)
W jaki sposób najlepiej przechowywać sesję użytkownika w Spring? Obecnie w moim projekcie trzymam w sesji obiekt typu User i jest to ten mój zalogowany użytkownik. Ale pomyślałem, że jest to trochę niebezpieczne i wpadłem na innym pomysł. Wydaje mi się, że bardzo dobrym sposobem byłoby wegenerowanie specjalnego ciągu znaków, który byłby identyfikatorem sesji i zapisanie go w bazie razem z id użytkownika zalogowanego i w sesji jako zwykły String. A następnie gdy potrzebowałbym użyć danych zalogowanego użytkownika, to po prostu sprawdziłbym do kogo należy identyfikator sesji i na podstawie przypisanego id do sesji pobrać z bazy dane użytkownika i wyświetlić. Jak myślicie? Jest to dobry sposób?
komentarz 22 maja 2017 przez Mateusz51 Nałogowiec (28,180 p.)
Uzywasz Spring Security? Ponieważ ten moduł rozwiązuje za Ciebie kilka problemów
komentarz 22 maja 2017 przez Jonki Dyskutant (8,180 p.)
Tak, ale używam Spring Security tylko do logowania i wylogowywania. A daje to jeszcze takie możliwości?
komentarz 22 maja 2017 przez Vento Pasjonat (17,120 p.)
Nie lepiej używać Ci Json Web Tokens do autoryzacji użytkownika. Sam osobiście używam w PHP i polecam bardzo serdecznie :)
komentarz 22 maja 2017 przez Mateusz51 Nałogowiec (28,180 p.)
Spring Security trzyma sesje za Ciebie. Jeśli chcesz uzyskać dane użytkownika możesz pobrać jego nazwe i z bazy danych pobierac dalsze informacje.

https://www.mkyong.com/spring-security/get-current-logged-in-username-in-spring-security/
komentarz 22 maja 2017 przez Mateusz51 Nałogowiec (28,180 p.)
A zawartością spersonalizowaną możesz zarządzać poprzez bean-y sesyjne. Które tworzysz odpowiednimi annotacjami
komentarz 23 maja 2017 przez Jonki Dyskutant (8,180 p.)
@Vento : nie chcę łapać się na start na zbyt dużą liczbę technologii, bo potem się nie połapię.

@Mateusz21 : czyli uważasz, aby nie pobierać podczas logowania całego użytkownika i nie zapisywać go w sesji, tylko podczas gdy będę potrzebował informacje na temat użytkownika, to tylko pobrać je jednorazowo według nazwy zapisanej w sesji lub ciastku? Co do bean'ów sesyjnych, to jeśli mam encje User to raczej nie pasuje jej chyba ustawić scope session, prawda? Tylko stworzyć nową klasę dla użytkownika zalogowanego? Na koniec, to czym się różni to, że ustawię jakąś klasę na bean'a sesyjnego, a to,że po prostu ręcznie dodam obiekt danej klasy do sesji? Raczej to i to można wykraść. Czy ten bean sesyjny jest jakoś lepiej zabezpieczony niż obiekt klasy 'HttpSession'?.
komentarz 23 maja 2017 przez Mateusz51 Nałogowiec (28,180 p.)
Jak ustawisz beana na sesyjnego tox dla kazdej sesni bedzie tworzyl sie teb bean i bedzie xarzadzany przez springa. Jak dodasz obiekt to musisz sam zarzadzac. Jesli nie chcesz aby byl wykradziony to musisz stworzyc beana w ktorym przechiwywane beda tylko dane nie wrazliwe np bez password. Stworzyc tak zwanego dto. DataTransferObject

Zaloguj lub zarejestruj się, aby odpowiedzieć na to pytanie.

Podobne pytania

0 głosów
0 odpowiedzi 232 wizyt
0 głosów
1 odpowiedź 170 wizyt
0 głosów
0 odpowiedzi 143 wizyt
pytanie zadane 17 czerwca 2017 w Java przez Jonki Dyskutant (8,180 p.)

93,385 zapytań

142,384 odpowiedzi

322,540 komentarzy

62,745 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj

VMware Cloud PRO - przenieś swoją infrastrukturę IT do chmury
...