code: public RequestHeader withPrincipal(Principal principal) {
          return new RequestHeader(method, uri, protocol, acceptedResponseProtocols, Optional.ofNullable(principal), headers, lowercaseHeaders);
      }
docs: Return a copy of this request header with the principal set.
  
  @param principal The principal to set.
  @return A copy of this request header.