Skip to content

Commit c23a764

Browse files
committed
Set the default session timeout to 30 mins
Update AbstractConfigurableEmbeddedServletContainer to set the default session timeout to 30 minutes. Also correct Javadoc to specify that the default is '30 minutes'. Fixes gh-2084
1 parent 22e8478 commit c23a764

File tree

4 files changed

+14
-10
lines changed

4 files changed

+14
-10
lines changed

spring-boot/src/main/java/org/springframework/boot/context/embedded/AbstractConfigurableEmbeddedServletContainer.java

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,9 @@
3737
public abstract class AbstractConfigurableEmbeddedServletContainer implements
3838
ConfigurableEmbeddedServletContainer {
3939

40+
private static final int DEFAULT_SESSION_TIMEOUT = (int) TimeUnit.SECONDS
41+
.toMinutes(30);
42+
4043
private String contextPath = "";
4144

4245
private boolean registerDefaultServlet = true;
@@ -57,7 +60,7 @@ public abstract class AbstractConfigurableEmbeddedServletContainer implements
5760

5861
private InetAddress address;
5962

60-
private int sessionTimeout;
63+
private int sessionTimeout = DEFAULT_SESSION_TIMEOUT;
6164

6265
private Ssl ssl;
6366

spring-boot/src/main/java/org/springframework/boot/context/embedded/ConfigurableEmbeddedServletContainer.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -49,8 +49,8 @@ public interface ConfigurableEmbeddedServletContainer {
4949
void setPort(int port);
5050

5151
/**
52-
* The session timeout in seconds (default 30). If 0 or negative then sessions never
53-
* expire.
52+
* The session timeout in seconds (default 30 minutes). If 0 or negative then sessions
53+
* never expire.
5454
* @param sessionTimeout the session timeout
5555
*/
5656
void setSessionTimeout(int sessionTimeout);

spring-boot/src/main/java/org/springframework/boot/context/embedded/jetty/JettyEmbeddedServletContainerFactory.java

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,7 @@
2828
import org.eclipse.jetty.http.MimeTypes;
2929
import org.eclipse.jetty.server.Connector;
3030
import org.eclipse.jetty.server.Server;
31+
import org.eclipse.jetty.server.SessionManager;
3132
import org.eclipse.jetty.server.handler.ErrorHandler;
3233
import org.eclipse.jetty.server.ssl.SslSocketConnector;
3334
import org.eclipse.jetty.servlet.ErrorPageErrorHandler;
@@ -227,13 +228,13 @@ protected final void configureWebAppContext(WebAppContext context,
227228
.getClassLoader())) {
228229
addJspServlet(context);
229230
}
230-
231231
ServletContextInitializer[] initializersToUse = mergeInitializers(initializers);
232232
Configuration[] configurations = getWebAppContextConfigurations(context,
233233
initializersToUse);
234234
context.setConfigurations(configurations);
235-
context.getSessionHandler().getSessionManager()
236-
.setMaxInactiveInterval(getSessionTimeout());
235+
int sessionTimeout = (getSessionTimeout() > 0 ? getSessionTimeout() : -1);
236+
SessionManager sessionManager = context.getSessionHandler().getSessionManager();
237+
sessionManager.setMaxInactiveInterval(sessionTimeout);
237238
postProcessWebAppContext(context);
238239
}
239240

spring-boot/src/main/java/org/springframework/boot/context/embedded/tomcat/TomcatEmbeddedServletContainerFactory.java

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -344,12 +344,12 @@ protected void configureContext(Context context,
344344
for (MimeMappings.Mapping mapping : getMimeMappings()) {
345345
context.addMimeMapping(mapping.getExtension(), mapping.getMimeType());
346346
}
347-
long timeout = getSessionTimeout();
348-
if (timeout > 0) {
347+
long sessionTimeout = getSessionTimeout();
348+
if (sessionTimeout > 0) {
349349
// Tomcat timeouts are in minutes
350-
timeout = Math.max(TimeUnit.SECONDS.toMinutes(timeout), 1L);
350+
sessionTimeout = Math.max(TimeUnit.SECONDS.toMinutes(sessionTimeout), 1L);
351351
}
352-
context.setSessionTimeout((int) timeout);
352+
context.setSessionTimeout((int) sessionTimeout);
353353
for (TomcatContextCustomizer customizer : this.tomcatContextCustomizers) {
354354
customizer.customize(context);
355355
}

0 commit comments

Comments
 (0)