Mon application utilise actuellement Spring Session avec Redis comme backend.
J'ai cherché dans documentation officielle pour Spring Session mais je n'ai pas pu trouver le délai d'expiration de session par défaut lors de l'utilisation de ce module.
De plus, je ne sais pas comment modifier ce délai par défaut si nécessaire.
Quelqu'un peut-il s'il vous plaît conseiller?
Le moyen le plus simple de configurer le délai d'expiration de la session lors de l'utilisation du référentiel redis est
@EnableRedisHttpSession(maxInactiveIntervalInSeconds = 60)
La session expire lorsqu'elle n'est plus disponible dans le référentiel. Le délai d'attente peut être configuré avec setDefaultMaxInactiveInterval(int)
sur RedisOperationsSessionRepository
et MapSessionRepository
. La valeur par défaut est minutes.
Si vous utilisez Spring Boot, à partir de la version 1.3, il synchronisera automatiquement la valeur avec la propriété server.session.timeout
De la configuration de l'application.
Notez que l'un des inconvénients lors de l'utilisation de la session de printemps est que javax.servlet.http.HttpSessionListener
N'est pas invoqué.
Si vous devez réagir aux événements d'expiration de session, vous pouvez vous abonner à l'événement d'application SessionDestroyedEvent
de votre application Spring.
server.session.timeout
est obsolète et a été remplacé par server.servlet.session.timeout
dans Spring Boot 2.0.