Browse Source

Ensure undertow session cookie path is correct

Explicitly set a ServletSessionConfig when the context path is "". This
is a workaround for UNDERTOW-350 to ensure that the session cookie path
is correctly set.

Fixes gh-2065
pull/2066/merge
Phillip Webb 11 years ago
parent
commit
78c22813d3
  1. 8
      spring-boot/src/main/java/org/springframework/boot/context/embedded/undertow/UndertowEmbeddedServletContainerFactory.java

8
spring-boot/src/main/java/org/springframework/boot/context/embedded/undertow/UndertowEmbeddedServletContainerFactory.java

@ -31,6 +31,7 @@ import io.undertow.servlet.api.DeploymentInfo; @@ -31,6 +31,7 @@ import io.undertow.servlet.api.DeploymentInfo;
import io.undertow.servlet.api.DeploymentManager;
import io.undertow.servlet.api.ListenerInfo;
import io.undertow.servlet.api.MimeMapping;
import io.undertow.servlet.api.ServletSessionConfig;
import io.undertow.servlet.api.ServletStackTraces;
import io.undertow.servlet.handlers.DefaultServlet;
import io.undertow.servlet.util.ImmediateInstanceFactory;
@ -68,6 +69,7 @@ import org.springframework.core.io.ResourceLoader; @@ -68,6 +69,7 @@ import org.springframework.core.io.ResourceLoader;
import org.springframework.util.Assert;
import org.springframework.util.ResourceUtils;
import org.springframework.util.SocketUtils;
import org.springframework.util.StringUtils;
import org.xnio.Options;
import org.xnio.SslClientAuthMode;
@ -329,6 +331,12 @@ public class UndertowEmbeddedServletContainerFactory extends @@ -329,6 +331,12 @@ public class UndertowEmbeddedServletContainerFactory extends
deployment.setServletStackTraces(ServletStackTraces.NONE);
deployment.setResourceManager(getDocumentRootResourceManager());
configureMimeMappings(deployment);
if (StringUtils.isEmpty(getContextPath())) {
// Work around UNDERTOW-350
ServletSessionConfig servletSessionConfig = new ServletSessionConfig();
servletSessionConfig.setPath("/");
deployment.setServletSessionConfig(servletSessionConfig);
}
for (UndertowDeploymentInfoCustomizer customizer : this.deploymentInfoCustomizers) {
customizer.customize(deployment);
}

Loading…
Cancel
Save