2015-09-10 7 views
8

La mia applicazione attualmente utilizza Spring Session insieme a Redis come back-end.Qual è il timeout della sessione predefinito e come configurarlo quando si utilizza Spring Session con Redis come backend

Ho cercato nel official documentation per Spring Session ma non sono riuscito a trovare il timeout della sessione predefinito quando si utilizza quel modulo.

Inoltre, non sono sicuro di come modificare il timeout predefinito, se necessario.

Qualcuno può consigliare?

risposta

15

Il modo più semplice per configurare il timeout di sessione quando si utilizza repository Redis è

@EnableRedisHttpSession(maxInactiveIntervalInSeconds = 60) 

La sessione scade quando non è più disponibile nel repository. Il timeout può essere configurato con setDefaultMaxInactiveInterval(int) su entrambi RedisOperationsSessionRepository e MapSessionRepository. Il valore predefinito è 30 minuti.

Se si utilizza l'avvio a molla, a partire dalla versione 1.3 verrà automaticamente sincronizzato il valore con la proprietà server.session.timeout dalla configurazione dell'applicazione.

Si noti che una delle carenze quando si utilizza la sessione di primavera è che non vengono invocati i valori javax.servlet.http.HttpSessionListener s.

Se è necessario rispondere agli eventi di scadenza della sessione, è possibile iscriversi all'evento SessionDestroyedEvent dell'applicazione Spring.

+2

Intendi 30 minuti? – balteo

+0

@balteo sì è 30 minuti non secondi. Ho aggiornato la risposta grazie. – tsachev

Problemi correlati