Sie müssen nur eine Bean definieren, die einen ServletContextInitializer zurückgibt.
Schreiben Sie den folgenden Code in eine entsprechende Anwendungsklasse
Applcation.java
@Bean
public ServletContextInitializer servletContextInitializer(@Value("${secure.cookie}")boolean secure) {
return servletContext -> {
servletContext.getSessionCookieConfig().setName("hogeSession");
};
}
python
return servletContext -> {
servletContext.getSessionCookieConfig().setHttpOnly(true);
};
return servletContext -> {
servletContext.getSessionCookieConfig().setSecure(true);
}
Es kann ein Hindernis bei der lokalen Entwicklung sein, daher ist es möglicherweise bequemer, es aus den Eigenschaften abzurufen und in der Prod-Einstellung auf true zu setzen.
@Bean
public ServletContextInitializer servletContextInitializer(@Value("${secure.cookie}")boolean secure) {
return servletContext -> {
servletContext.getSessionCookieConfig().setSecure(true);
};
}
Wenn das Cookie nicht verfügbar ist, wird versucht, die Sitzung mit der URL zu verwalten. Dies sollte vermieden werden. Selbst wenn Cookie verwendet werden kann, wird die JESSION-ID nur für den ersten Zugriff an die URL vergeben. Da Spring Boot Servlet 3.0 verwendet, können Sie Cookies nur eingrenzen, indem Sie den Sitzungsverfolgungsmodus einstellen.
return servletContext -> {
servletContext.setSessionTrackingModes(Collections.singleton(SessionTrackingMode.COOKIE);
};
Dies ist gleichbedeutend mit den folgenden Einstellungen in web.xml.
<session-config>
<tracking-mode>COOKIE</tracking-mode>
</session-config>
Wenn Sie diese zusammenstellen, sieht es so aus
@Bean
public ServletContextInitializer servletContextInitializer(@Value("${secure.cookie}")boolean secure) {
ServletContextInitializer servletContextInitializer = new ServletContextInitializer() {
@Override
public void onStartup(ServletContext servletContext) throws ServletException {
servletContext.getSessionCookieConfig().setHttpOnly(true);
servletContext.getSessionCookieConfig().setSecure(secure);
servletContext.setSessionTrackingModes(
Collections.singleton(SessionTrackingMode.COOKIE)
);
}
};
return servletContextInitializer;
}
Referenz https://www.glamenv-septzen.net/view/1093
Recommended Posts