2009-03-19 12 views
8

Todo lo que puedo encontrar en el Tomcat 5.5 docs es:¿Qué hace el atributo crossContext en Tomcat? ¿Permiten compartir sesiones?

establece en true si desea que las llamadas dentro de esta aplicación para ServletContext.getContext() para devolver con éxito un despachador de solicitud de otras aplicaciones web que se ejecutan en este host virtual. Establézcalo en falso (valor predeterminado) en entornos de seguridad consciente, para hacer que getContext() siempre devuelva nulo.

he encontrado algunos mensajes en el foro que el comentario que la fijación de crossContext=true también permite compartir el objeto de sesión entre diferentes aplicaciones web, pero no soy capaz de encontrar cualquier documentación oficial que indica esto.

¿Existe una relación entre Servlet.getContext() y la capacidad de compartir el estado de la sesión entre diferentes aplicaciones web?

¿Qué significa crossContext el atributo realmente do en Tomcat?

Respuesta

8

Desde el javadoc ServletContext.getContext():

Este método permite a los servlets para acceder al contexto de diversas partes del servidor, y según sea necesario obtener objetos RequestDispatcher a partir del contexto. La ruta determinada debe comenzar con "/", se interpreta en relación con la raíz del documento del servidor y se compara con las raíces de contexto de otras aplicaciones web alojadas en este contenedor.

Por ejemplo, si desea incluir una página de una aplicación web diferente, debe establecer crossContext en verdadero.

+0

¿Existe una relación entre Servlet.getContext() y la capacidad de compartir el estado de sesión entre diferentes aplicaciones web? – Serxipc

+1

No es que yo sepa. –

17

Puede compartir sesiones entre aplicaciones web utilizando un Single Sign-On Valve.

Debería establecer crossContext=true si desea compartir información entre diferentes aplicaciones web en el mismo host virtual.

Por ejemplo app1 llamaría:

setAttribute("name", object); 

y otro aplicación podría llamar

getContext("/app1").getAttribute("name"); 

para leer la información. Si crossContext no se estableció en verdadero, getContext ("/ app1") habría devuelto nulo.

Sin embargo, el uso de crossContext es raro y potencialmente inseguro.

+0

Gracias, pero no estoy buscando un inicio de sesión único, necesito compartir los atributos de HttpSession. Eche un vistazo a mi nueva pregunta http: // stackoverflow.com/questions/665941/any-way-to-share-session-state-between-different-applications-in-tomcat – Serxipc

+0

thaaank usted y especialmente usted señor, thaaaaaaaaaaaanks usted me salvó la vida – Dilllllo

+0

+1 para señalar al Single Sign -en documentos. –

0

Lo intenté yo mismo y no puedo encontrar el efecto secundario que comparte la sesión mágica, por lo que el atributo crossContext solo hace lo que dicen los documentos.

He publicado another question para ver si hay una manera de compartir el estado de la sesión.

Cuestiones relacionadas