Java Spring Boot, Oauth2 endpoint pozwolenie, brak principal

Java Spring Boot, Oauth2 endpoint pozwolenie, brak principal
Artur Kowalski
Artur Kowalski
  • Rejestracja:ponad 4 lata
  • Ostatnio:ponad 4 lata
  • Postów:11
0

Witam posiadam zwykłą metodkę, którą chciałbym aby niezalogowany użytkownik mógł zobaczyć

Kopiuj
    @GetMapping
    public ResponseEntity<Page<RestaurantDto>> getAllRestaurant(Principal user, Pageable pageable,
                                                                @RequestParam(required = false) boolean my) {
        return new ResponseEntity<>(restaurantService.getAllRestaurants(user.getName(), pageable, my), HttpStatus.OK);
    }

Gdzie dostaje wszystkie restauracje dla klientów jak i również restaurację, które są tylko właściciela (parametr my).

Kopiuj
    @Override
    public void configure(WebSecurity web) {
        web.ignoring().antMatchers("/v3/api-docs/**", "/swagger-ui.html", "/swagger-ui/**");
    }

Tutaj jak wyżej pokazane dodaje ten endpoint (teraz w kodzie nie ma). Wszystko działa niby ok (jest dostęp bez zalogowanie) tylko, że gdy chciałbym zobaczyć tylko właściciela restauracje to muszę mieć jego id, które jest w principal, ale principal jest null bo jednak ignorujemy ten url i tutaj pytanko czy jest na to jakieś wyjście ?

Myślałem żeby zduplikować metodę i udostępnić publicznie tylko nie wiem czy to jest dobra praktyka (zapewne nie :D). Wtedy jedno było by do publicznego a drugie właściciel mógłby sobie zobaczyć tylko swoje restauracje.

edytowany 1x, ostatnio: Artur Kowalski
Shalom
  • Rejestracja:około 21 lat
  • Ostatnio:około 3 lata
  • Lokalizacja:Space: the final frontier
  • Postów:26433
2

o_O if (principal != null)... wiesz ze można po prostu rozpatrywać 2 sytuacje i robić getAllRestaurants albo getUserRestaurants? Niemniej ja bym dał 2 endpointy bo teraz to trochę dziwna logika. Zwykle po zalogowaniu widać więcej a nie mniej.


"Nie brookliński most, ale przemienić w jasny, nowy dzień najsmutniejszą noc - to jest dopiero coś!"
edytowany 1x, ostatnio: Shalom
Artur Kowalski
Artur Kowalski
No tak, ale wydawało mi się że tworzenie dodatkowego endpointu będzie niepotrzebne
Shalom
No ale ten dodatkowy endpoint zwraca zupelnie coś innego z biznesowego punktu widzenia. Rozumiem że oba zwracają ten sam typ danych, tzn listę restauracji, ale to są w rzeczywistości zupełnie różne rzeczy.
Artur Kowalski
Artur Kowalski
Oki rozumiem dziękuje bardzo

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.