[JAVA] Spring Boot - Comment définir le délai d'expiration de la session

Un mémorandum sur la façon de définir le délai d'expiration de session dans Spring Boot.

Environnement

--Spring Boot v2.0.3 (* Spring Session n'est pas utilisé)

Méthode de réglage

Pour la construction JAR

Ajoutez simplement les paramètres suivants à application.properties. À propos, les paramètres sous server.servlet semblent être les paramètres du serveur d'applications intégré.

application.properties


server.servlet.session.timeout=30

Pour WAR build

Les paramètres sous server.servlet dans application.properties sont des paramètres du serveur d'applications intégré, ils ne sont donc pas utilisés pour le déploiement de guerre. Dans le cas d'un déploiement de guerre, il peut être défini par l'une des méthodes suivantes.

Comment définir dans web.xml

Créez et configurez web.xml.

web.xml


<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee
         http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"
    version="4.0">

    <session-config>
        <session-timeout>30</session-timeout>
    </session-config>

</web-app>

Il est possible de définir le délai d'expiration de session par défaut pour le serveur d'applications dans TOMCAT_HOME / conf / web.xml. Cependant, dans la plupart des cas, vous souhaiterez définir le délai d'expiration de la session pour chaque application. Dans ce cas, créez src / main / webapp / WEB-INF / web.xml dans le projet d'application.

En passant, si vous utilisez eclipse (STS), vous pouvez ajouter / src / main / webapp dans les propriétés du projet "Deployment Assembly" pour créer le site Web lorsque vous démarrez l'application avec WTP. Heureux d'utiliser .xml.

Comment définir avec HttpSessionListener

Bien qu'il s'agisse d'une méthode primitive, il existe également une méthode de définition avec HttpSessionListener, qui est exécutée lorsque la session est créée / détruite. Cependant, si vous souhaitez simplement définir le délai d'expiration de la session, cela semble redondant, donc je pense qu'il est préférable de le spécifier dans web.xml.

HttpSessionListenerImpl.java


public class HttpSessionListenerImpl implements HttpSessionListener {

    @Override
    public void sessionCreated(HttpSessionEvent se) {
        HttpSession session = se.getSession();
        //Définir le délai d'expiration de la session en secondes
        session.setMaxInactiveInterval(1800);
    }

    @Override
    public void sessionDestroyed(HttpSessionEvent se) {
    }
}

WebAppConfig.java


@Configuration
@Import({HttpSessionListenerImpl.class})
public class WebAppConfig {
    // ...
}

Recommended Posts

Spring Boot - Comment définir le délai d'expiration de la session
Comment configurer Spring Boot + PostgreSQL
Modifier le délai d'expiration de la session dans Spring Boot
Comment utiliser les attributs de session Spring Boot (@SessionAttributes)
Comment définir l'injection de dépendance Spring Boot (DI)
Comment utiliser ModelMapper (Spring boot)
Comment modifier la valeur de paramètre de application.properties au moment du démarrage dans Spring Boot
Comment créer une base de données H2 n'importe où
Spring Boot - Comment définir le délai d'expiration de la session
[Java] Comment régler la date sur 00:00:00
Comment diviser un fichier de message Spring Boot
Comment utiliser MyBatis2 (iBatis) avec Spring Boot 1.4 (Spring 4)
Comment réduire l'image de Spring Boot Docker
Comment se lier avec un fichier de propriétés dans Spring Boot
[Spring Boot] Comment se référer au fichier de propriétés
Comment définir des variables d'environnement dans le fichier de propriétés de l'application Spring Boot
Comment régler l'heure d'affichage sur l'heure japonaise dans les rails
Comment créer un projet Spring Boot dans IntelliJ
Comment utiliser CommandLineRunner dans Spring Batch of Spring Boot
Comment démarrer par environnement avec Spring Boot de Maven
Définir le paramètre contextuel dans Spring Boot
Essayez Spring Boot de 0 à 100.
Introduction à Spring Boot ① ~ DI ~
Introduction à Spring Boot ② ~ AOP ~
Comment définir des constantes Java
Définir des cookies avec Spring Boot
Introduction à Spring Boot, partie 1
Comment régler chrony lorsque le temps change dans CentOS7
Comment appeler et utiliser l'API en Java (Spring Boot)
Comment contrôler les transactions dans Spring Boot sans utiliser @Transactional
Vérifiez comment définir le délai d'expiration lors de la connexion avec Spring + HikariCP + MySQL et de l'exécution de SQL
Comment utiliser Lombok au printemps
Comment faire un test unitaire de Spring AOP
Spring Boot pour la première fois
Remarques sur l'utilisation de Spring Data JDBC
[Comment installer Spring Data Jpa]
Mise à niveau de la botte à ressort de la série 1.5 à la série 2.0
Comment définir Lombok dans Eclipse
Comment créer un hinadan pour un projet Spring Boot à l'aide de SPRING INITIALIZR
Comment créer votre propre contrôleur correspondant à / error avec Spring Boot
Comment définir et utiliser un profil avec une configuration basée sur des annotations dans le framework Spring
Comment faire coexister CsrfRequestDataValueProcessor et RequestDataValueProcessor original sur Spring Boot
Définissez le résultat de l'authentification Spring Security sur JSON
Comment appliquer immédiatement les modifications de Thymeleaf au navigateur avec #Spring Boot + maven
[Introduction à Spring Boot] Vérification de la validation du formulaire
[Spring Boot] J'ai étudié comment implémenter le post-traitement de la demande reçue.
Comment lire le corps de la requête plusieurs fois avec Spring Boot + Spring Security
Comment inclure Spring Tool dans Eclipse 4.6.3?
L'histoire de la transition de Spring Boot 1.5 à 2.1
[Spring Boot Actuator] Comment enregistrer manuellement votre propre processus de vérification de l'état
Comment définir JAVA_HOME avec l'appassembler-maven-plugin de Maven
Modifications lors de la migration de Spring Boot 2.0 vers Spring Boot 2.2
[Spring MVC] Comment transmettre des variables de chemin
Nécessaire pour iOS 14? Comment définir NSUserTrackingUsageDescription
Ajoutez une botte de printemps et un dégradé à éclipse
[Spring Boot] Comment obtenir des propriétés dynamiquement à partir d'une chaîne contenue dans une URL
Comment effectuer UT avec Excel en tant que données de test avec Spring Boot + JUnit5 + DBUnit
Partie 2 Partie II. Comment procéder avec la mise en route Guide de référence de Spring Boot Remarque ①
[Inverser] Spring Security (mis à jour de temps en temps)
Comprendre comment partager des connexions Spring DB (transactions DB)
Définir l'heure de LocalDateTime à une heure spécifique