Spring Security - formularz rejestracyjny, kodowanie hasła i ify w widoku

0

Cześć, zacząłem właśnie wprowadzać system logowania do mojej strony.

Pytanie nr 1:
Jak tworzę sobie formularz rejestracyjny użytkownika, który ma 3 pola ( username, password, confirmPassword ) to przesyłam formularz POSTem do kontrolera i tam dopiero sprawdzam czy password == confirmPassword, koduje password którąś z metod i wstawiam do bazy ? Nikt nie jest mi w stanie tego lecącego POSTa przechwycić ? Tam przecież to hasło jest jeszcze niezakodowane.

Pytanie nr 2:
Widziałem, że jest wiele sposobów na kodowanie haseł. Ja użyłem StandardPasswordEncoder("213kds92"). Czy to jakaś różnica ?

Pytanie nr 3:
Jeżeli dany widok, który jest aktualnie wyświetlany na stronie ma jakby dwie różne wersje -> jedną dla normalnego usera i jedną dla admina ( wersje te różnią się tym, że admin ma dodatkowe buttony w niektórych miejscach ) to ja w zależności od tego, kto jest aktualnie zalogowany mam zwrócić inny widok, czy porobić wszędzie ify na widoku ? Drugie rozwiązanie wydaje mi się niebezpieczne, bo każdy user może wejrzeć w kod i zobaczyć, że na stronie są jakieś dodatkowe przyciski dla admina.

1

Od tego jest https żeby nie było przechwycenia hasła...

1

Drugie rozwiązanie wydaje mi się niebezpieczne, bo każdy user może wejrzeć w kod i zobaczyć, że na stronie są jakieś dodatkowe przyciski dla admina.

Wnioskuję, że używasz template-engine typu JSP czy thymeleaf. Dyrektywy (m.in. ify, o których wspomniałeś) istnieją tylko po stronie serwera. Wygenerowany HTML ich nie zawiera. Zresztą, sam sprawdź ;)

0

A jeszcze zastanawiałem się jak zrobić to, żeby jeśli ktoś jest zalogowany to na górze strony zamiast formularza logowania był tekst o aktualnie zalogowanym userze + przycisk wyloguj.

Odpowiednią dyrektywą Spring Security.<sec:authorize access="isAuthenticated()">

Też czytałem, że przycisk logout nie może być linkiem tylko musi być wysłany jaki post z uwagi na ataki csrf ?

No raczej. GETem pobierasz niewrażliwe dane, ale do operacji leci POST.

0

@Lectre

Jest jakiś błąd ... zabezpieczyłem sobie żądania /register/** przez requiresSecure() i po wejściu na ten adres zamiast wyświetlać mi stronki z formularzem rejestracyjnym pojawia się stronka z błędem, że localhost odrzucił połączenie, przekierowowuje mi w ogóle z portu 8080 na 8443 i daje błąd ERR_CONNECTION_REFUSED ..

0

W google masz wiele poradników jak skonfigurować sobie Spring Security.

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