Ein Memorandum zum Festlegen des Sitzungszeitlimits in Spring Boot.
--Spring Boot v2.0.3 (* Spring Session wird nicht verwendet)
Fügen Sie einfach die folgenden Einstellungen zu application.properties hinzu. Übrigens scheinen die Einstellungen unter server.servlet die Einstellungen für den integrierten Anwendungsserver zu sein.
application.properties
server.servlet.session.timeout=30
Die Einstellungen unter server.servlet in application.properties sind Einstellungen für den integrierten Anwendungsserver, sodass sie nicht für die Kriegsbereitstellung verwendet werden. Im Falle eines Kriegseinsatzes kann dies mit einer der folgenden Methoden eingestellt werden.
Erstellen und konfigurieren Sie die Datei 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>
Das Standard-Sitzungszeitlimit für den Anwendungsserver kann in TOMCAT_HOME / conf / web.xml festgelegt werden. In den meisten Fällen möchten Sie jedoch das Sitzungszeitlimit für jede Anwendung festlegen. Erstellen Sie in diesem Fall im Anwendungsprojekt src / main / webapp / WEB-INF / web.xml.
Wenn Sie Eclipse (STS) verwenden, können Sie in den Projekteigenschaften "Deployment Assembly" / src / main / webapp hinzufügen, um das Web zu erstellen, wenn Sie die Anwendung mit WTP starten. Viel Spaß mit .xml.
Obwohl es sich um eine primitive Methode handelt, gibt es auch eine Methode zum Festlegen mit HttpSessionListener, die ausgeführt wird, wenn eine Sitzung erstellt / zerstört wird. Wenn Sie jedoch nur das Sitzungszeitlimit festlegen möchten, scheint es redundant zu sein. Ich denke, es ist besser, es in web.xml anzugeben.
HttpSessionListenerImpl.java
public class HttpSessionListenerImpl implements HttpSessionListener {
@Override
public void sessionCreated(HttpSessionEvent se) {
HttpSession session = se.getSession();
//Stellen Sie das Sitzungszeitlimit in Sekunden ein
session.setMaxInactiveInterval(1800);
}
@Override
public void sessionDestroyed(HttpSessionEvent se) {
}
}
WebAppConfig.java
@Configuration
@Import({HttpSessionListenerImpl.class})
public class WebAppConfig {
// ...
}
Recommended Posts