code: static <T> CompletionStage<Boolean> authorize(Authorizer<T> authorizer, ServiceRequestContext ctx, T data) {
          try {
              final CompletionStage<Boolean> f = authorizer.authorize(ctx, data);
              if (f == null) {
                  throw new NullPointerException("An " + Authorizer.class.getSimpleName() +
                                                 " returned null: " + authorizer);
              }
              return f;
          } catch (Throwable cause) {
              return CompletableFutures.exceptionallyCompletedFuture(cause);
          }
      }
docs: Determines if the specified {@code data} is authorized for this service. If the result resolves
  to {@code true}, the request is authorized, or {@code false} otherwise. If the future resolves
  exceptionally, the request will not be authorized.