De afgelopen tijd ben ik bezig geweest met het ontwikkelen van een applicatie, gebasseert op java/jsp, Struts 1.1 RC1 en XDoclet. De hele app draait op Orion 1.5.4.
Als front-end wordt er dus gebruik gemaakt van een combo van html/jsp en struts. Daarachter draaien cmp-beans.
De beveiligingseisen van mijn klant waren nogal hoog. Uiteraard moesten alle gebruikers inloggen. Aan de hand van deze inlognaam werd bekenen welke rollen/privileges de gebruikers hebben. Ook moest de gebruiker na 30 minuten van inactiviteit worden uitgelogt.
Nu ben ik geheel nieuw binnen het session/authentication gebeuren binnen java. Maar een ding is me wel duidelijk, zoals het nu werkt, was niet de bedoeling:
Op het moment vindt de gehele authenticatie plaats tegenover de database. Een gebruiker logged in, en binnen de database wordt gewoon bekeken of de gebruiker met het gegeven password bestaat. Zo ja, geweldig, zo nee, een html:error. Na een succesvolle authenticatie krijgt de gebruiker een websessie, die in de database geplaatst wordt. (iedere gebruiker kan dus een maal tegelijk inloggen)
Aan de hand van deze websessie wordt bij iedere actie die de gebruiker onderneemt gecontroleert of de gebruiker wel ingelogged is.
Het gebruik van deze manier van authenticatie is niet geweldig. Om de websessie uit de database te verwijderen moet de gebruiker expliciet uitloggen (ookal wordt dit ook opgevangen door een javascript onUnload-event). Maar wat als de gebruiker zijn compu uitzet zonder uit te loggen bijv?).
Eigelijk wil ik dus (of lijkt het mij beter) als de app-server de authenticatie voor zijn rekening neemt. Denk bijvoorbeeld aan de eerder genoemde websessies; de app-server kan deze na verloop van tijd geweldig invalidaten, lijkt me. Ik weet dat Orion hiervoor mogelijkheden bied. Al weet ik niet of die voldoen aan mijn eisen, ik kan er vrij weinig documentatie/voorbeelden van vinden.
Maar ik heb niet zoveel ideeen over hoe ik dit ga aanpakken/waar ik ga beginnen. Iemand die me een kick in de goeie richting kan geven of goeie must-reads weet?
Als front-end wordt er dus gebruik gemaakt van een combo van html/jsp en struts. Daarachter draaien cmp-beans.
De beveiligingseisen van mijn klant waren nogal hoog. Uiteraard moesten alle gebruikers inloggen. Aan de hand van deze inlognaam werd bekenen welke rollen/privileges de gebruikers hebben. Ook moest de gebruiker na 30 minuten van inactiviteit worden uitgelogt.
Nu ben ik geheel nieuw binnen het session/authentication gebeuren binnen java. Maar een ding is me wel duidelijk, zoals het nu werkt, was niet de bedoeling:
Op het moment vindt de gehele authenticatie plaats tegenover de database. Een gebruiker logged in, en binnen de database wordt gewoon bekeken of de gebruiker met het gegeven password bestaat. Zo ja, geweldig, zo nee, een html:error. Na een succesvolle authenticatie krijgt de gebruiker een websessie, die in de database geplaatst wordt. (iedere gebruiker kan dus een maal tegelijk inloggen)
Aan de hand van deze websessie wordt bij iedere actie die de gebruiker onderneemt gecontroleert of de gebruiker wel ingelogged is.
Het gebruik van deze manier van authenticatie is niet geweldig. Om de websessie uit de database te verwijderen moet de gebruiker expliciet uitloggen (ookal wordt dit ook opgevangen door een javascript onUnload-event). Maar wat als de gebruiker zijn compu uitzet zonder uit te loggen bijv?).
Eigelijk wil ik dus (of lijkt het mij beter) als de app-server de authenticatie voor zijn rekening neemt. Denk bijvoorbeeld aan de eerder genoemde websessies; de app-server kan deze na verloop van tijd geweldig invalidaten, lijkt me. Ik weet dat Orion hiervoor mogelijkheden bied. Al weet ik niet of die voldoen aan mijn eisen, ik kan er vrij weinig documentatie/voorbeelden van vinden.
Maar ik heb niet zoveel ideeen over hoe ik dit ga aanpakken/waar ik ga beginnen. Iemand die me een kick in de goeie richting kan geven of goeie must-reads weet?