o mecanismo esta funcionando… eu clico em login… vai… eu clico em logout volta pra login !!
agora como vou ter certeza se isso esta funcionando !?
como testo se esta seguro ?
pois qunado eu clico em botao voltar no navegador…
ele volta ! e ainda mostra as informaçoes do Bean que esta em session
1 - Você pode ter tantos benas quanto necessário com o scopo de Sessão. É apenas uma questão de arquitetura, pois muitos beans na sessão serão mais dados que seu servidor precisará guardar em memória.
2 - O bean que recebe login e senha precisa ser session (no seu caso) pois não existe outro modo de resgatar esses dados para validar o login. Se colocar no escopo de request ele dura apenas uma chamada ao servlet. e se for escopo de aplicação o valor de login será o memso para todos os usários o que impossibilitaria saber se o usuário ATUAL esta logado.
você precisaria ter colocado um objeto na memória da session. vc fez isso ?? Seria assim:
private HttpSession session = (HttpSession) context.getExternalContext().getSession(false);
Usuario u = new Usuario;
u.setNome("Teste");
session.setAttribute("usuario",u); // Onde usuario é o nome dado para identificar seu session.
Aí vc faria:
Usuario u = (Usuario) session.getAttribute("usuario"); //aqui vc pega o objeto da sessão. Para alterar os valores seria necessário invalidar essa sessão e criar uma nova eu acho.
agora vou tentar resolver o problema do botao voltar do browser, pois quando eu deslogo , se eu voltar ele ainda apresenta as informaçoes e a pagina. que deveria ser apresentada somente quando estiver logada !
Então se vc clica no botão voltar a página volta mesmo… :lol:
Se vc tentar alterar alguma coisa e dar um submit. Não vai funcionar, pois a sua sessão foi morta, os dados estão sendo apresentados apenas em cache. É seguro pois a pessoa q voltou não esta vendo nada que ela já não tivesse visto.