Bom, to fazendo uma aplicação web usando Struts 2, ta funcionando tudo certo e eu resolvi fazer um interceptor pra logar, mas parece que não ta passando por ele, ou se ta não está fazendo o que deveria ser feito e eu não consigo ver o que falta…
Classe do Interceptor:
package br.com.bruna.interceptor;
import br.com.bruna.modelo.Usuario;
import com.opensymphony.xwork2.ActionInvocation;
import com.opensymphony.xwork2.interceptor.Interceptor;
public class AutorizadorInterceptor implements Interceptor{
@Override
public void destroy() {
}
@Override
public void init() {
}
@Override
public String intercept(ActionInvocation invocation) throws Exception {
Usuario usuarioLogado = (Usuario)invocation.getInvocationContext().getSession().get("usuarioLogado");
if(usuarioLogado == null){
return "naoLogado";
}
return invocation.invoke();
}
}
Action que usa
package br.com.bruna.actions;
import java.util.Collections;
import java.util.List;
import org.apache.struts2.convention.annotation.Action;
import org.apache.struts2.convention.annotation.InterceptorRef;
import org.apache.struts2.convention.annotation.ParentPackage;
import org.apache.struts2.convention.annotation.Result;
import br.com.bruna.dao.TarefaDAO;
import br.com.bruna.modelo.Tarefa;
@ParentPackage("default")
public class TarefaAction {
private List<Tarefa> tarefas;
private Tarefa tarefa;
private long id;
@Action(value="mostraTarefa",results={@Result(name="ok",location="/mostra-tarefa.jsp")},interceptorRefs={@InterceptorRef("autorizador")})
public String mostraTarefa(){
tarefa = new TarefaDAO().buscaPorId(id);
return "ok";
}
//outros métodos
struts.xml
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
"http://struts.apache.org/dtds/struts-2.0.dtd">
<struts>
<package name="default" extends="struts-default">
<interceptors>
<interceptor name="autorizador"
class="br.com.caelum.tarefas.interceptor.AutorizadorInterceptor"></interceptor>
</interceptors>
<global-results>
<result name="naoLogado">/login.jsp</result>
</global-results>
</package>
</struts>
vlw!