Sto cercando di impostare il mio timeout applicazione su Tomcat 7 app server.First sto testando con il mio timeout di un minuto, in web.xml comeTimeout impostato nel web.xml non funziona in java
<session-config>
<session-timeout>1</session-timeout>
</session-config>
e sto usando HttpSessionListener per assicurarmi che il mio Timeout funzioni correttamente. Ho dichiarato la mia classe sessionListener in web.xml.
public class HttpSessionChecker implements HttpSessionListener {
public void sessionCreated(HttpSessionEvent event) {
System.out.printf("Session ID %s created at %s%n", event.getSession().getId(), new Date());
}
public void sessionDestroyed(HttpSessionEvent event) {
System.out.printf("Session ID %s destroyed at %s%n", event.getSession().getId(), new Date());
}
}
e in web.xml
<listener>
<listener-class>com.test.util.HttpSessionChecker</listener-class>
</listener>
Ma quando iniziare il mio server e lanciare la mia domanda vedo sessione viene avviata solo sulla pagina di Login.
Session ID 934073ED5E9933158995EE5EB680D3F7 created at Wed Nov 07 09:39:13 PST 2012
e quando rimango inattivo per più di un minuto o alcune volte più di cinque minuti causa Tomcat non sparare Timeout immediatamente nella mia applicazione e fare clic su qualcosa nella mia sessione di applicazione non è Expired.Still Sono in grado di navigare un'altra pagina. Ma quando sono inattivo sulla pagina di accesso o disconnesso vedo che la sessione è stata distrutta. Ma una volta che il login è terminato e quando sono dentro il timeout della sessione dell'applicazione non sta accadendo. Vedo
Session ID 934073ED5E9933158995EE5EB680D3F7 destroyed at Wed Nov 07 09:42:13 PST 2012
Cosa sto facendo male? E anche dopo aver menzionato lo <session-timeout>
nel web.xml
ho bisogno del codice session.invalidate
da qualche parte nel Codice? Come posso reindirizzare a login.xhtml
nella sessione distrutta in JSF?
Dov'è la logica che crea la sessione? Dove accedi per la prima volta a un bean '@ SessionScoped'? Per prima cosa controlli le sessioni attive prima di onorare una richiesta o ne crei una nuova in modo silenzioso? – kolossus
Controllare [Gestione timeout sessione su richiesta JSF AJAX] (http://stackoverflow.com/q/11203195/1065197) –
@kolossus ... Quando avvio la mia applicazione, la pagina di accesso colpirà Bean login che è Session Scoped. E al momento del login non stiamo controllando da nessuna parte! (Session.isNew()). Immagino che stia creando una nuova sessione. – SRy