Olá Galera,
Estou tentando fazer funcionar um interceptor no Struts 2 com codebehind-plugin-2.1.8.1 mas ele nao chama o interceptor…
Alguem poderia dar um help ?
Estou utilizando minhas action com anotação e pelo que vi na net o interceptor tem que ser inserido na mao no struts.xml
Ai vai:
Struts.xml
<?xml version="1.0" encoding="ISO-8859-1" ?>
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
"http://struts.apache.org/dtds/struts-2.0.dtd">
<struts>
<constant name="struts.codebehind.defaultPackage" value="base-package"/>
<package name="base-package" extends="struts-default">
<interceptors>
<interceptor name="securityInter" class="br.com.caras.isca.filter.SecurityInterceptor"></interceptor>
<interceptor-stack name="securityStack">
<interceptor-ref name="securityInter" />
<interceptor-ref name="defaultStack" />
</interceptor-stack>
</interceptors>
<default-interceptor-ref name="securityStack" />
</package>
</struts>
Minha action:
@Results({
@Result(name="login", value="login.page", type=TilesResult.class),
@Result(name="home", value="home.page", type=TilesResult.class),
@Result(name="logout", value="login.page", type=ServletActionRedirectResult.class)
})
public class LogarAction extends ActionSupport {
public String login()
{
return "login";
}
public String acessarSitema()
{
return "home";
}
public void esqueciSenha()
{
}
public String logout()
{
return "login";
}
}
Meu inteceptor:
@Results({
@Result(name="input", value="login.page", type = TilesResult.class)
})
public class SecurityInterceptor extends AbstractInterceptor{
public String intercept(ActionInvocation invocation) throws Exception {
Map session = invocation.getInvocationContext().getSession();
if(session.get("user") == null) {
return Action.INPUT;
} else {
return invocation.invoke();
}
}
}
Alguem tel alguma ideia ?
Obrigado,
Rodrigo