Legen Sie für die Servlet 3.0-Umgebung Folgendes in web.xml fest. Referenz: Java - Ist es möglich, jsessionid im Tomcat-Servlet zu deaktivieren? - Stapelüberlauf Ein Beispiel dafür in früheren Versionen finden Sie unter dem Referenzlink.
<session-config>
<tracking-mode>COOKIE</tracking-mode>
</session-config>
Im Falle des Frühlings gehen Sie wie folgt vor. Referenz: [Java - Verfolgungsmodus auf Cookie setzen, um angehängte Sitzungs-ID zu entfernen, ohne web.xml zu verwenden - Stapelüberlauf](https://stackoverflow.com/questions/16262285/set-tracking-mode-to-cookie-to- entferne-angehängte-Sitzungs-ID-ohne-Verwendung-von-Web-XML)
import javax.servlet.ServletContext;
import javax.servlet.ServletException;
import javax.servlet.SessionTrackingMode;
import org.springframework.web.WebApplicationInitializer;
public class WebMVCApplicationInitializer implements WebApplicationInitializer {
@Override
public void onStartup(ServletContext container) throws ServletException {
Set<SessionTrackingMode> s = new HashSet<>();
s.add(SessionTrackingMode.COOKIE);
container.setSessionTrackingModes(s);
}
}
Wenn Sie spring-security-web verwenden, können Sie auch AbstractSecurityWebApplicationInitializer verwenden.
<!-- https://mvnrepository.com/artifact/org.springframework.security/spring-security-web -->
<dependency>
<groupId>org.springframework.security</groupId>
<artifactId>spring-security-web</artifactId>
<version>4.2.3.RELEASE</version>
</dependency>
import java.util.EnumSet;
import java.util.Set;
import javax.servlet.SessionTrackingMode;
import org.springframework.security.web.context.AbstractSecurityWebApplicationInitializer;
public class WebSecutityInit extends AbstractSecurityWebApplicationInitializer {
@Override
protected Set<SessionTrackingMode> getSessionTrackingModes() {
return EnumSet.of(SessionTrackingMode.SSL);
}
}