Model w Spring boot

Odpowiedz Nowy wątek
2017-09-04 15:00
Skromny Kot
0

Witam

Piszę aplikację i się zastanawiam czy robię to poprawnie a mianowicie, czy do każdego mapowania potrzeba dawać oddzielny model czy jest jakieś rozwiązanie (np. bean), który by zastępował kilka linijek kodu np takiego:
//kod pochodzi z controllera

...
User user = (User) SecurityContextHolder.getContext().getAuthentication().getPrincipal();
        com.model.User loggedInUser = userDao.findByUsername(user.getUsername());
..

jest to kod który używam w paru miejscach i pytanie jak to zastąpić?

Pozostało 580 znaków

2017-09-04 16:08
0

Wydziel kod do klasy, metoda statyczna getCurrentUser i działa ;) Ewentualnie jak security to można w preauthorize dać principal i też pójdzie :)

Pozostało 580 znaków

2017-09-04 16:12
0

Spróbuj może
w konstruktorze


Przeważnie ignoruję niezarejestrowanych użytkowników.
Ja bym chyba przez @ModelAttribute method zadziałał. Można też Beanem szczepić - sporo możliwości. - jarekczek 2017-09-04 16:22

Pozostało 580 znaków

2017-09-04 22:59
0

WUT? Dlaczego po prostu nie zostawisz wstrzykiwania obiektu Principal springowi?


@GetMapping
public void get(Principal principal) {...}

Tylko musisz wziąć jedną rzecz pod uwagę, jeżeli udostępnisz metodę dla niezautentykowanych użytkowników to Principal nie będzie obiektem User.

edytowany 1x, ostatnio: Interpod, 2017-09-04 22:59

Pozostało 580 znaków

Odpowiedz
Liczba odpowiedzi na stronę

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