Olá.
Estou tentando utilizar Interceptors do Struts 2 (versão 2.0.14, usando annotations) para segurança do sistema. OU seja, toda requisição deve passar por este interceptor onde será verificado se o usuario está logado e se tem permissão para excutar tal funcionalidade.
No entanto, não está passando pelo Inteceptor criado. Poderiam ajudar?
struts.xml
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
"http://struts.apache.org/dtds/struts-2.0.dtd">
<struts>
<include file="struts-default.xml" />
<constant name="struts.enable.DynamicMethodInvocation" value="true" />
<constant name="struts.devMode" value="false" />
<constant name="struts.locale" value="pt_BR" />
<constant name="struts.multipart.maxSize" value="2597152" />
<package name="default" extends="struts-default">
<interceptors>
<interceptor name="autorizacao" class="AutorizacaoInterceptor" />
<interceptor-stack name="demostack">
<interceptor-ref name="autorizacao" />
<interceptor-ref name="defaultStack" />
</interceptor-stack>
</interceptors>
<default-interceptor-ref name="demostack" />
</package>
</struts>
AutorizacaoInterceptor.java
import javax.servlet.http.HttpServletRequest;
import org.apache.struts2.ServletActionContext;
import org.apache.struts2.config.Result;
import org.apache.struts2.config.Results;
import org.apache.struts2.dispatcher.SessionMap;
import org.apache.struts2.views.tiles.TilesResult;
import br.com.empresa.sistema.modelo.entity.Usuario;
import com.opensymphony.xwork2.Action;
import com.opensymphony.xwork2.ActionContext;
import com.opensymphony.xwork2.ActionInvocation;
import com.opensymphony.xwork2.interceptor.AbstractInterceptor;
@Results({
@Result(name="input", value="login.page" ,type=TilesResult.class)
})
public class AutorizacaoInterceptor extends AbstractInterceptor
{
private static final long serialVersionUID = 4194206894614545639L;
public void init() {}
public String intercept(ActionInvocation invocation) throws Exception
{
SessionMap sessao = (SessionMap) ActionContext.getContext().get(ActionContext.SESSION);
Usuario usuarioAutenticado = (Usuario) sessao.get("usuarioAutenticado");
if(usuarioAutenticado != null)
{
System.out.println("Usuario autenticado");
}
else
{
System.out.println("Usuario não autenticado");
sessao.invalidate();
return Action.INPUT;
}
return invocation.invoke();
}
public void destroy() {}
}