Na swoim nagraniu z LiveCodingu pokazuje jak myśli programista. Pozwalam sobie tutaj na dużą dawkę spontaniczności, po to, aby pokazać jak przebiega proces myślowy. I stosując te podejście oczywiście natrafiamy na błędy. Ale to dobrze, bo wówczas - jest szansa ujawnienia jakie potencjalne błędy nas czyhają, oraz jak je diagnozować, a następnie sprawnie rozwiązywać. Ten model się bardzo dobrze sprawdza – bo dużo lepiej zapada w pamięć, uczy rozwiązywać problemów i sposobu myślenia.
W trakcie LiveCodingu tworzymy aplikacje w Spring Boot, a następnie wystawimy usługę zabezpieczając ją JWT! Przy wykorzystaniu prostego frontendu pobierzemy dane wystawiane przez backend. Finalnie całość skonteneryzujemy i wyizolujemy do osobnej sieci dla zapewniania bezpieczeństwa.
W częsci pierwszej tworzymy usługę, którą następnie zabezpieczymy przez JWT. To najczęściej wykorzystywane podejście przy komunikacji pomiędzy Backedem (publicznym API) a Frontendem. Dodatkowo implementujemy role, tak, aby użytkownicy tylko z odpowiednim poziomem uprawnień mieli dostęp do wybranych usług. Użyjemy tutaj mechanizmów dostarczanych przez Spring Secuirty wporwadzonych od Spring Boota 2.7 - więc zrobimy to zgodnie z najnowszymi aktualizacjami i zalecenami.
W części drugiej tworzymy frontend do naszego API zabezpieczanego przez JWT. Wykorzystamy do tego Angulara. Pokaże Ci jak wygląda proces uwierzytelniania użytkownika w przypadku, gdzie mamy podział na frontend i backend, a następnie zapewnimy resztę komunikacji przy zastosowaniu JWT. Finalnie skonteneryzujemy nasze aplikacje i utworzymy Docker Compose.
Nasz Docker Compose wzbogacimy o bazę danych, aby jednym kliknięciem zapewnić uruchomienie backendu, bazy danych zawierających zbiór użytkowników z różnymi uprawnieniami, oraz prostego frontendu.
To świetna okazja, aby dowiedzieć się jak zapewnić bezpieczną komunikację pomiędzy backendem i frontendem. Dodatkowo zobaczyć na projekcie jak wykorzystywać mechanizm konteneryzacji by finalnie zaprojektować Docker Compose, który umożliwi nam sprawne postawienie sieci powiązanych usług.