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?