[JAVA] Setzen Sie Cookies mit Spring Boot

Basic

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");
        };
    }

auf httponly setzen

python



        return servletContext -> {
            servletContext.getSessionCookieConfig().setHttpOnly(true);
        };

Sicheres Attribut hinzufügen


        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);
        };
    }

Geben Sie der URL keine JSESSIONID

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>

Zusammenfassung

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

Setzen Sie Cookies mit Spring Boot
Mit Spring Boot herunterladen
Generieren Sie mit Spring Boot einen Barcode
Hallo Welt mit Spring Boot
Implementieren Sie GraphQL mit Spring Boot
Beginnen Sie mit Spring Boot
Führen Sie LIFF mit Spring Boot aus
SNS-Login mit Spring Boot
Datei-Upload mit Spring Boot
Spring Boot beginnt mit dem Kopieren
Hallo Welt mit Spring Boot
Verwenden Sie Spring JDBC mit Spring Boot
Modul mit Spring Boot hinzufügen
Erste Schritte mit Spring Boot
Erstellen Sie mit Spring Boot einen Mikrodienst
Mail mit Spring Boot verschicken
Erstellen Sie eine App mit Spring Boot 2
Datenbankverknüpfung mit doma2 (Spring Boot)
So stellen Sie Spring Boot + PostgreSQL ein
Spring Boot Programmierung mit VS Code
Bis "Hallo Welt" mit Spring Boot
Erhalten Sie Validierungsergebnisse mit Spring Boot
(Intellij) Hallo Welt mit Spring Boot
Erstellen Sie eine App mit Spring Boot
Google Cloud Platform mit Spring Boot 2.0.0
Ich habe GraphQL mit Spring Boot ausprobiert
[Java] LINE-Integration mit Spring Boot
Beginnend mit Spring Boot 0. Verwenden Sie Spring CLI
Ich habe Flyway mit Spring Boot ausprobiert
Die Nachrichtenkooperation begann mit Spring Boot
Verarbeitung beim Starten einer Anwendung mit Spring Boot
Legen Sie das Spring-Profil fest, wenn Sie die bootRun-Task mit dem Spring Boot Gradle Plugin ausführen
Hallo Welt mit Eclipse + Spring Boot + Maven
Senden Sie regelmäßige Benachrichtigungen mit LineNotify + Spring Boot
Führen Sie einen Transaktionsbestätigungstest mit Spring Boot durch
Versuchen Sie es mit Spring Boot mit VS-Code
Starten Sie die Entwicklung von Webanwendungen mit Spring Boot
Starten Sie die Nginx + Spring Boot-Anwendung mit Docker-Compose
Spring Boot Form
Implementieren Sie CRUD mit Spring Boot + Thymeleaf + MySQL
Asynchrone Verarbeitung mit Spring Boot unter Verwendung von @Async
Implementieren Sie die Paging-Funktion mit Spring Boot + Thymeleaf
Spring Boot Denken Sie daran
gae + frühlingsstiefel
(IntelliJ + gradle) Hallo Welt mit Spring Boot
Verwenden Sie den Cache mit EhCashe 2.x mit Spring Boot
Formularklassenvalidierungstest mit Spring Boot
Führen Sie die WEB-Anwendung mit Spring Boot + Thymeleaf aus
Erreichen Sie die BASIC-Authentifizierung mit Spring Boot + Spring Security
Erstellen Sie eine Website mit Spring Boot + Gradle (jdk1.8.x)
Konfigurieren Sie die Spring Boot-Anwendung mit dem Maven Multi-Modul
Testen Sie den Controller mit Mock MVC im Spring Boot
Asynchrone Verarbeitung mit regelmäßiger Ausführung in Spring Boot
Bis zur Datenerfassung mit Spring Boot + MyBatis + PostgreSQL
Erstellen Sie mit Spring Boot eine einfache Such-App
Hash-Passwörter mit Spring Boot + Spring Security (mit Salt, mit Stretching)
Verwendung von MyBatis2 (iBatis) mit Spring Boot 1.4 (Spring 4)
Führen Sie die Scala-Anwendung mit Spring Boot über Gradle aus