Localizarea codului sursă
Localizaţi codul sursă în
directorul rădăcină_profil/samples/src/TechSamp/FormLoginWeb.
Utilizatorii z/OS: Codul sursă pentru exemple nu este furnizat pe platforma z/OS, deoarece aplicaţiile exemplu nu sunt construite pe platforma z/OS.
Examinarea notelor despre codare
Exemplul FormLogin Sample utilizează următoarele tehnologii WebSphere pentru a demonstra
funcţionalitatea de logare WebSphere şi J2EE:
- Logare bazată pe formular J2EE
- Logare cu filtru de servlet J2EE
- Delogare bazată pe formular IBM
Logarea cu formular funcţionează în felul următor:
- Un utilizator neautentificat solicită o resursă protejată de tipul de
autentificare la logare pe bază de formular.
- Servelul de aplicaţii redirectează cererea la formularul de logare,
definit în descriptorul de implementare Web.
- În formularul de logare HTML, utilizatorul introduce ID-ul de utilizator şi parola,
apoi lansează formularul.
- Lansarea formularului determină rularea unui servlet WebSphere special,
j_security_check. După primirea unui cereri pentru servletul j_security_check,
containerul Web dispecerizează cererea către alt servlet WebSphere,
care autentifică utilizatorul.
- Dacă servletul autentifică utilizatorul cu succes, afişează resursa
cerută original.
Aplicaţia exemplu, TechnologySamples.ear, conţine un modul
Web (FormLoginWeb.war) cu următoarele fişiere:
- Exemplul se bazează pe servletul HomeController
(HomeController.java). Acesta verifică
dacă este activată securitatea globală. Dacă securitatea este activată, servletul redirectează
utilizatorul la pagina Configurare şi rulare, pentru a configura securitatea globală.
Dacă securitatea este activată, servletul apelează metoda sendRedirect() pentru a cere
o resursă welcome.jsp, care este protejată de
tipul de autentificare la logare pe bază de formular.
Modelul de securitate Servlet 2.3 nu se aplică atunci când un servlet
utilizează RequestDispatcher pentru a invoca o resursă statică
utilizând o acţiune forward sau include. Securitatea
WebSphere ocoleşte verificarea de securitate atunci când sunt utilizate acestea. Pentru acest
exemplu, este utilizată metoda sendRedirect(). Pentru informaţii
suplimentare privind modelul de securitate Servlet 2.3, vedeţi Capitolul SRV.12.3
din Specificaţia de Servlet Java Versiunea 2.3.
- Pagina login.jsp afişează o pagină de logare personalizată, cu
elementele necesare pentru a realiza autentificarea bazată pe formular.
Câmpurile necesare sunt:
- j_username este câmpul de intrare în care un utilizator scrie
ID-ul de utilizator.
- j_password este câmpul de intrare în care un utilizator scrie
parola.
Acţiunea necesară pentru metoda HTTP POST este
servletul j_security_check.
- Pagina loginError.jsp afişează un mesaj de eroare atunci
când servletul j_security_check nu autentifică utilizatorul.
- După ce servletul j_security_check autentifică utilizatorul cu succes,
pagina protejată secure/welcome.jsp afişează un mesaj
de bun venit cu ID-ul de utilizator şi ora de logare. ID-ul de utilizator
şi ora de logare sunt înregistrate în istoric de către filtrul de servlet
LoginFilter. Pagina de bun venit este servită de asemenea
ca pagină de delogare bazată pe formular, care apelează o acţiune POST specială
pentru servletul ibm_security_logout. După delogare, utilizatorului i se cere
să se re-autentifice pentru a avea acces din nou la pagina protejată de
bun venit.
- Filtrul de servlet LoginFilter are două filtre Web, care sunt mapate la
servletul j_security_check. Filtrul de pre-logare înregistrează în
istoric ID-ul de utilizator, iar filtrul de post-logare înregistrează
ora logării.
- Pagina logout.jsp afişează o pagină de ieşire pentru delogare.
- Pagina configSecurity.jsp este afişată atunci când este dezactivată
securitatea globală WebSphere.
Pentru ca acest exemplu să funcţioneze, trebuie să fie activată securitatea globală WebSphere pentru
serverul de aplicaţii. Servleturile j_security_check şi ibm_security_logout
nu funcţionează atunci când este activată securitatea globală, iar serverul de aplicaţii
returnează o eroare pagină negăsită.
Examinarea setărilor de securitate necesare
Exemplul necesită să definiţi resursele Web securizate şi constrângerile de
securitate. Când instalaţi exemplul, toate setările de securitate sunt deja
configurate. Puteţi să utilizaţi RAD (Rational Application Developer) pentru
a configura setările de securitate pentru acest exemplu. Paşii următori vă
arată cum sunt definite în RAD setările de securitate necesare:
- Definirea rolului de securitate şi a legării WebSphere: Definiţi un rol
de securitate la nivel de aplicaţie (TechnologySamples.ear)
şi îl mapaţi la un subiect special, AllAuthenticatedUsers:
- În vizualizarea exploratorului de proiecte J2EE, expandaţi Enterprise Applications > TechnologySamples.
- Faceţi dublu clic pe Deployment Descriptor.
- Selectaţi fişa Security şi apoi faceţi clic pe Add... pentru a adăuga
următoarele proprietăţi:
- Nume: All Role
- Descriere: All Authenticated user Role
- În secţiunea legături WebSphere, selectaţi Toţi utilizatorii autentificaţi.
- Salvaţi descriptorul de implementare al aplicaţiei.
- Definirea constrângerilor de securitate: Definiţi o constrângere
de securitate la nivel de modul Web (FormLoginWeb.war) pentru
a mapa fişierul de resurse Web welcome.jsp la All Role:
- În vizualizarea exploratorului de proiecte J2EE, expandaţi Web Modules > FormLoginWeb.
- Faceţi dublu clic pe Deployment Descriptor.
- Selectaţi fişa Security.
- Faceţi clic pe Add în secţiunea Security Role.
- Nume: All Role
- Descriere: All Authenticated user Role
- Faceţi clic pe fişa Security Constraints în secţiunea Security.
- Faceţi clic pe Add în secţiunea Security Constraints.
- Introduceţi un nume pentru constrângere, apoi faceţi clic pe Next
- Nume resursă: FormLogin Welcome JSP
- Descriere: Protected area for the FormLogin sample
- Metode HTTP: Selectaţi GET,POST,PUT and DELETE check boxes
- Tipare URL: /secure/welcome.jsp
- Sub User Data Constraint, faceţi clic pe None
- În secţiunea Authorized Roles, faceţi clic pe Add pentru a adăuga
următoarele proprietăţi:
- Descriere: FormLogin JSP Security:+:All Authenticated users for FormLogin Welcome JSP.
- Nume rol: Select the All Role check box.
- Salvaţi descriptorul de implementare Web.
- Configurarea logării cu formular: Configuraţi mecanismul de logare
numai la nivel de modul Web (FormLoginWeb.war).
- Deschideţi descriptorul de implementare Web, dacă nu este deja deschis.
- Selectaţi fişa Pagini şi, în secţiunea Login,
selectaţi metoda de autentificare Form.
- Specificaţi /login.jsp pentru Login page.
- Specificaţi /loginError.jsp pentru Error page.
- Salvaţi descriptorul de implementare Web.
Delogarea bazată pe formular nu necesită configurarea vreunui
descriptor de implementare. Este doar un fişier HTML sau JSP inclus cu
aplicaţia Web. Pentru acest exemplu, formularul de delogare se află
pe pagina welcome.jsp.
- Configurarea filtrului de servlet: Configuraţi un filtru de servlet pentru
pagina de logare cu formular sau pentru URL-ul /j_security_check.
- Deschideţi descriptorul de implementare Web, dacă nu este deja deschis.
- Selectaţi fişa Filters şi, în secţiunea Filters,
faceţi clic pe Add.
- În fereastra Filter type Selection, selectaţi clasa de filtre LoginFilter
şi faceţi clic pe OK.
- În secţiunea URL Mappings, faceţi clic pe Add. Tastaţi
/j_security_check.
- Salvaţi descriptorul de implementare Web.
Setările de securitate necesare pentru acest exemplu sunt acum definite.
Pentru informaţii suplimentare privind securitatea WebSphere, consultaţi
Centrul de
informare WebSphere Application Server.