Załóżmy sytuację, gdy użytkownik chce sprawdzić, czy istnieje użytkownik o podanym username i password (mam to opakowane w klasę LoginForm). Jak dać użytkownikowi możliwość sprawdzenia, czy dane są poprawne? Próbowałem to zrobić przy pomocy Get wraz z RequestBody LoginForm, ale w chwili gdy napotkałem problemy w postmanie (nie mogłem dodać RequestBody do metody Get) przeczytałem, że Get nie powinien przyjmować RequestBody. Więc jak dać użytkownikowi taką możliwość? Czy Spring Security mi w tym pomoże?
Drugie pytanie: Chciałem uniknąć tworzenia sesji z użytkownikami, gdzie w zmiennych sesyjnych przechowywałbym np zalogowanego Usera, więc wpadłem na pomysł, żeby podczas wywoływania "każdej" (każdy wymagający potwierdzenia, że Użytkownik rzeczywiście może np. dodać ofertę) z metod UserControllera musi być podany formularz z loginem czyli metody mniej-więcej wyglądają tak:
@PostMapping("/order")
public ResponseEntity addOrder(@RequestBody LoginForm loginForm, @RequestBody OrderDTO orderDTO){
//jeżeli w bazie danych znajdzie się użytkownik o podanym Username i Password (pola LoginForm) to OrderDTO zostanie zmapowane do Order i wykonana pozostała część metody
}
Czy jest to poprawne?
Trzecie pytanie: Jak zabezpieczyć system, przed "wykonywaniem' metody sprawdzającej poprawność username i password? Zdaję sobie z tego sprawę, że wysyłając tylko taki Request dostaje się w bardzo krótkim czasie odpowiedź, czy hasło i nick są poprawne, więc można byłoby najpierw sprawdzić czyjś nick, a następnie metodą prób i błędów losować hasła do czasu aż nie dostanie się statusu 200.