Login mit Sessions

SeeSharpNewBee

Erfahrenes Mitglied
Hi @ all!

Ich hab folgendes Problem, und zwar, ich habe eine Login Seite, bei dieser wird beim Senden ein Servlet aufgerufen, welches die eingegebenen Daten mit einer Datenbank abgleicht stimmen die eingegebenen Daten, wird eine Session erzeugt und in der Datenbank gespeichert.

Jetzt zu meinem Problem: Wenn der User über "logout" auf die Startseite zurückkehrt, wird die Session in einer zwischengeschalteten Seite gelöscht, verlässt der User die Seite indem er die Seite einfach schließt, bleibt die Session in der Datenbank gespeichert.

Gibts da irgendwelche Lösungen um die Session dennoch zu löschen? Ich kann den User ja schlecht daran hindern die Seite einfach so zu zumachen!

Gibts irgendwelche eleganteren Lösungen für einen Login? Cookies sind ja nur Textdateien also kann man diese auch problemlos auslesen, deshalb habe ich den Weg mit der Datenbank gewählt.

Danke!
 
Huhu,
musst Du die Session rauswerfen sobald er das Fenster schliesst? So gesehen ist es für den Nutzer bequemer sich nicht mehr einloggen zu müssen, falls er aus Versehen sein Browserfenster schliesst. Ansonsten begrenz die Gültigkeit der Session auf das Nötigste.

Ich denke die einfachste Variante für ein Login ist eine Überprüfung der Logindaten mit den Einträgen in der User-DB und Erzeugung eines User-Session-Objekts falls die Daten stimmen. Quasi das, was du realisiert hast.
Für die geschützen Webinhalte würde ich dann noch einen Authorization Filter schreiben. Damit kannst du einen externen Aufruf deiner Seiten verhindern.
Wenns sicherer gehen soll, dann werden fertige Lösungen, wie die von Acegi (die ich bislang noch nicht benutzt habe *g*), sinnvoll sein. Mein Projekt kommt mit der einfachen Variante gut klar, was jedoch daran liegt das ich keine extremst wichtigen privaten Daten im User Bereich habe.

Cu
Alex
 
Hi und danke für die Antworten!

@ WeirdAl: Das mit dem Filter ist zwar eine gute Idee, jedoch für eine öffentliche Seite nicht so unbedingt geeignet!

@ Tom:

Ich versteh nicht ganz wie das mit dem SessionListener funktioniert. Wird da eine Aktion noch beim "unload" einer Seite ausgeführt oder wie?

Hättest du eventuell ein Beispiel für mich`? Danke!


//EDIT:

Ich hab schon ein Beispiel gefunden, funktioniert auch wunderbar, jedoch greift der SessionListener nur dann wenn die Session zerstört wird, was mir aber mein Problem immer noch nicht löst, das die Session gelöscht wird wenn der User den Browser schließt!

//EDIT:

Ich wollte auf die Möglichkeit von "<body onUnLoad="doU">" zurückgreifen, jedoch greift "onUnLoad" auf bei einem Refresh der Seite, und jetzt stehe ich komplett an. Bitte Hilfe, danke!
 
Zuletzt bearbeitet:
Zurück