[Java lista] JAAS (vagy mi?)

Karakó Miklós palacsint at palacsint.hu
2008. Nov. 18., K, 19:11:36 CET


hali,

István Viczián írta:

> lehet, hogy nem értem, de miért kellenek ilyen trükkök? A standard
> Servlet specifikációban leírt megoldás miért nem jó? Ami a wiki
> oldalon is szerepel, egy adatbázis alapú JDBC realm, és a web.xml-ben
> deklarálható egyszerű Form Based Authentication?

Van rá néhány ok, de inkább idézek a diplomatervemből, ha már egyszer
leírtam. Ebből asszem kiderül minden.

"Esetemben célszerűbbnek tartottam (a webes szokásokhoz igazodva) egy
minden oldalon megjelenített bejelentkezési űrlapot alkalmazni. Így a
felhasználónak nem kell védett erőforrásra mutató linkre kattintania
ahhoz, be tudjon jelentkezni, hanem már a főoldalon ajánljuk neki ezt a
lehetőséget, ugyanúgy, mint a többi menüpontot, amelyekhez nem szükséges
bejelentkezés. Bejelentkezés után megjelennek a belépéshez kötött
funkciók is, hasonlóan egy webes levelező- vagy más rendszerhez. (A
védett oldalra való hivatkozás mindenképp szükséges a bejelentkezéshez,
mert a form‑login‑page értékeként megadott oldalt közvetlenül meghívva
nem működőképes a bejelentkezés.)

A webkonténer általi bejelentkeztetés hátránya, hogy hiba esetén csak a
form‑error‑page tag‑ben megadott oldalt jeleníti meg. Ugyanezt egy saját
űrlappal és egy mögötte lévő backing beannel megoldva megtarthatjuk a
bejelentkezési kísérlet előtti oldal képét, kiegészítve azt a hibaüzenettel.

A fentiek ellenére bekerült a web.xml‑be a login‑form‑page és a
form‑error‑page a szükséges security‑constraint tag‑ekkel együtt, hiszen
így ha a felhasználó mégis védett erőforrást akarna elérni bejelentkezés
nélkül (vagy a http session lejárta után), akkor sem hibaüzenettel fog
találkozni, hanem a bejelentkező űrlappal.

A saját űrlap használatához ProgrammaticLogin-ra van szükség, ami egy
kényelmes megoldás, viszont alkalmazásszerver-függő, így használatával
elveszítjük az alkalmazás alkalmazásszerverek közti hordozhatóságát. A
következőkben látni fogjuk, hogy ez nem jelent nagy problémát, hiszen
például JBoss alatt is nagyon hasonló az API ([JBossWebAuth]), csupán
néhány sort kell módosítani a kódban, illetve az alkalmazáshoz csomagolt
JAR fájlokat lecserélni."

üdv,
Miki


További információk a(z) Javalist levelezőlistáról