Estou tentando implementar autenticação com JWT está dando certo, porém o primeiro método que é responsável por criar o token tem que ser ignorado pelo Interceptor.
Criei uma anotação Public:
@Documented
@Inherited
@Retention(RetentionPolicy.RUNTIME)
@Target({ElementType.METHOD, ElementType.TYPE})
public @interface Public {
}
E coloquei isso em meu Interceptor:
@Accepts
public boolean accepts(ControllerMethod method) {
return !method.containsAnnotation(Public.class);
}
Porém só funciona quando faço a requisição por GET Se eu tento por POST a anotação e o Accepts não funcionam.
Ex:
@Public
@Post
@Path("/")
@Consumes(value = "application/json", options = WithoutRoot.class)
public void autenticar(Usuario usuario) {
Usuario u = usuarioDAO.autenticar(usuario.getNome(), usuario.getSenha());
if (u != null) {
String token = JWTUtil.createToken(u.getId());
result.use(Results.json()).from(token).serialize();
} else {
result.use(Results.status()).notAcceptable();
}
}
Como posso resolver esse problema?

) , quando você não quer interceptar algo, basta não anotar, ai todo o fluxo seguirá normalmente.