Используйте JWT для идентификации сеанса на стороне сервера в Wildfly

У меня есть приложение, работающее как центральная служба, которое можно встроить в виде i-frame в произвольные веб-страницы. Это приложение работает на сервере приложений Wildfly и использует сеансы на стороне сервера с файлами cookie. С точки зрения браузера эти файлы cookie являются сторонними файлами cookie.

Некоторое время назад Google объявил, что отключит поддержку сторонних файлов cookie в Chrome в 2022 году. Я понимаю, что мне придется переработать архитектуру приложения, если я хочу, чтобы оно работало с Chrome. Теоретически, я думаю, должно быть возможно использовать сеансы без файлов cookie. Я мог бы выполнить аутентификацию OAuth 2.0 через Javascript и отправить токен доступа в качестве аутентификации носителя в каждом запросе сервера. Сервер может использовать этот токен для идентификации сеанса.

К сожалению, я не хочу создавать сервер с нуля, я использую Wildfly для обработки сеанса. Я знаю, что это сложная тема, но я был бы признателен за некоторые подсказки, как заставить Wildfly (или любой другой контейнер Jave EE) использовать идентификатор, отличный от файла cookie, для идентификации сеанса.


person Martin Leim    schedule 20.04.2021    source источник


Ответы (1)


Спецификация сервлета 3 предусматривает 3 способа управления сессиями:

  • ПЕЧЕНЬЕ
  • URL-адрес
  • SSL

Вы можете указать желаемый режим в web.xml вашей войны:

<web-app ...>
  <session-config>
    <tracking-mode>URL</tracking-mode>
    <!--<tracking-mode>COOKIE</tracking-mode> -->
  </session-config>
</web-app>

но я думаю, вы также можете определить его глобально, я имею в виду на уровне Wildfly (как режим по умолчанию)

Полезная ссылка: https://www.logicbig.com/tutorials/java-ee-tutorial/java-servlet/session-tracking-mode.html

person TacheDeChoco    schedule 21.04.2021
comment
Спасибо @TacheDeChoco, я раньше не слышал об этой конфигурации. Я никогда раньше не слышал об отслеживании SSL, может быть, это что-то для моего случая использования. Я буду исследовать больше. На самом деле я бы предпочел способ добавить настраиваемый режим отслеживания. Знаете ли вы, возможно ли это (хотя я бы подозревал, что нет, по крайней мере, не переносимым на разные серверы приложений)? - person Martin Leim; 21.04.2021