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