• Home
  • /
  • Angular
  • /
  • S2E9 Przygotowanie Spring Boot do produkcji

S2E9 Przygotowanie Spring Boot do produkcji

Ten krok jest najważniejszym podczas budowania aplikacji, o którym nie możesz zapomnieć lub którego nie możesz pominąć. Jeśli nie podejmiesz żadnych działań i od razu wdrożysz aplikację na serwer produkcyjny narażasz siebie np. na skasowanie / zmianę bazy danych bez twojej wiedzy i zgody.

Ten artykuł opisuje w jaki sposób zabezpieczyć aplikację w produkcji, znajdziesz tu informacje:

Ten wpis zawiera informacje w jaki sposób:

* Usunąć funkcjonalność rejestracji użytkownika,
* Poprawnie ustawić secret dla tokenu jwt,
* Wstrzyknąć ustawiony secret,
* Włączyć i skonfigurować CORS (Cross-Origin Resource Sharing).

Przed przystąpieniem do tego kroku powinieneś posiadać aplikację jhipster, która jest już po developmencie logiki biznesowej i czeka na wdrożenie produkcyjne. Skorzystaj z repozytorium i pobierz kod aplikacji. Przełącz się na mastera:

https://gitlab.com/jaktworzycaplikacje.pl/skrotowiec/-/tree/master

1. Usuwanie możliwości rejestracji użytkownika:

Pierwszym i najprostszym krokiem jaki wykonasz będzie zmiana hasła dla konta admina. Zmień je natychmiast po wgraniu aplikacji na serwer. Następnie usuń użytkownika o loginie user, nie będzie do niczego potrzebny.

Teraz usuń wszystkie testy oraz metody odpowiedzialne za rejestrację użytkownika.

Lista plików do usunięcia:

* AccountResourceIT.java,
* Cały moduł register w webapp

Usuń niepotrzebne wywołania w komponentach:

* navbar (widok html),
* home (widok html),
* UserService (metoda registerUser),
* AccountResource.java (metoda registerAccount),
* account.module (usunięcie deklaracji modułu).

2.Ustawianie secretu dla tokenu JWT

Secret jest wstępnie wygenerowany przez jhipstera i ustawiony w pliku:

application-prod.yml

w pozycji:

base64-secret: ODdlYWYzNDIwOTVmMzQ3NzI5ZTExOGFlNWFjM2Q0NTAyMTRhZjBhZmJhNmYxYjg3MzAzYjY2YjhjY2RiYjgxN2Y5ZTY2MGM5OTFlMWVjZTNkNjViODUyYmViYmM0NGRlZjk5MmUwMDdkNTFhN2YyZDQ0Yzc5ZjA4MjgxMmY0MTg=

Nad propertiesem jest szeroki opis w jaki sposób ustawić i przechowywać secret dla tokenu. Ja polecam skorzystanie z jenkinsa do wstrzykiwania wygenerowanego przez Ciebie i zakodowanego secretu. Skorzystaj z dodatku credentials o którym pisałem w wpisie poświęconym konfiguracji jenkinsa:

S2E6 Kurs Jenkins Continuous Deployment dla spring boot & angular.

3. Włączenie i konfiguracja CORS

Cross-Origin Resource Sharing włączamy w pliku:

application.yaml

Konfigurując następujące pola:

cors:
    allowed-origins: "tutaj podaj swoje origin"
    allowed-methods: "*"
    allowed-headers: "*"
    exposed-headers: "Authorization,Link,X-Total-Count,X-${jhipster.clientApp.name}-alert,X-${jhipster.clientApp.name}-error,X-${jhipster.clientApp.name}-params"
    allow-credentials: true
    max-age: 1800

W polu allowed-origins ustaw domenę z jakiej będziesz się łączył do spring boot. Dla skrótowca będzie to:

"https://78.10.223.112:443, https://skrotowiec.elk.pl, https://skrotowiec.elk.pl:443"

Dodaj komentarz