Olá galera. Construi um interceptor nos moldes do curso FJ28. Ocorre que não nem sinal da interceptação. Coloquei displays para o console do jboss e nada.
Alguma luz?
eis os trechos dos programas:
@Intercepts
public class AutorizacaoInterceptor implements Interceptor {
private final UserSession userSession;
private final Result result;
public AutorizacaoInterceptor(UserSession userSession, Result result) {
this.userSession = userSession;
this.result = result;
System.out.println("construi");
}
public boolean accepts(ResourceMethod method) {
System.out.println("entrei no accept");
return !this.userSession.isLogged() && method.containsAnnotation(Restrito.class);
}
public void intercept(InterceptorStack stack, ResourceMethod method, Object resourceInstance) throws InterceptionException {
System.out.println("entrei no intercept");
result.redirectTo(IndexController.class).entrar();
}
}
@Resource
public class MainController {
private final Result result;
public MainController(Result result) {
this.result = result;
}
@Restrito
public void home() {
System.out.println("entrei no main/home");
//faz o redirecionamento para WEB-INF/jsp/main/home.jsp
}
//a anotação vai ficar disponível em tempo de execucao
@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.METHOD) // anotação para métodos
public @interface Restrito {
}
log do jboss
13:36:33,204 INFO [org.jboss.as.server] (DeploymentScanner-threads - 2) JBAS018559: Deployed "lur.war"
13:36:50,442 INFO [stdout] (http-localhost-127.0.0.1-8080-1) entrei no main/home