Il vous suffit de définir un bean qui renvoie un ServletContextInitializer.
Écrivez le code suivant dans une classe Application appropriée
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);
}
Cela peut être un obstacle lors du développement local, il peut donc être plus pratique de l'obtenir à partir des propriétés et de le définir sur true dans le paramètre prod.
@Bean
public ServletContextInitializer servletContextInitializer(@Value("${secure.cookie}")boolean secure) {
return servletContext -> {
servletContext.getSessionCookieConfig().setSecure(true);
};
}
Si le cookie n'est pas disponible, il essaiera de gérer la session avec l'URL, ce qui doit être évité. Même si le cookie peut être utilisé, l'ID JESSION ne sera donné à l'URL que pour le premier accès. Puisque Spring Boot utilise Servlet 3.0, vous ne pouvez vous limiter aux cookies qu'en définissant le mode de suivi de session.
return servletContext -> {
servletContext.setSessionTrackingModes(Collections.singleton(SessionTrackingMode.COOKIE);
};
Ceci est synonyme des paramètres suivants dans web.xml.
<session-config>
<tracking-mode>COOKIE</tracking-mode>
</session-config>
Si vous les configurez ensemble, cela ressemblera à ceci
@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;
}
référence https://www.glamenv-septzen.net/view/1093
Recommended Posts