Interceptor Struts2

0 respostas
M

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() {}  
}
Criado 27 de julho de 2009
Respostas 0
Participantes 1