92 public boolean handle(
final Request request,
final Response response,
final Callback callback)
throws Exception {
93 final var method = request.getMethod().toUpperCase();
94 final var path = request.getHttpURI() !=
null ? request.getHttpURI().getPath() :
null;
96 errorResponses.badRequest(response, callback,
"missing_path");
100 if (isPublic(method, path) || !isProtected(path)) {
101 return super.handle(request, response, callback);
104 final var authz = request.getHeaders().get(
"authorization");
105 if (authz ==
null || !authz.startsWith(
"Bearer ")) {
106 errorResponses.unauthorized(response, callback,
"missing_bearer_token");
110 final var token = authz.substring(
"Bearer ".length()).trim();
111 final var verification = tokenVerifier.verify(token, Instant.now().getEpochSecond());
112 if (!verification.ok()) {
113 final var code = verification.code() ==
null || verification.code().isBlank() ?
"invalid_token"
114 : verification.code();
115 errorResponses.unauthorized(response, callback, code);
120 return super.handle(request, response, callback);