Un mémorandum sur la façon de définir le délai d'expiration de session dans Spring Boot.
--Spring Boot v2.0.3 (* Spring Session n'est pas utilisé)
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
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.
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.
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