code: @Override
    public <ReqT, RespT> ClientCall<ReqT, RespT> interceptCall(MethodDescriptor<ReqT, RespT> method,
        final CallOptions callOptions, Channel next) {
      return new SimpleForwardingClientCall<ReqT, RespT>(next.newCall(method, callOptions)) {
  
        /**
         * If the header is invalid, this will be set to true. This flag will indicate that
         * delegate().start() was not called. If start() is not called, then don't call
         * delegate().request(), delegate().sendMessage() or delegate().halfClose();
         */
        private volatile boolean unauthorized = false;
  
        @Override
        public void start(Listener<RespT> responseListener, Metadata headers) {
          final long timeout;
          if (callOptions.getDeadline() != null) {
            timeout = callOptions.getDeadline().timeRemaining(TimeUnit.MILLISECONDS);
          } else {
            timeout = TIMEOUT_MILLISECONDS;
          }
          HeaderToken token = store.getHeader(timeout, TimeUnit.MILLISECONDS);
  
          if (!token.getStatus().isOk()) {
            unauthorized = true;
            responseListener.onClose(token.getStatus(), new Metadata());
            return;
          }
  
          headers.put(AUTHORIZATION_HEADER_KEY, token.getHeader());
  
          delegate().start(new UnAuthResponseListener<>(responseListener, token), headers);
        }
  
        @Override
        public void request(int numMessages) {
          if (!unauthorized) {
            delegate().request(numMessages);
          }
        }
  
        @Override
        public void sendMessage(ReqT message) {
          if (!unauthorized) {
            delegate().sendMessage(message);
          }
        }
  
        @Override
        public void halfClose() {
          if (!unauthorized) {
            delegate().halfClose();
          }
        }
  
        @Override
        public void cancel(String message, Throwable cause) {
          if (!unauthorized) {
            delegate().cancel(message, cause);
          }
        }
      };
    }
docs: {@inheritDoc}