Spring Security User vs CustomUser - UserDetails

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?

1

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).

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