Vi vários desenvolvedores procurando uma solução para esse problema: acessando informações da sessão de um WAR diferente (mesmo quando dentro do mesmo EAR) - aqui estão alguns exemplos: Alguma maneira de compartilhar o estado da sessão entre aplicativos diferentes no tomcat? , Sessão de acesso de outro aplicativo da web , arquivos WAR diferentes, recursos compartilhados , Tomcat: Como compartilhar dados entre dois aplicativos? , O que o atributo crossContext faz no Tomcat? Ele permite o compartilhamento de sessões? e assim por diante...
De tudo que procurei, existem algumas soluções específicas, dependendo do contêiner, mas é de alguma forma ' contrário à especificação '. Também examinei a especificação Java EE sem nenhuma sorte em encontrar uma resposta.
Alguns desenvolvedores falam sobre o acoplamento entre aplicativos da Web, mas eu discordo. Qual é o motivo pelo qual os WARs manteriam o WAR dentro do mesmo EAR, se não estiverem acoplados? Os EJBs, por exemplo, podem ser acessados localmente (mesmo que dentro de outro EJB JAR dentro do mesmo EAR).
Mais especificamente, um dos meus WARs lida com autenticação e autorização, e eu gostaria de compartilhar essas informações com outros WARs (no mesmo EAR). Eu já consegui solucionar problemas semelhantes antes, empacotando WARs como JARs e colocando-os em um projeto WAR único (WEB-INF / lib). No entanto, eu não gosto dessa solução (ela requer um grande esforço na nomeação de servlets e assim por diante).
E nenhuma solução respondeu à primeira (e mais importante) pergunta: Por que os WARs não podem compartilhar informações da sessão?