private Handler<RoutingContext> checkAllowlistHostHeader() {
    return event -> {
      final Optional<String> hostHeader = getAndValidateHostHeader(event);
      if (config.getHostsAllowlist().contains("*")
          || (hostHeader.isPresent() && hostIsInAllowlist(hostHeader.get()))) {
        event.next();
      } else {
        final HttpServerResponse response = event.response();
        if (!response.closed()) {
          response
              .setStatusCode(403)
              .putHeader("Content-Type", "application/json; charset=utf-8")
              .end("{\"message\":\"Host not authorized.\"}");
        }
      }
    };
  }
Construct a JsonRpcHttpService handler

@param vertx The vertx process that will be running this service
@param dataDir The data directory where requests can be buffered
@param config Configuration for the rpc methods being loaded
@param metricsSystem The metrics service that activities should be reported to
@param natService The NAT environment manager.
@param methods The json rpc methods that should be enabled
@param livenessService A service responsible for reporting whether this node is live
@param readinessService A service responsible for reporting whether this node has fully started
ethereum/api/src/main/java/org/hyperledger/besu/ethereum/api/jsonrpc/JsonRpcHttpService.java