Spring boot - użycie http basic auth

0

Cześć,
Widziałem sporo przykładów użycia http basic auth w Springu, ale wydaje mi się, że nie były dopasowane do tego czego chcę użyć. Ktoś mógłby pokazać możliwie najprostszy przykład użycia http basic auth w Springu, tak, aby dawać dostęp określonemu użytkownikowi do określonego zasobu zwracanego przy użyciu REST? Na przykład, żeby użytkownik o id 3 miał dostęp tylko do zasobu /3, użytkownik 4 do zasobu /4, itp.? Przykłady, które znalazłem często albo miały kilka lat i mogą być nieaktualne w najnowszych wersjach Springa, albo pokazywały jak zrobić logowanie tylko jednego czy dwóch użytkowników wpisanych na stałe, którzy mają dostęp do tego samego.

1

Żeby zrobić to o co pytasz, to musisz

  1. Skonfigurowac basic auth jw
  2. W kontrolerze wrzucić sobie Principal jako argument i potem z tegoż Principala wyciągnąć sobie userId i na jego podstawie dokonać autoryzacji konkretnego zasobu do którego się ktoś odwołuje. Spring security nie da ci granulacji na poziomie usera, tylko na poziomie roli co najwyżej.
0

@Pijany Krawiec: @Shalom: Dzięki za rady, obie mi pomogły ;)

0

@Shalom:

Spring security nie da ci granulacji na poziomie usera, tylko na poziomie roli co najwyżej.

Prawdę powiedziawszy nie pamiętam jak, ale mi się udawało to ogarnąć Springowymi adnotacjami, nie musiałem nigdzie wstrzykiwac Principala :)

1

Oprócz Principala można to zrobić w taki spósób:

Authentication authentication = SecurityContextHolder.getContext().getAuthentication();

i z tegoż obiektu athentication wyciągnąć np. username.

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