Файл cookie JSESSIONID заблокирован в Chrome с http на https в Iframe

#cookies #iframe #chromium #jsessionid #samesite

Вопрос:

У меня есть веб-приложение Java, развернутое в weblogic, в котором chrome заблокировал файл cookie JSESSIONID, поскольку «Схема того же сайта» из Chromium стала по умолчанию в версии 92.

Мое веб-приложение находится в Iframe с сайта, который находится в другом домене, но в том же поддомене. Первые страницы моего веб-приложения находятся в http, а затем отправляют сообщение в другой домен, который находится в https. В этот момент JSESSION заблокирован. Поэтому, когда поток возвращается в мое веб-приложение (эти страницы уже находятся в https), идентификатор JESSIONID остается заблокированным.

Ниже приведена некоторая информация, иллюстрирующая сценарий:

Поток выглядит следующим образом

  1. Я получаю доступ http://xxx.mycompany.com
  2. Iframe внутри него для доступа к моему приложению http://yyy.mydomain.com
  3. Я создаю JSESSIONID
  4. Я делаю СООБЩЕНИЕ, чтобы https://zzx.mydomain.com
  5. В этот момент chrome блокирует мой файл cookie JSESSIONID
  6. IAM перенаправляет на https://yyy.mydomain.com
  7. JSESSIONID остается заблокированным

Ниже на скриншоте файл cookie на шаге 3

введите описание изображения здесь

Ниже на скриншоте файл cookie на шаге 5

введите описание изображения здесь

Примечание: если я выполняю тот же поток, но без Iframe, это означает, что прямой доступ к URL-адресу на шаге 2 файл cookie не заблокирован:

введите описание изображения здесь

Я попытался выполнить следующие действия

Я установил в apache конфигурацию ниже. Это не сработало, единственный эффект, который это дало, — разрешить создать новый файл cookie JSESSIONID после его перенаправления на шаг 6. Но этого недостаточно, мне нужен один и тот же файл cookie с шага 1 до шага 6.

 # It was set only in the https
Header edit Set-Cookie ^(JSESSIONID.*)$ $1;SameSite=None;Secure