JSF Sessions invalidieren

rmacher

Mitglied
Hallo allerseits

Ich habe in einer Anwendung folgendes Szenario:

Einige Benutzer sind am Editieren von eigenen Daten. Das Editieren ist allerdings nur bis am xx.xx.xxxx um xx:xx möglich, danach soll das Editieren nicht mehr möglich sein. Dazu wird noch eine passende Meldung angezeigt, um die Benutzer zu informieren. Es wird auch explizit verlangt, dass man sich bis zum angegebene Zeitpunkt abmeldet.

Jetzt sind wir so weit, die Zeit ist abgelaufen. Der Appl. Admin meldet sich an und klickt auf ein Button, mit dem das Editieren auf "nicht mehr möglich" gesetzt wird (etwas vereinfacht gesagt). Wenn jetzt ein Benutzer irgendetwas macht, möchten wir ihn zu der login-Seite weiterleiten: er hätte sich schon abmelden sollen. Dazu müssten wir aber alle Sitzungen, die noch offen sind, invalidieren (invalidate session).

Jetzt meine Frage:
Gibt es möglichkeit, dass ich alle Sitzungen, die noch offen sind, nacheinander invalidieren kann? Oder, anders gesagt, wie kommt man als Administrator auf diese ran?

Vielen Dank.
 

stg

Top Contributor
Du musst die Sessions selbst geeignet sammeln und verwalten. Zum Beispiel über eine statische HashMap, in der du eine Zuweisung User->HttpSession speicherst. Die User-Klasse selbst lässt du HttpSessionBindingListener implementierren und reagierst aufs binden oder lösen des UserObjects an die Session derart, dass du dein HashMap entsprechend aktualisierst. Schließlich packe das UserObjekt beim einloggen in die SessionMap und entferne es beim ausloggen (dadurch wird die entsprechende Methode vom HttpSessionBindingListener angesteuert..)

Mit Zugriff auf die so verwaltete HashMap hast du dann auch immer Zugriff auf alle aktuellen Sessions
 

Ähnliche Java Themen

Neue Themen


Oben