2017-02-18 2 views
0

Ich verwende eine Spring-Anwendung auf Websphere Liberty Profil 16.0.0.2. Nach erfolgreicher Anmeldung sehe ich den JSESSIONID-Cookie im Anforderungsheader als J1. Ich mache die Sitzung ungültig und erstelle eine neue. Nun enthält die nächste Anfrage den gleichen JSESSIONID-Cookie-Wert, d. H. J1, anstelle von etwas Neuem, wie es nach einer Sitzungsannullierung erwartet wird.JSESSIONID wird von Websphere Liberty Profil nach der Sitzungsinvalidierung erneut verwendet

Nach ein paar Recherchen habe ich die folgenden Session Management Einstellungen über die server.xml versucht.

<httpSession idLength="28" invalidateOnUnauthorizedSessionRequestException="true" cookieSecure="true" useInvalidatedId="false"></httpSession> 

Dennoch bleibt das Verhalten gleich.

Interessanterweise, wenn ich die gleiche Webanwendung auf Tomcat 8 bereitstellen, sehe ich unterschiedliche JSESSIONID Cookie-Werte wie erwartet. Etwas ist bei WLP sturer. Bitte vorschlagen.

Antwort

0

ich für JSESSIONID Verhalten für eine Web-Anwendung, die auf WebSphere Liberty-Server beteiligt Formular Anmeldung und Abmeldung zu suchen versucht.

1) Wenn die Login-Seite angezeigt wurde, gab es einen JSESSIONID-Cookie, sagen wir mit der ID von J1. Nach dem Anmelden mit einem gültigen Benutzer/Kennwort bleibt JSESSIONID wie erwartet J1.

2) Dann habe ich Logout (ibm_security_logout), die wie im folgenden Dokument erwähnt implementiert ist. Nach dem Abmelden sah ich, dass der JSESSIONSID-Wert zu J2 geändert wurde. Also habe ich gesehen, dass JSESSIONID ungültig gemacht und neu erstellt wurde.

https://www.ibm.com/support/knowledgecenter/SS7K4U_8.5.5/com.ibm.websphere.nd.multiplatform.doc/ae/tsec_pofolo.html

Der einzige Unterschied sehe ich zwischen unseren Szenarien sein könnte, wie wir die Sitzung ungültig zu machen. Können Sie sich beim nächsten Mal als anderer Benutzer anmelden? Wenn die Sitzung nicht ungültig gemacht wurde, dann führt die Anmeldung als ein anderer Benutzer (z. B. Benutzer2) eine Ausnahme aus, da die Sitzung weiterhin dem vorherigen Benutzer gehört (z. B. Benutzer1).

0

Versuchen Sie, idReuse in httpSession auf false zu setzen.

Verwandte Themen