4 Stimmen

Sitzungsablaufzeit in Java EE

Auf welche Weise kann die Zeit für die Session-Timeout in Java EE definiert werden? Ich suche nach weniger offensichtlichen Möglichkeiten, wie z.B. das Festlegen des Session-Timeouts in der web.xml oder HttpSession.setMaxInactiveInterval().

Ich überprüfe derzeit eine Java EE-Anwendung, aber ich finde nichts, was sich auf die Definition des Session-Timeouts bezieht. Die Webanwendung läuft auf Weblogic. Ich nehme an, dass da keine Definition für den Session-Timeout besteht, die Session niemals abläuft.

4voto

JoseK Punkte 30825

Wenn Sie herausfinden möchten, wie die Sitzung in Weblogic abläuft, kann ich TimeoutSecs in weblogic.xml hinzufügen oder prüfen, ob an irgendeiner Stelle im Code die Sitzung durch session.invalidate() beim Ausloggen beendet wird.

Übrigens wird es nicht unendlich sein.

In Weblogic wird standardmäßig in der web.xml (falls kein Wert angegeben ist) der Wert TimeoutSecs in der weblogic.xml verwendet, der standardmäßig auf 3600 Sekunden oder 60 Minuten festgelegt ist

0 Stimmen

Sah das gegen Ende eines langen Tages und dachte, ich verliere meinen Verstand. :)

1voto

BalusC Punkte 1034465

Nicht frühlingsbezogen:

  • Kontrollieren Sie das Cookie selbst mit response.setHeader("Set-Cookie", cookiestring);. Es ist das expires-Attribut, das die Sitzungstimeout steuert. Dies überschreibt alle Servlet-Container oder web.xml-Standards, kann aber sowieso durch HttpSession#setMaxInactiveInterval() im Java-Code überschrieben werden.

  • Konfigurieren Sie ein Standardsitzungstimeout auf Servlet-Container-Ebene. Zum Beispiel in Tomcat durch das maxInactiveInterval-Attribut des -Elements. Dies kann durch in web.xml und HttpSession#setMaxInactiveInterval() im Java-Code trotzdem überschrieben werden.


Aktualisierung gemäß dem Kommentar und der Frageaktualisierung:

Wenn nicht spezifiziert, wird standardmäßig ein vom Servlet-Container verwaltetes Timeout verwendet. Dies beträgt in der Regel 30 Minuten (was für Tomcat und Klone zutrifft). Auf diese Weise läuft die Sitzung 30 Minuten nach der letzten Anfrage ab, die vom Client in der Sitzung gesendet wurde. Außerdem wird bei Schließen und erneutem Öffnen der Browserinstanz des Clients oder beim Löschen der Cookies eine neue Sitzung erstellt (die alte Sitzung läuft nach dem Standard-Timeout von 30 Minuten ab).

0 Stimmen

Die Server-Timeout-Zeit unterscheidet sich von der Client-Timeout-Zeit. Oder ich habe die Frage nicht verstanden :-)

0 Stimmen

@Bozho: Wenn die Sitzung auf dem Server abgelaufen ist, wird der Client sowieso nicht mehr auf dieselbe Sitzung zugreifen können, und umgekehrt.

0 Stimmen

Ich überprüfe den Code. Ich habe auch die Cookies überprüft, aber sie haben kein "Ablaufdatum" Attribut. Der verwendete Anwendungsserver ist Weblogic.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X