2012-01-23 18 views
5

Uso Spring Security 3 nella mia webapp JSF2.timeout sessione di sicurezza molla

Ho una regola di sicurezza per fornire timeout di sessione:

<session-management invalid-session-url="/faces/paginas/autenticacion/login.xhtml?error=1" /> 

modo che quando la sessione è scaduta e l'utente clicca sul link, si viene reindirizzato alla pagina di login. In questa pagina cerco il parametro error e mostro un messaggio all'utente che dice che la sessione è scaduta.

Ma ho 2 problemi:

(1) Quando l'applicazione di avvio la prima volta (si cerca di mostrare la home page), sto reindirizzato alla pagina di login dicendo sessione è scaduta. Penso che questo possa accadere perché la prima volta che esegui l'app, la sessione è nuova, e Spring Security forse "pensa" che sia scaduto (non fa distinzioni tra una nuova sessione e un timeout).

(2) Se la sessione è scaduta per utenti anonimi (non ancora autenticati), sono reindirizzato al timeout della pagina di accesso. Non voglio questo comportamento per gli utenti non autenticati, voglio solo controllare i timeout per gli utenti autenticati.

Come posso risolvere entrambi questi problemi?

Grazie in anticipo.

risposta

6

Si desidera utilizzare la proprietà expired-session-url per le sessioni scadute, non lo invalid-session-url. Sono per due cose diverse.

+0

Sto usando la versione 3.0.7 di Spring Security e non c'è alcuna proprietà "expired-session-url" al suo interno. Nella Documentazione di riferimento 3.0.7, usano la proprietà "invalid-session-url" per rilevare i timeout (numero di pagina 15 del documento pdf). Ma, come dici tu, la sessione non valida non è la stessa della sessione scaduta. Conosci qualche soluzione? – choquero70

+0

Per ottenere la flessibilità che si sta cercando (potendo distinguere tra sessioni mancanti e non valide), potrebbe essere necessario passare a una configurazione leggermente più avanzata. La Sezione 11.3 dei documenti indica che esiste una proprietà 'expiredUrl' sul filtro di concorrenza: http://static.springsource.org/spring-security/site/docs/3.0.x/reference/session-mgmt.html – cdeszaq

+0

Questa risposta può anche aiutarti: http://stackoverflow.com/questions/2693268/spring-security-session-expiration-without-redirect-to-expired-url – cdeszaq

Problemi correlati