Provar mig fram med sessionhantering i JSP och servlets, och har en fundering.
Loggar in på en sida genom att fylla i namn och lösenord. Namn och lösenord sänds sedan till en servlet som kontrollerar att inloggningen är korrekt. Om inloggningen är korrekt sänds användaren vidare tll en JSP-sida.
Nu vill jag sätta in en kontroll så att ingen kan nå JSP-sidan via webbläsaren utan att först vara inloggad via formuläret. När jag gjort kontrollen att inloggningen är riktig, sätter jag en session enligt nedan:
Hur ska jag göra för att få in en session kontroll på JSP-sidan, så att ingen kan öppna JSP-sidan utan att ha en riktig session? Eller är det så att jag inte kan sköta den kontrollen på en JSP-sida, utan måste ha en servlet som skriver ut den aktuella sidan åt mig, efter att en sessionkontroll gjorts?
Är väl i första hand ingen kodsnutt jag är ute efter, utan mer än förklaring hur jag går tillväga för att lösa problemet.
Då änvänder du JSecurity som är definierad i specen för JSP/J2EE och så sätter du upp en REALM. Då sköter din jsp-motor kontrollen om personen är inloggad eller inte.
Är lite nyfiken på detta. Kom du nånvart med REALM för inloggningshanteringen?
Nej, jag kom tyvärr ingenvart med REALM. Däremot lyckades jag få till en sessionhantering av standardformat, som jag tyckte fungerade bra för ändamålet.
Titta en gång till på hur JEE hanterar Realmar så klarnar det nog. Det är oerhört kraftfullt att kunna använda en Realm och de inbyggda rollkontrollen som finns i GenericPrincipal. Vi gör t.ex. en site där olika roller får se olika information om en produkt. En kund ser t.ex. utpriset medans en återförsäljare även ser inköpspriset och om du är inhouseförsäljare så ser du även lagerstatus och marginaler.
I den siten har vi lyckats göra tiles som inte visas om användaren inte har rätt roll. Det betyder alltså att det är i just den komponent som visar inköpspriset som kontrollen görs och den kan då användas på vilken sida som helst utan att man behöver dubbelkoda behörighetskontrollen. Smart va, så säg...