Ciao Roberto,
Allora diciamo che ci sono due strade da percorerre per gestire l'autenticazione di un utente in abiente web.
La prima veloce è molto "newbesca" e far si che la servlet una volta autenticato l'utente metta nella mappa di sessione un variabile booleana "loggato". Nel pagine che seguono ti basta inserire un controllo del tipo "esiste questa variabile, è true" se il controllo va bene allora visualizzi la pagina altrimente effetti una redirect verso un pagina che comunica il fatto che bisogna essere loggati.
La seconda è quella di affidarsi al JAAS (Java Authentication and Authorization Service) che tutti i container java mettono a disposizione per gestire l'autenticazione alle varie web app java.
La configurazione di tale servizio dipende dal container su cui esegui l'applicativo.
Lato applicativo ti basta definire nel tuo web.xml i ruoli applicativi e le varie risorse che devono essere messe in sicurezza es:
codice:
<security-constraint>
<display-name>AdminConstraint</display-name>
<web-resource-collection>
<web-resource-name>Admin</web-resource-name>
<description>Only for administrators</description>
<url-pattern>/admin/*</url-pattern>
<http-method>GET</http-method>
<http-method>POST</http-method>
</web-resource-collection>
<auth-constraint>
<description/>
<role-name>Admin</role-name>
</auth-constraint>
</security-constraint>
<security-constraint>
<security-role>
<description>Administrators</description>
<role-name>Admin</role-name>
</security-role>
Con questo codice definisci che tutte le pagine all'interno della cartella "admin" possono essere visualizzate solo dagli utenti che hanno come ruolo "Admin".
Per quanto invece concerne la configurazione del login:
codice:
<login-config>
<auth-method>FORM</auth-method>
<form-login-config>
<form-login-page>/login/index.htm</form-login-page>
</form-login-config>
</login-config>
In questo modo definisci la pagina che verrà usata per i login (ovviamente tale pagina non può essere messa in sicurezza).
codice:
<form method="POST" action="j_security_check">
Login: <input type="text" name="j_username">
Passwort: <input type="password" name="j_password">
<input type="submit" value="Login"/>
</form>