E ai pessoal!
Tenho um form de "login" e um form de "esqueceu sua senha". Criei um Interceptor no login para verificar se o usuário está logado ou não. Até aí tudo blza, se eu entrar em qualquer URL e o usuário não possuir sessão, ele direciona para o login.
Depois disso, eu resolvi criar o form para recuperar a senha. O problema é, quando estou no login e clico para recuperar a senha e direcionar para /recuperar, o Interceptor direciona para o login novamente.
Como eu adiciono uma exceção para ele poder acessar /recuperar? Preciso criar algum outro Interceptor Public por exemplo?
public class LoginInterceptor implements Interceptor {
private final Result result;
private final UserSession user;
public LoginInterceptor (Result result, UserSession user)
{
this.result = result;
this.user = user;
}
public boolean accepts(ResourceMethod method)
{
return !(method.getMethod().isAnnotationPresent(Login.class)
|| method.getResource().getType().isAnnotationPresent(Login.class));
}
public void intercept(InterceptorStack stack, ResourceMethod method, Object resourceInstance) throws InterceptionException
{
System.out.println("Interceptando");
if (this.user.isLogged()) {
System.out.println("Usuário logado");
stack.next(method, resourceInstance);
}
else {
System.out.println("Usuário não logado");
result.redirectTo(LoginController.class).login();
}
}
}