Archiviare i dati delle sessioni HTTP con Spring Session

Completato

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:

  1. Aggiungere la libreria Spring Session Redis all’applicazione.
  2. Configurare il file application.yml per la connessione all'istanza della cache di Azure per Redis.
  3. Usare il meccanismo di sessione HTTP Java per archiviare e recuperare i dati.

Passare all'unità successiva per implementare questa configurazione.