Archiviare i dati delle sessioni HTTP con Spring Session
In questa unità verranno fornite informazioni su come usare la cache di Azure per Redis per archiviare i dati di sessione HTTP tramite Spring Session.
Sessioni HTTP
Le sessioni HTTP archiviano i dati utente, in genere le informazioni sulla sicurezza, tra le richieste. Le sessioni HTTP possono anche archiviare lo stato dell'applicazione o memorizzare nella cache i dati utente a cui si accede di frequente. Poiché le sessioni HTTP vengono archiviate nel server, possono presentare un problema di scalabilità. È necessario replicare le sessioni quando l'applicazione viene ridimensionata in più nodi.
Le sessioni HTTP sono disponibili in Java fin dalle origini delle servlet e tecnologie come JavaServer Faces (JSF) ne fanno largo uso. Il ridimensionamento delle sessioni HTTP è sempre stato un problema e i meccanismi di replica delle sessioni esistono in tutti i principali server applicazioni Java.
Uno dei problemi riguarda il fatto che i meccanismi di replica delle sessioni HTTP non sono standardizzati, ma si basano su API specifiche per ogni server applicazione. Questa configurazione può causare problemi di portabilità.
Spring Session
Spring Session è un sottoprogetto di Spring che fornisce una soluzione generica per configurare la replica delle sessioni HTTP. Spring Session supporta Redis come una delle diverse opzioni back-end. Spring Session replica tutti i dati delle sessioni all'interno di Redis, in modo che quando l'applicazione viene ridimensionata, ogni nodo ha accesso alle sessioni degli utenti.
La configurazione di Spring Session è simile alla precedente configurazione di Spring Data e illustra un altro scenario di utilizzo consigliato di Redis.
Usare Spring Session con Redis
Alcune configurazioni sono le stesse di Spring Data Redis ed è necessario eseguirle una sola volta per entrambe le soluzioni. Come per la configurazione di Spring Data, in genere si usa Spring Initializr e si eseguono le attività principali seguenti:
- Aggiungere la libreria Spring Session Redis all’applicazione.
- Configurare il file application.yml per la connessione all'istanza della cache di Azure per Redis.
- Usare il meccanismo di sessione HTTP Java per archiviare e recuperare i dati.
Passare all'unità successiva per implementare questa configurazione.