Stocker des données de session HTTP avec Spring Session

Effectué

Dans cette unité, vous allez apprendre à utiliser Azure Cache pour Redis afin de stocker des données de session HTTP avec Spring Session.

Sessions HTTP

Les sessions HTTP stockent les données utilisateur, en général des informations de sécurité, entre les demandes. Les sessions HTTP peuvent également stocker l’état de l’application ou mettre en cache les données utilisateur fréquemment consultées. Les sessions HTTP étant stockées sur le serveur, elles peuvent présenter un problème de scalabilité. Vous devez répliquer les sessions quand votre application effectue un scale-out sur d’autres nœuds.

Les sessions HTTP sont disponibles dans Java depuis l’introduction des servlets, et des technologies comme JavaServer Faces (JSF) les utilisent de manière intensive. La mise à l’échelle des sessions HTTP a toujours été un problème, et des mécanismes de réplication de session existent dans tous les principaux serveurs d’applications Java.

Un des problèmes tient au fait que les mécanismes de réplication de session HTTP ne sont pas standardisés et qu’ils reposent sur des API spécifiques à chaque serveur d’application. Cette configuration peut entraîner des problèmes de portabilité.

Spring Session

Spring Session est un sous-projet Spring qui fournit une solution générique pour configurer la réplication de session HTTP. Parmi les nombreuses options de back-end disponibles, Spring Session prend en charge Redis. Spring Session réplique toutes les données de session dans Redis pour que chaque nœud ait accès aux sessions utilisateur quand l’application effectue un scale-out.

La configuration de Spring Session, similaire à celle de Spring Data décrite précédemment, illustre un autre scénario d’usage recommandé pour Redis.

Utiliser Spring Session avec Redis

La configuration étant partiellement identique à celle de Spring Data Redis, cela vous évite de faire deux fois la même chose. Pareillement à la configuration de Spring Data, vous utilisez généralement Spring Initializr et effectuez les tâches principales suivantes :

  1. Ajouter la bibliothèque Spring Session Redis à votre application.
  2. Configurer votre fichier application.yml pour vous connecter à votre instance Azure Cache pour Redis.
  3. Utiliser le mécanisme de session HTTP de Java pour stocker et récupérer des données.

Passez à l’unité suivante pour implémenter cette configuration.