Spring boot - użycie http basic auth

Odpowiedz Nowy wątek
2019-07-06 12:41

Rejestracja: 4 lata temu

Ostatnio: 1 godzina temu

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.

Pozostało 580 znaków

2019-07-06 17:31

Rejestracja: 2 lata temu

Ostatnio: 9 miesięcy temu

2019-07-09 15:52
Moderator

Rejestracja: 16 lat temu

Ostatnio: 17 godzin temu

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.

Masz problem? Pisz na forum, nie do mnie. Nie masz problemów? Kup komputer...

Pozostało 580 znaków

2019-07-19 14:23

Rejestracja: 4 lata temu

Ostatnio: 1 godzina temu

0

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

Pozostało 580 znaków

2019-07-19 14:28

Rejestracja: 5 lat temu

Ostatnio: 2 minuty temu

Lokalizacja: Warszawa

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


Nie pomagam przez PM. Pytania zadaje się na forum.

Pozostało 580 znaków

2019-07-19 14:37

Rejestracja: 3 lata temu

Ostatnio: 6 godzin temu

Lokalizacja: PL

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.

No to jest fajne - krancki 2019-07-19 14:38
Super fajne. Wszelkie wzorce projektowe, oop, wielowątkowość, testowalnośc i inne takie są z was i spring security dumne. - jarekr000000 2019-07-19 15:53
Ale jestem ciekawy jak wygląda testowanie takiego czegoś - krancki 2019-07-19 16:09

Pozostało 580 znaków

Odpowiedz

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