Я видел нескольких разработчиков, которые искали решение для этой проблемы: доступ к информации о сеансе из другой WAR (даже если внутри одного EAR) - вот несколько примеров: Есть ли способ поделиться состоянием сеанса между различными приложениями в tomcat? , Сеанс доступа другого веб-приложения , другие файлы WAR, общие ресурсы , Tomcat: как обмениваться данными между двумя приложениями? , Что делает атрибут crossContext сделать в Tomcat? Включает ли это совместное использование сеанса? и так далее...
Из всего, что я искал, есть некоторые конкретные решения в зависимости от контейнера, но это как-то « противоречит спецификации ». Я также просмотрел спецификацию Java EE, но без удачи нашел ответ.
Некоторые разработчики говорят о связи между веб-приложениями, но я склонен не соглашаться. По какой причине можно хранить WAR внутри одного EAR, если не используется соединение? К EJB, например, можно получить доступ локально (даже если внутри другого EJB JAR в том же EAR).
В частности, одна из моих WAR-ов обрабатывает аутентификацию и авторизацию, и я хотел бы поделиться этой информацией с другими WAR-ами (в том же EAR). Я уже успел обойти подобные проблемы, упаковав WAR-файлы в JAR-файлы и поместив их в отдельный WAR-проект (WEB-INF / lib). Но мне не нравится это решение (оно требует огромных усилий для именования сервлетов и так далее).
И ни одно решение не ответило на первый (и самый важный) вопрос: почему WAR не могут делиться информацией о сеансах?