Ciao a tutti, innanzitutto mi complimento per l'ottima gestione del forum e vi ringrazio per tutte le informazioni che sono riuscito ad attingere da questa immensa risorsa.
Vi espongo il mio problema.
Sto implementando un bell'applicativo per la gestione dei documenti privati di diversi utenti, utilizzando Java, JSP, e JPA. Il tutto lo faccio girare su tomcat.
Ovviamente ogni utente per poter aver accesso ai suoi documenti privati deve inserire un username e una password, attraverso una pagina di login.
Successivamente avviene il controllo delle credenziali di accesso in una servlet CheckLogin che preleva i dati dal DB e il reindirizzamento alla homepage oppure ad una pagina di errore, a seconda se l'utente ha inserito dati corretti o meno.
Al momento dell'autenticazione l'oggetto utente viene messo in sessione e questo viene trasportato per tutta l'applicazione fino al momento del logout.
Per il logout si passa per una servlet Logout che elimina l'utente dalla sessione.
Fin qui tutto normal.
Ho deciso di implementare l'applicazione utilizzando dei Java Server Pages Fragment. In particolare ho deciso di usare un header.jspf, che contiene l'intestazione del sito e il menu di navigazione in base ai vari permessi dell'utente. Nell'header.jspf è contenuta anche una porzione di codice che controlla l'esistenza dell'utente in sessione. In caso contrario mi reindirizza alla login. Fin qui credo sia tutto corretto.
Il mio problema è che una volta effettuato il logout, se utilizzo il tasto "indietro" del browser, visualizzo la pagina precedente, come se l'utente fosse ancora loggato. Però se aggiorno la pagina precedente vengo reindirizzato correttamente alla login.
Mi viene da pensare che il fragment header.jspf non viene eseguito nel momento in cui torno indietro. Suppongo che il problema sia dovuto dalla cache del browser (oppure posso configurare tomcat?) , e volevo chiedere se esiste un modo per far si che la pagina venga ricaricata al momento del backward.
Non è un gran problema di sicurezza, in quanto appena eseguito il logout basterebbe chiudere il browser, ma non mi posso affidare al buon senso dell'utente (che ovviamente non sarà un informatico) per evitare che i suoi dati sensibili vengano visualizzati da terzi (tipo la fidanzata che subentra immediatamente dopo sulla postazione pc senza che il browser sia stato chiuso).
Preciso che una volta effettuato il logout non è più possibile utilizzare collegamenti e funzionalità del sito, ma si possono solo visualizzare le pagine precedentemente prodotte, le quali però contengono sicuramente dati che devono essere protetti.
Vi ringrazio anticipatamente per ogni consiglio che vogliate fornirmi.

Rispondi quotando