[RESOLVIDO]Encerrar sessão após fechar o browser

Galera.

coloco a seguinte configuração:

<s:session-management invalid-session-url="/publico/login.jsf"> <s:concurrency-control expired-url="/publico/login.jsf" max-sessions="1" error-if-maximum-exceeded="true" /> </s:session-management>

Se eu faço o login e fecho o browser e depois tento acessar novamente ele me retorna um erro me informando que já existe um usuário logado.

Como faço pra ele matar a sessão após o browser ser fechado?

Não dá para saber se o browser foi fechado. Você pode colocar um listener para ficar verificando durante um período.

Entendi. E vc teria como me passar mais detalhes de como faria isso ?

Aqui tem um exemplo, pode manipular da maneira que deseja:

Também pode colocar alterar o time-out da sessão:

 <session-timeout>10</session-timeout> 

Esse tempo é em minutos.

[quote=ErickRAR]Aqui tem um exemplo, pode manipular da maneira que deseja:

Também pode colocar alterar o time-out da sessão:

 <session-timeout>10</session-timeout> 

Esse tempo é em minutos.[/quote]

Bem, nao estou conseguindo recuperar essa session. Nao sei onde ela ficar armazenada. Tentei usar aquela classe SpringSecurityContextHolder mas, nao consigo localizar.

Estou usando LDAP Spring security 3.1.

Olá Pessoal.

Consegui resolver da seguinte maneira:

	/**
	 * Método que verifica se já existe o usuário na sessão e a expira caso exista. 
	 */	
	private void validaUsuarioSessao(){
		SessionRegistry sessionRegistry  = (SessionRegistry)ContextoUtil.recuperaBean(SESSION_REGISTRY);		
		for(Object obj : sessionRegistry.getAllPrincipals()){			
			if(((UserDetails)obj).getUsername().equalsIgnoreCase(this.login)){
				for(SessionInformation si : sessionRegistry.getAllSessions(obj, false)){
					sessionRegistry.removeSessionInformation(si.getSessionId());
					return;
				}				
			}			
		}
	}

Obrigado.

Opá,

Tem como postar o código do método “recuperaBean” ?

Obrigado,