INTRODUZIONE A SPRING SECURITY

spring

La sicurezza, in particolare modo nelle web application è fondamentale, e non riguarda solo l’accesso o l’impedire la modifica dei dati, ma anche dare la possibilità all’utente di poter accedere a certe risorse, ma non ad altre. Ad esempio, l’inserimento di un nuovo articolo in anagrafica non dovrebbe essere permesso ad un utente standard ma solo agli amministratori.

img1

Possiamo fare molti esempi di autenticazione, ad esempio quando preleviamo i soldi con la nostra carta ci dobbiamo autenticare, la banca deve sapere chi siamo e se siamo autorizzati ad effettuare un prelievo. Solo con l’inserimento dell’elemento fisico, la carta, e di un codice PIN possiamo accedere al servizio. L’autenticazione riguarda la nostra identificazione in qualità di usufruitori di un servizio. L’autorizzazione segue l’autenticazione, che riguarda la parte di accesso ai servizi, cioè a quali servizi possiamo accedere.

img2

I dati sensibili prima di essere memorizzati nel database devono essere criptati, anche aprendo una tabella di login non possiamo vedere i dati in chiaro. Quando vi è uno scambio di informazioni tra client e server i dati devono essere criptati, questo è possibile attivano il protocollo SSL a livello di web application.

img3

IMPLEMENTAZIONE SPRING SECURITY

Come prima cosa dobbiamo effettuare una modifica al file POM.xml.

POM.XML

CONFIGURAZIONE SPRING SECURITY

Creiamo due nuovi classi nel file di configurazione, WebAppSecurityInitializer.java e SecurityConfig.java. Il codice è spiegato passo dopo passo.

CREAZIONE DEL FORM DI LOGIN E DEL CONTROLLER

Come al solito modifichiamo il file Apache tiles.xml, e creiamo una nuova vista JSP login.jsp. Ti riporto il codice del controller LoginController.java.

Login Controller

Come vedi è stato rispettato il mapping impostato a livello di configurazione. Voglio chiarire che nel file di configurazione sono stati creati due utenti con la password in chiaro. Questo ovviamente è solo un caso di test, vedremo più avanti come memorizzare le password criptate nel database. Per consultare il file login.jsp ti invito a scaricare i sorgenti.

DOWNLOAD CODICE DELL’ARTICOLO

AlphaShopV8

AlphaShopV9

Il progetto AlphaShopV8.zip è per il DBMS SQL Server mentre AlphaShopV9.zip è per MySQL.

IL LINGUAGGIO JAVA

IL LINGUAGGIO JAVA

LINK AI POST PRECEDENTI

SPRING FRAMEWORK