[Tutorial] Sessions mit Spring nutzen

Heute habe ich mich gefragt, wie man Sessions mit Spring in Java nutzen kann und mit etwas Recherche erfahren, dass es in Spring um einiges einfacher ist, als ich anfangs gedacht habe. Auf die Maven Konfiguration werde ich hier nicht genauer eingehen.

 

Was ist eine Session?

Session heißt übersetzt “Sitzung” und ist auch wortwörtlich eine. Jedem User wird dabei eine eindeutige ID zugeordnet und als Cookie gespeichert und der Server weiß somit, dass es sich beim nächsten Seitenaufruf immer noch um den selben User handelt. Was nach Tracking klingt ist fürs moderne Web unentbehrlich! Wenn der Server nicht wüsste, dass es sich um den selben User handelt, wüsste er auch nicht, ob der User eingeloggt ist oder wie sein Benutzername lautet, man müsste sich also ohne immer auf jeder Seite neu einloggen! Damit kommen wir auch gleich zum nächsten Punkt:
Während der Client nur die sessionID besitzt, kann man auf Serverseite Daten zu dem User (z.B. userID, Username, Flag ob er eingeloggt ist usw.) speichern, die der Client nicht manipulieren kann. Ein Hacker könnte höchstens versuchen, die sessionID per Cookie zu manipulieren und eine richtige sessionID herauszufinden (sog. Session Hijacking), allerdings ist dies nicht so einfach möglich, wie es sich anhört, da die ID keine Zahl, sondern meist ein Hash ist. Diese wird übrigens erstellt, sobald der User entweder die Seite zum ersten Mal aufruft oder die alte Session abgelaufen ist (z.B. kann eine Session nur 15 Minuten gültig sein, damit ein Benutzer automatisch ausgeloggt wird, sobald er 15 Minuten nicht aktiv ist).

Continue reading