He visto a varios desarrolladores que buscan una solución para este problema: acceder a la información de sesión desde un WAR diferente (incluso dentro del mismo EAR). Aquí hay algunos ejemplos: ¿ Alguna forma de compartir el estado de sesión entre diferentes aplicaciones en Tomcat? , Sesión de acceso de otra aplicación web , diferentes archivos WAR, recursos compartidos , Tomcat: ¿Cómo compartir datos entre dos aplicaciones? , ¿Qué hace el atributo crossContext en Tomcat? ¿Permite compartir sesiones? y así...
De todo lo que he buscado, hay algunas soluciones específicas que dependen del contenedor, pero de alguna manera es ' contrario a la especificación '. También he examinado las especificaciones de Java EE sin suerte en encontrar una respuesta.
Algunos desarrolladores hablan sobre el acoplamiento entre aplicaciones web, pero tiendo a estar en desacuerdo. ¿Cuál es la razón por la que uno mantendría los WAR dentro del mismo EAR si no se acoplan? Se puede acceder a los EJB, por ejemplo, localmente (incluso dentro de otro JAR EJB dentro del mismo EAR).
Más específicamente, uno de mis WAR maneja la autenticación y la autorización, y me gustaría compartir esta información con otros WAR (en el mismo EAR). Me las arreglé para solucionar problemas similares antes empaquetando WAR como JAR y colocándolos en un proyecto WAR singular (WEB-INF / lib). Sin embargo, no me gusta esta solución (requiere un gran esfuerzo para nombrar servlets, etc.).
Y ninguna solución ha respondido a la primera (y más importante) pregunta: ¿por qué los WAR no pueden compartir información de la sesión?