Executar método no construtor da Bean

2 respostas
D

Bom dia, preciso que seja executado um método que verifica se o usuário está logado toda vez que a página de pesquisa é carregada no browser. Por exemplo usuário digita a http://…/pesquisa.faces e ele verifica se estiver logado OK se não retorna para login. E quando executado o projeto também ele redireciona para login preciso que verificasse se o usuário já estiver logado redireciona para pesquisa.faces

Tentei criar um método e chamá-lo no construtor mais ele executa em loop e não para acho.

Bem na minha Bean possui:

public String init(){
		if(usuarioFinanceiro != null) {
				return null;
		}
		return "erro";
	}

E chamo este init no construtor. Quando retornar erro preciso que o usuário seja redirecionado para a página de login se for diferente de nulo mantém na página porém não funciona.
Não sei se também essa é a melhor forma de se fazer isso. Agradeço desde já a atenção e se alguém puder me auxiliar.

No faces coloquei a regra:

<navigation-rule>
        <from-view-id>/pesquisa.jsp</from-view-id>
        <navigation-case>
            <from-outcome>erro</from-outcome>
            <to-view-id>/login.jsp</to-view-id>
        </navigation-case>
    </navigation-rule>

Obrigado
Diego

2 Respostas

deadlock

Aconselho vc dar uma pesquisada mais a fundo sobre esse tipo de controle (usuário logado, permissões de acesso etc) no JSF, pq existem soluções bem melhores do que essa q vc tá adotando.

L

E ai… blz?
Seguinte acredito que como o colega disse deve existir alguma solução melhor no JSF, caso esta não sirva tu podes implementar um filter, ja trabalhei em projetos onde a segurança era feita utilizando filter e achei uma solução simples e de rápida implementação.
Espero que tenha ajudado.

Criado 4 de agosto de 2010
Ultima resposta 4 de ago. de 2010
Respostas 2
Participantes 3