Установка jsessonid cookie для атрибута SameSite = Strict при весенней загрузке?

Какова конфигурация весенней загрузки для установки файла cookie jsessionId как SameSite = Strict.

JsessionId необходимо добавить SameSite = Strict или существующий файл cookie, а не новое поколение файлов cookie. Поддерживается ли он?

Возможный дубликат Файл cookie того же сайта в Spring Security

user7294900 29.10.2018 12:08

да, но хотите, чтобы SameSite = Strict для файлов cookie jsessionId

chakleChincken 29.10.2018 12:16

Проверьте это решение. Возможно, вы сможете решить проблему с помощью небольшой настройки. stackoverflow.com/a/64558083/4423695

ThilankaD 06.02.2021 13:21
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
5
3
6 121
3

Ответы 3

Согласно эта открытая проблема в Spring Security, это еще не поддерживается.

Я использовал Rfc6265CookieProcessor для настройки флага SameSite в приложении весенней загрузки в качестве временного решения.

build.gradle:

dependencies {
    implementation 'org.springframework.boot:spring-boot-starter-tomcat'
    ...
}

Конфиг в основном классе:

@Bean
public ServletWebServerFactory servletContainer() {
    return new TomcatServletWebServerFactory() {
        @Override
        protected void postProcessContext(Context context) {
            Rfc6265CookieProcessor rfc6265CookieProcessor = new Rfc6265CookieProcessor();
            rfc6265CookieProcessor.setSameSiteCookies("Strict");
            context.setCookieProcessor(rfc6265CookieProcessor);
        }
    };
}

Класс Context, который вам нужно импортировать, взят из org.apache.catalina.Context.

xonya 23.06.2020 12:38

В Undertow 2.1.0.Final и более поздних версиях это можно сделать следующим образом:

public static final String COOKIE_PATTERN = "JSESSIONID";

@Bean
public UndertowServletWebServerFactory undertowServletWebServerFactory() {
    UndertowServletWebServerFactory undertow = new UndertowServletWebServerFactory();
    
    undertow.addDeploymentInfoCustomizers(
            deploymentInfo -> deploymentInfo.addInitialHandlerChainWrapper(
                    handler -> new SameSiteCookieHandler(handler, CookieSameSiteMode.STRICT.name(), COOKIE_PATTERN)
            ));
    
    return undertow;
}

Другие вопросы по теме