Struts2 - Interceptor

3 respostas
rafaramalho

Ola galera, mais um novato no JAVA e no GUJ…
Estou com um probleminha, estou fazendo um sisteminha de cadastro basico, so com CRUD mesmo, estava tudo certo, até implementar o benmdito interceptor do struts, acontece o seguinte:

O interceptor funciona certinho, quando tento acessar uma action e não estou logado ele redireciona para a pagina de login certinho, mas quando vou fazer alguma ação no sistema(crud) ele da erro de NullpointerException e quando “tiro” o interceptor da classe, ele faz normalmente, to achando que o interceptor esta bloqueando tudo… o que devo fazer??

Lembrando que o que quero é criar um Interceptor que não permitirá que o usuário acesse Actions sem antes ter logado na aplicação.

Classe AutorizadorInterceptor

public class AutorizadorInterceptor implements Interceptor {

	@Override
	public String intercept(ActionInvocation invocation) throws Exception {
		Usuario usuarioLogado = (Usuario) invocation.getInvocationContext()
				.getSession().get("usuarioLogado");
		if (usuarioLogado == null) {
			return "naoLogado";
		}
		return invocation.invoke();
	}

	@Override
	public void destroy() {
		// TODO Auto-generated method stub
	}
	
	@Override
	public void init() {
		// TODO Auto-generated method stub
	}
}

struts.xml

<package name="default" extends="struts-default">
    <interceptors>
        <interceptor name="autorizador"
            class="br.....AutorizadorInterceptor"></interceptor>
    </interceptors>
</package>

Uma das actions

@ParentPackage("default") //Se deixar o interceptor da erro de NullPointerException, se eu tirar funciona certinho
public class RemoveContatoAction {
	private Long id;

	@Action(value = "removeContato", results = { @Result(name = "ok", type = "redirectAction", params = {
			"actionName", "listaContatos" }) }  , interceptorRefs= {
     @InterceptorRef("autorizador")})
			
	public String execute() {
		new ContatoDAO().exclui(id);
		return "ok";
	}

	public Long getId() {
		return id;
	}

	public void setId(Long id) {
		this.id = id;
	}

}

O que faço?

3 Respostas

rafaramalho

alguem por favor??

pedruhenrik

Olá rafaramalho, td bem?

também estou com o mesmo problema,
percebi que o erro ocorre apenas quando a action tem um “redirectAction”, acho q deve estar perdendo os valores de uma action para outra,
li um pouco sobre Aware, talvez possa ajudar…

boa sorte p/ gente! ^^

até,

pedruhenrik

opa,

consegui resolver o problema seguindo esse tópico aqui:

http://www.guj.com.br/posts/list/123022.java#666743

espero q ajude,

boa sorte!

att,

Criado 30 de agosto de 2010
Ultima resposta 28 de set. de 2010
Respostas 3
Participantes 2