[JAVA] Ändern Sie das Sitzungszeitlimit in Spring Boot
Die Geschichte der Änderung des Sitzungszeitlimits in Spring Boot
Umgebung
Spring Boot v1.5.1.RELEASE
und
Spring Boot v2.1.5.RELEASE (Hinzugefügt am 18.07.2019)
Änderungsmethode
Bearbeiten Sie application.properties (oder .yml-Datei).
Jede der folgenden Optionen kann geändert werden, ohne das Modul zu ändern. Der Vorgang beim Erstellen einer Sitzung oder beim Zerstören einer Sitzung kann jedoch nicht geschrieben werden.
Vor dem Spring Boot v2.x.
- Setzen Sie die Eigenschaft
server.session.timeout
auf eine beliebige Anzahl von Sekunden
- Referenz-URL: https://docs.spring.io/spring-boot/docs/1.5.x/reference/html/common-application-properties.html
Spring Boot v2.x oder höher (Hinzugefügt am 18.07.2019)
- Setzen Sie den Wert auf die Eigenschaft "server.servlet.session.timeout"
- Referenz-URL: https://docs.spring.io/spring-boot/docs/2.0.x/reference/html/common-application-properties.html
- Aus dem obigen Dokument geht hervor, dass Sie in Minuten oder Sekunden angeben können, indem Sie dem numerischen Wert ein Suffix (m = Minute, s = Sekunde) hinzufügen.
- Wenn Sie einen Wert von weniger als 60 Sekunden angeben, beträgt dieser nicht weniger als 60 Sekunden (mindestens 1 Minute).
- Das Zeitlimit für die Sitzung wird schließlich in Minuten verwaltet. Es scheint, dass weniger als 60 Sekunden abgeschnitten werden
- Referenz-URL1: https://github.com/spring-projects/spring-boot/blob/master/spring-boot-project/spring-boot/src/main/java/org/springframework/boot/web/embedded/ tomcat / TomcatServletWebServerFactory.java
- Referenz-URL2: http://k6i.hateblo.jp/entry/2018/07/14/173704
So implementieren Sie HttpSessionListener
- Erstellen Sie eine Klasse, die HttpSessionListener implementiert
- Wenn Sie eine Sitzung erstellen, können Sie die Verarbeitung schreiben, die Sie beim Zerstören der Sitzung ausführen möchten
- Ist es redundant, wenn Sie nur das Sitzungszeitlimit ändern möchten?
MySessionListener.java
public class MySessionListener implements HttpSessionListener {
@Override
public void sessionCreated(HttpSessionEvent se) {
//Timeout-Zeit einstellen
HttpSession session = se.getSession();
session.setMaxInactiveInterval(1800); //Geben Sie die Anzahl der Timeout-Sekunden an. Bei einer negativen Nummer tritt keine Zeitüberschreitung auf
//Verarbeitung beim Erstellen einer Sitzung
// ...
}
@Override
public void sessionDestroyed(HttpSessionEvent se) {
//Verarbeitung beim Verwerfen einer Sitzung
// ...
}
WebAppConfig.java
@Configuration
@Import({MySessionListener.class}) //Importieren und aktivieren
public class WebAppConfig {
}