Was bewirkt das crossContext-Attribut in Tomcat? Aktiviert es die Sitzungsfreigabe?

8

Alles, was ich in den Tomcat 5.5-Dokumenten finden kann, ist:

  

Auf "true" setzen, wenn Aufrufe innerhalb dieser Anwendung an ServletContext.getContext () gesendet werden sollen, um einen Anforderungsdispatcher für andere Webanwendungen, die auf diesem virtuellen Host ausgeführt werden, erfolgreich zurückzugeben. Setzen Sie in sicherheitsbewussten Umgebungen den Wert false (Standard), damit getContext () immer null zurückgibt.

Ich habe einige Forenbeiträge gefunden, die kommentieren, dass die Einstellung crossContext=true auch die Freigabe des Sitzungsobjekts zwischen verschiedenen Webanwendungen ermöglicht, aber ich kann keine offiziellen Dokumente finden, die dies angeben.

Gibt es eine Beziehung zwischen Servlet.getContext () und der Möglichkeit, den Sitzungsstatus zwischen verschiedenen Webanwendungen zu teilen?

Was macht das crossContext Attribut wirklich in Tomcat?

    
Serxipc 19.03.2009, 12:12
quelle

3 Antworten

8

Aus dem Javadoc ServletContext.getContext() :

  

Diese Methode ermöglicht es Servlets, auf den Kontext für verschiedene Teile des Servers zuzugreifen und bei Bedarf RequestDispatcher-Objekte aus dem Kontext abzurufen. Der angegebene Pfad muss mit "/" beginnen, wird relativ zum Dokumentenstamm des Servers interpretiert und mit den Kontextstammverzeichnissen anderer Webanwendungen in diesem Container abgeglichen.

Wenn Sie beispielsweise eine Seite aus einer anderen Webanwendung einfügen möchten, müssen Sie crossContext auf true setzen.

    
Kees de Kooter 19.03.2009, 12:29
quelle
17

Sie können Sitzungen zwischen Webanwendungen teilen, indem Sie ein Single Sign- Am Ventil .

Sie würden crossContext=true festlegen, wenn Sie Informationen zwischen verschiedenen Webanwendungen im selben virtuellen Host teilen möchten.

Zum Beispiel würde app1 aufrufen:

%Vor%

und eine andere App könnte

anrufen %Vor%

um die Informationen zu lesen. Wenn crossContext nicht auf true festgelegt ist, hat der getContext ("/ app1") null zurückgegeben.

Die Verwendung von crossContext ist jedoch sowohl selten als auch möglicherweise unsicher.

    
kgiannakakis 20.03.2009 07:23
quelle
0

Ich habe es selbst ausprobiert und kann den Nebeneffekt der magischen Sitzung nicht finden , so dass das crossContext-Attribut nur das tut, was die Dokumente sagen.

Ich habe eine andere Frage um zu sehen, ob es eine Möglichkeit gibt, den Sitzungsstatus freizugeben.

    
Serxipc 20.03.2009 12:37
quelle