Ho visto diversi sviluppatori alla ricerca di una soluzione a questo problema: accedere alle informazioni sulla sessione da una WAR diversa (anche se all'interno della stessa EAR) - ecco alcuni esempi: un modo per condividere lo stato della sessione tra diverse applicazioni in Tomcat? , Accedi alla sessione di un'altra applicazione web , file WAR diversi, risorse condivise , Tomcat: come condividere i dati tra due applicazioni? , Che cosa fa l'attributo crossContext in Tomcat? Abilita la condivisione della sessione? e così via...
Da tutto quello che ho cercato, ci sono alcune soluzioni specifiche a seconda del contenitore, ma è in qualche modo " contrario alle specifiche ". Ho anche esaminato le specifiche Java EE senza alcuna fortuna nel trovare una risposta.
Alcuni sviluppatori parlano dell'accoppiamento tra le applicazioni Web, ma tendo a non essere d'accordo. Qual è il motivo per cui si dovrebbero tenere le WAR all'interno della stessa EAR se non si accoppiano? Gli EJB, ad esempio, sono accessibili localmente (anche se all'interno di un altro JAR EJB all'interno dello stesso EAR).
Più specificamente, uno dei miei WAR gestisce l'autenticazione e l'autorizzazione e vorrei condividere queste informazioni con altri WAR (nella stessa EAR). In passato sono riuscito a risolvere problemi simili confezionando WAR come JAR e inserendoli in un singolare progetto WAR (WEB-INF / lib). Eppure questa soluzione non mi piace (richiede uno sforzo enorme per la denominazione dei servlet e così via).
E nessuna soluzione ha risposto alla prima (e più importante) domanda: perché i WAR non possono condividere le informazioni sulla sessione?