mercoledì 28 gennaio 2015

Autenticazione di accesso alla WebApp

Vai all'indice

In questo post vi illustrerò come ho inserito l'autenticazione degli accessi all'applicazione presentata nell'articolo precedente. La logica proposta è la stessa già vista nell'esempio: Autenticazione sicura con Primefaces.

Gli utenti abilitati all'ingresso sono gli stessi gestiti nell'applicazione, quindi utilizzerò la tabella Utente per salvare le credenziali di accesso per la login. Nello specifico ricaverò lo username concatenando i campi Cognome e Nome, mentre per la gestione della password inserirò un nuovo campo nella tabella Utente.

Riporto di seguito l'istruzione SQL per la modifica della tabella utente.

ALTER TABLE utente add COLUMN password VARCHAR(255);


Inoltre l'istruzione seguente inizializza il campo password col valore cifrato 'testtest00'.

update utente set password='1000:c5cca4907214bb9fb4d9e978bb970f63875350f3456ea492:49685e1f51d4cdebb3e3c8127ae05264fac87b50d473ea2b';

Per la protezione del campo password utilizzerò un meccanismo di cifratura che che mi permetterà di "cammuffare" l'informazione. Questi metodi sono detti funzioni hash o cifratura a senso unico e sono utilizzati per la cifratura delle password. E' buona norma non memorizzare le password in chiaro sul sistema, ma soltanto la loro cifratura. Quando un utente vuole accedere al sistema, il meccanismo di autenticazione richiede la password, la cifra con l'algoritmo di hashing considerato e confronta la password cifrata con quella memorizzata sul sistema per l'utente in questione. Se le due password cifrate coincidono, all'utente è permesso accedere al sistema.

Dall'esempio Autenticazione sicura con Primefaces importo i file necessari per l'implementazione del controllo accessi.

  • Il file login.xhtml contiene il form per l'autenticazione e viene impostato come welcome-page dell'applicazione, 
  • al bean associato loginBean aggiungo l'interrogazione delle chiavi di accesso nel database e la crittografia per rendere sicure le password degli utenti, 
  • la classe util inserita nel pacchetto it.prototype.utils contiene i metodi HttpSession e HttpServletRequest, 
  • la classe AuthFilter contiene il filtro di autenticazione e va inserito nel pacchetto it.Filters. 

Modifico il file web.xml indicando login.xhtml come nuova welcome-page, mentre nel file faces-config.xml inserisco il tag navigation-rule che definisce le regole di navigazione.
Aggiungo la nuova classe hashpass che contiene l'algoritmo di hashing per la crittografia della password.



Nel prossimo post vedremo come implementare la gestione degli uffici a cui appartengono gli utenti e delle applicazioni a cui essi sono abilitati.

La WebApp aggiornata con il controllo accessi è scaricabile da GitHub.

Hai apprezzato questo post? Conferma le mie competenze o scrivi una segnalazione sul mio profilo Linkedin!

Nessun commento:

Posta un commento