Markus: Kniffliges JSP Session Problem

Huhu heute hab ich mal ein ganz besondrs kniffliges Problem :)

Die Applikation im ganzen ist natürlich komplexer als in folgedem Beispiel. Aber ich denke dieses Szenario sollte die prinzipielle Funktionsweise ganz gut verdeutlichen.

Ich habe eine Seite Kalender.jsp und eine Seite doLogin.jsp.
In Kalender.jsp ist ein Formular integriert, das einen Name, und ein Passwort an die doLogin.jsp weiterreicht.
doLogin.jsp wird also aufgerufen und legt bei korrekten Logindaten ein Boolean Objekt mit value true, andernfalls false, in der session ab. Dann leitet die Seite wieder zur Kalender.jsp zurück.
Diese frägt das Boolean-Objekt aus der session ab und bei true werden Dinge im Kalender angezeigt, die bei false nicht angezeigt werden.

Jetzt habe ich nur das Problem, dass wenn ich mich in einem Browser einlogge, ich auch in einem anderen Browser eingeloggt bin.
Und dies sollte doch eigentlich nicht gehen, da jeder Browser ein eigenes session-Objekt besitzen sollte, in dem das Boolean abgelegt wird.
Allerdings scheinen alle Browser auf das selbe Boolean zurückzugreifen, obwohl es in ihren eigenen sessions gespeichert sein sollte.

  1. Hallo!

    Ich habe eine Seite Kalender.jsp und eine Seite doLogin.jsp.
    In Kalender.jsp ist ein Formular integriert, das einen Name, und ein Passwort an die doLogin.jsp weiterreicht.

    Wie wird die Session den zugeordnet? Anhand von Cookies, oder URL-Parametern per Sesion-ID?

    Jetzt habe ich nur das Problem, dass wenn ich mich in einem Browser einlogge, ich auch in einem anderen Browser eingeloggt bin.

    Was ist denn "der eine" und "der andere" Browser? 2 Wirklich verschieden, also IE und Mozilla oder sowas? Beide auf demselben Rechner...?

    Und dies sollte doch eigentlich nicht gehen, da jeder Browser ein eigenes session-Objekt besitzen sollte, in dem das Boolean abgelegt wird.

    Bei Mozilla ist das AFAIK nicht so, da gelten Session-Cookies und HTTP-Auth Daten für alle Instanzen des Browsers. Wenn Du Dich hier im Forum einloggst, dann kannst Du das ausprobieren, das ist überall so, das hat nichst mit Deiner Seite zu tun.

    Anders ist das beim IE, da gelten Session-Cookies und Auth-Daten nur für ein Broeserfenster, also eine Instanz.

    Umgehen kannst Du das nur wenn Du die Session-ID explizit per URL-Parameter übergibst. Allerdings funktioniert alles wie gewünscht wenn Du Dich von verschiedenen Rechnern gleichzeitig einloggst, was normalerweise ausreicht.

    Grüße
    Andreas