Interface ProxyRequest


public interface ProxyRequest
Handles the interoperability of the request between the user agent and the origin.
Author:
Julien Viet
  • Method Details

    • reverseProxy

      static ProxyRequest reverseProxy(HttpServerRequest proxiedRequest)
      Create a new ProxyRequest instance, the proxied request will be paused.
      Parameters:
      proxiedRequest - the HttpServerRequest that is proxied
      Returns:
      a reference to this, so the API can be used fluently
    • reverseProxy

      static ProxyRequest reverseProxy(HttpServerRequest proxiedRequest, ForwardedHeadersOptions forwardedHeadersOptions)
      Like reverseProxy(HttpServerRequest) but using specific For
    • version

      HttpVersion version()
      Returns:
      the HTTP version of the proxied request
    • absoluteURI

      String absoluteURI()
      Returns:
      the absolute URI of the proxied request
    • getMethod

      HttpMethod getMethod()
      Returns:
      the HTTP method to be sent to the origin server.
    • setMethod

      ProxyRequest setMethod(HttpMethod method)
      Set the HTTP method to be sent to the origin server.

      The initial HTTP method value is the proxied request HTTP method.

      Parameters:
      method - the new HTTP method
      Returns:
      a reference to this, so the API can be used fluently
    • getURI

      String getURI()
      Returns:
      the request URI to be sent to the origin server.
    • setURI

      ProxyRequest setURI(String uri)
      Set the request URI to be sent to the origin server.

      The initial request URI value is the proxied request URI.

      Parameters:
      uri - the new URI
      Returns:
      a reference to this, so the API can be used fluently
    • getBody

      Body getBody()
      Returns:
      the request body to be sent to the origin server.
    • setBody

      ProxyRequest setBody(Body body)
      Set the request body to be sent to the origin server.

      The initial request body value is the proxied request body.

      Parameters:
      body - the new body
      Returns:
      a reference to this, so the API can be used fluently
    • setAuthority

      ProxyRequest setAuthority(HostAndPort authority)
      Set the request authority.
      • for HTTP/1 the Host header
      • for HTTP/2 the :authority pseudo header
      The value must follow the <host>:<port> syntax.
      Parameters:
      authority - the authority
      Returns:
      a reference to this, so the API can be used fluently
    • getAuthority

      HostAndPort getAuthority()
      Returns:
      the request authority, for HTTP2 the :authority pseudo header otherwise the Host header
    • headers

      MultiMap headers()
      Returns:
      the headers that will be sent to the origin server, the returned headers can be modified. The headers map is populated with the proxied request headers
    • putHeader

      ProxyRequest putHeader(CharSequence name, CharSequence value)
      Put an HTTP header.
      Parameters:
      name - The header name
      value - The header value
      Returns:
      a reference to this, so the API can be used fluently
    • proxy

      default Future<Void> proxy(HttpClientRequest request)
      Proxy this request to the origin server using the specified request and then send the proxy response.
      Parameters:
      request - the request connected to the origin server
    • send

      Send this request to the origin server using the specified request.

      The returned future will be completed with the proxy response returned by the origin.

      Parameters:
      request - the request connected to the origin server
    • release

      ProxyRequest release()
      Release the proxy request and its associated resources.

      The HTTP server request is resumed, no HTTP server response is sent.

      Returns:
      a reference to this, so the API can be used fluently
    • proxiedRequest

      HttpServerRequest proxiedRequest()
      Returns:
      the proxied HTTP server request
    • response

      ProxyResponse response()
      Create and return the proxy response.
      Returns:
      the proxy response