Ceci est mon filtre d'authentification:ContainerRequestContext abortWith() ne pas interrompre
@Secured
@Provider
@Priority(Priorities.AUTHENTICATION)
public class SecuredFilter implements ContainerRequestFilter {
@Override
public void filter(ContainerRequestContext requestContext) {
String authorizationHeader = requestContext.getHeaderString(HttpHeaders.AUTHORIZATION);
if (authorizationHeader == null || !authorizationHeader.startsWith("Bearer ")) {
requestContext.abortWith(Response.status(Response.Status.UNAUTHORIZED).build());
}
String token = authorizationHeader.substring("Bearer".length()).trim();
// [...]
}
}
Pourquoi est-il pas interrompu et renvoyer la réponse lorsque l'en-tête est manquante? En ce moment, je reçois un NPE évident à authorizationHeader.substring ...
Le documentation dit:
vide abortWith (réponse de réponse)
Abandonner la chaîne de filtre avec une réponse . Cette méthode interrompt le traitement de la chaîne de filtrage et renvoie la réponse fournie au client . La réponse fournie passe à via la chaîne de filtres de réponse applicables. Paramètres: réponse - réponse à renvoyer au client.
Qu'est-ce qui me manque?