Esercitazioni di Spring Boot 9: Spring Security configurazione di base
Nei precedenti articoli abbiamo visto come creare delle API in stile RESTful per accedere ad un ipotetico database di calciatori. In una applicazione reale l'accesso non è mai consentito a chiunque, come in questo caso, ma riservato solo agli utenti regolarmente registrati e autenticati. Vediamo come introdurre la sicurezza nei progetti basati su Spring Boot.
Questo compito è affidato a Spring Security che fa parte del vasto ecosistema di Spring. Il primo passo, e anche l'unico in questo caso, è l'aggiunta di una specifica dipendenza nel pom.xml
Avviando l'applicazione dall'IDE o da riga di comando con mvn spring-boot:run
e richiamando uno degli endpoint disponibili possiamo notare la presenza di un form di autenticazione.
Ma quali sono le credenziali da utilizzare visto che non abbiamo scritto alcuna riga di codice?
Spring Security di default crea l'utente "user" e genera una password ad ogni riavvio dell'applicazione. Tale password è visibile unicamente nei log.
Una volta inserite le credenziali possiamo visualizzare la lista dei calciatori senza alcun problema.
Le impostazioni di base sono le seguenti:
- tutti i path richiedono l'autenticazione
- è presente un form di login
- è attiva la basic authentication
- è disponibile un utente "user" con password rigenerata automaticamente ad ogni riavvio dell'applicazione
- sono gestiti gli errori.
E' evidente la poca praticità di una password che varia continuamente, per cui possiamo fare una piccola modifica per impostarla in maniera permanente cambiando anche il nome dell'utente nonchè il suo ruolo.
Basta aggiungere al file application.properties le seguenti righe
spring.security.user.name=mauro
spring.security.user.password=1234
spring.security.user.roles=admin
Ora possiamo autenticarci come mauro/1234.
Come al solito il codice è disponibile su GitHub.
Per ora è tutto. La prossima volta vedremo come personalizzare la configurazione per renderla più adatta ad un utilizzo reale.
[VIDEO]
[LINKS]