Maison  >  Article  >  Java  >  Comment définir le délai d'expiration de la session dans SpringBoot Session

Comment définir le délai d'expiration de la session dans SpringBoot Session

WBOY
WBOYavant
2023-05-15 14:37:062209parcourir

Découverte du problème

Problème de délai d'expiration de session de production du projet Springboot, décrivez le problème :

Configurez la sortie de session en modifiant application.yaml dans l'environnement de test et vérifiez que la configuration de sortie de session prend effet après avoir défini des heures différentes, donc l'expiration est directement définie. Il a été publié dans l'environnement de production en 8 heures. Cependant, j'ai reçu à midi des commentaires de clients indiquant que le délai d'expiration du projet était court. Si aucune opération n'est effectuée pendant une demi-heure, la session expirera et nécessitera une connexion répétée.

Solution

Environnement de développement : le projet Springboot intègre Tomcat, donc la configuration de sortie de session dans application.yaml dans le projet est efficace.

Environnement de production : la version de l'environnement de production consiste à créer l'image via Docker via des services cloud (Docker+K8s). Cependant, la sortie de session dans le web.xml de l'image de base tomacat est définie sur 30 minutes.

Solution : Enfin, lorsque Docker crée l'image, placez le web.xml modifié dans le DockerFile, écrasez le web.xml d'origine de l'image de base, reconstruisez l'image et remplacez avec succès le web.xml de l'image de base d'origine, et le problème est enfin résolu.

Invalidation de la session : une session est créée à partir du moment où l'utilisateur se connecte. Lorsque l'utilisateur arrête de fonctionner pendant une durée supérieure au délai de sortie de session, la session expire.

1. Définissez

[html] view plain copy<!-- 时间单位为分钟   -->  <session-config>
      <session-timeout>15</session-timeout></session-config>
dans le site Web
[html] view plain copy  <!-- ==================== Default Session Configuration ================= -->  
  <!-- You can set the default session timeout (in minutes) for all newly   -->  
  <!-- created sessions by modifying the value below.    -->  
	<session-config>  
        <session-timeout>30</session-timeout>  
	</session-config>

5. Copiez web.xml dans DockerFile

session.setMaxInactiveInterval(30*60);//以秒为单位
.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer