Que fait L'attribut crossContext dans Tomcat? Permet-il le partage de session?

Tout ce que je peux trouver dans le Tomcat 5.5 docs est:

défini à true si vous voulez des appels dans cette application à ServletContext.getContext () pour renvoyer avec succès un répartiteur de requêtes pour d'autres applications web tournant sur cet hôte virtuel. Défini à false (la valeur par défaut) dans les environnements soucieux de la sécurité, pour que getContext () retourne toujours null.

j'ai trouvé des billets sur le forum qui commentent ce paramétrage crossContext=true permet également de partager l'objet session entre différentes applications web, mais je ne suis pas en mesure de trouver des docs officiels disant cela.

Est-il une relation entre la Servlet.getContext () et la possibilité de partager l'état de session entre différentes applications web?

Que fait L'attribut crossContext 1519150920" really dans Tomcat?

10
demandé sur skaffman 2009-03-19 15:12:29

3 réponses

De la javadoc ServletContext.getContext() :

cette méthode permet aux servlets d'accéder au contexte pour diverses parties du serveur, et d'obtenir au besoin les objets RequestDispatcher à partir du contexte. Le chemin donné doit être commençant par "/", est interprété par rapport à la racine du document du serveur et est comparé aux racines de contexte d'autres applications Web hébergées sur ce conteneur.

donc par exemple si vous vous voulez inclure une page d'une webapp différente que vous avez besoin de mettre crossContext à true.

10
répondu Kees de Kooter 2009-03-19 12:29:56

vous pouvez partager les sessions entre les applications web en utilisant un Valve de connexion unique .

vous définiriez crossContext=true si vous voulez partager des informations entre différentes Applications Web dans le même hôte virtuel.

par exemple app1 appellerait:

setAttribute("name", object);

et une autre application pourrait appeler

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

pour lire les informations. Si crossContext n'a pas été configuré pour vrai, la getContext("/app1") aurait retourné null.

cependant, l'utilisation de crossContext est à la fois rare et potentiellement non sécurisée.

19
répondu kgiannakakis 2017-02-13 15:19:01

j'ai essayé moi-même et je ne trouve pas le effet secondaire de partage de session magique , donc l'attribut crossContext ne fait que ce que les docs disent.

j'ai posté une autre question pour voir s'il y a un moyen de partager l'état de session.

0
répondu Serxipc 2017-05-23 12:17:31