2012-01-23 36 views
5

JSF2 web sunucumda Spring Security 3 kullanıyorum. seans süresi doldu ve kullanıcı herhangi bir bağlantıyı tıkladığındayay güvenlik oturumu zaman aşımı

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

, o giriş sayfasına yönlendirilir Böylece:

Ben oturum zaman aşımları sağlamak için bir güvenlik kuralı var. Bu sayfada hata parametresini kontrol ediyorum ve kullanıcıya oturumun süresinin dolduğunu belirten bir mesaj gösteriyorum.

Ama 2 sorunları var:

(1) uygulama ilk kez başlangıç ​​zaman (o ana sayfasını göstermeye çalışır), ben seans süresi doldu diyerek giriş sayfasına yönlendirildi ediyorum. Uygulamayı ilk kez çalıştırdığınız için oturumun yeni olduğunu ve Spring Security'nin belki de “sürdüğünü” düşündüğünü (yeni bir oturum ve zaman aşımını ayırt etmediğini) düşünüyorum.

oturum (henüz onaylanmadı) anonim kullanıcılar için sona erdiyse (2), ben de giriş sayfası zaman aşımı yönlendirildi ediyorum. Kimliği doğrulanmamış kullanıcılar için bu davranışı istemiyorum, yalnızca kimliği doğrulanmış kullanıcılar için zaman aşımlarını kontrol etmek istiyorum.

nasıl bu sorunların her ikisi çözebilir?

Önceden teşekkür ederiz.

cevap

6

Sen süresi dolmuş oturumları değil invalid-session-url için expired-session-url özelliğini kullanmak istiyorum. Onlar iki farklı şey için.

+0

Spring Security sürümünü 3.0.7 kullanıyorum ve o hayır "süresi dolmuş-session-url" özelliği var. 3.0.7 Referans Belgelerinde, zaman aşımlarını tespit etmek için "geçersiz oturum-url" özelliğini kullanırlar (pdf dokümanın sayfa numarası 15). Ancak, dediğiniz gibi geçersiz oturum süresi dolmuş oturumdan aynı değildir. Herhangi bir çözüm biliyor musunuz? – choquero70

+0

Aradığınız esnekliği elde etmek için (eksik ve geçersiz oturumları ayırt edebilmek), biraz daha gelişmiş bir yapılandırmaya geçmeniz gerekebilir. dokümanlar Section11.3 eşzamanlılık filtresinde bir 'expiredUrl' özelliği var _is_ gösterir: http://static.springsource.org/spring-security/site/docs/3.0.x/reference/session-mgmt.html – cdeszaq

+0

Bu cevap ayrıca size yardımcı olabilir: http://stackoverflow.com/questions/2693268/spring-security-session-expiration-without-redirect-to-expired-url – cdeszaq