Spring Security User vs CustomUser - UserDetails

Odpowiedz Nowy wątek
2020-03-26 00:44

Rejestracja: 5 miesięcy temu

Ostatnio: 1 tydzień temu

0

Hej,
Nurtuje mnie jedno pytanie. Zacząłem się bawić troche Spring Security i przeglądając wszelkiego rodzaju materiały, mamy coś takiego:

  1. Encja User, reprezentuje tabele, załóżmy że ma kilkanaście różnych pól definujących usera
  2. Klasa CustomUser która implementuje UserDetails, zwracamy ją w nadpisanej metodzie UserServiceDetails, i możemy po nią sięgnąć z kontekstu w każdej chwili

I teraz kiedy logujemy usera to wyciągamy z bazy User i przerabiamy to na CustomUser.. no i zastanawia mnie, dlaczego to jest robione w ten sposób, dlaczego nie można by zastosować po prostu jednej klasy User, która implementowałaby UserDetails, i operowalobyśmy tą encją w aplikacji, trzymali ją w Authorization itd? Tzn. dlaczego to jest złe?

Pozostało 580 znaków

2020-03-26 07:37

Rejestracja: 12 lat temu

Ostatnio: 4 minuty temu

User to encja, potencjalnie zawierająca jakaś logikę, a UserDetails to worek na dane niezbędne dla security. User może zawierać dodatkowe dane jak np. listę adresów, wtedy nie potrzebujesz trzymać tego w pamięci (w SecurityContext).


Ivory Tower Architect
@Charles_Ray: oki dziękuję, to brzmi logicznie. A w sumie mam jeszcze pytanie, jak uważasz, czy w moim CustomUserService który implementuje UserServiceDetails, powinienem też wrzucać inne metody związane z użytkownikami czy pozostawić tam tylko nadpisaną metodę loadUser... , a do operacji na encji Usera zrobić sobie drugi service? - - GameDevFan 2020-03-27 00:02
Ja bym całkowicie rozdzielił kwestie związane z security (warstwa infrastrutkury) a encją User (warstwa domeny). - Charles_Ray 2020-03-27 09:14

Pozostało 580 znaków

Odpowiedz

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