Class Connectors

java.lang.Object
io.undertow.server.Connectors

public class Connectors extends Object
This class provides the connector part of the HttpServerExchange API.

It contains methods that logically belong on the exchange, however should only be used by connector implementations.

Author:
Stuart Douglas, Richard Opalka
  • Constructor Details

    • Connectors

      public Connectors()
  • Method Details

    • flattenCookies

      public static void flattenCookies(HttpServerExchange exchange)
      Flattens the exchange cookie map into the response header map. This should be called by a connector just before the response is started.
      Parameters:
      exchange - The server exchange
    • addCookie

      public static void addCookie(HttpServerExchange exchange, Cookie cookie)
      Adds the cookie into the response header map. This should be called before the response is started.
      Parameters:
      exchange - The server exchange
      cookie - The cookie
    • ungetRequestBytes

      public static void ungetRequestBytes(HttpServerExchange exchange, PooledByteBuffer... buffers)
      Attached buffered data to the exchange. The will generally be used to allow data to be re-read.
      Parameters:
      exchange - The HTTP server exchange
      buffers - The buffers to attach
    • terminateRequest

      public static void terminateRequest(HttpServerExchange exchange)
    • terminateResponse

      public static void terminateResponse(HttpServerExchange exchange)
    • resetRequestChannel

      public static void resetRequestChannel(HttpServerExchange exchange)
    • setRequestStartTime

      public static void setRequestStartTime(HttpServerExchange exchange)
    • setRequestStartTime

      public static void setRequestStartTime(HttpServerExchange existing, HttpServerExchange newExchange)
    • executeRootHandler

      public static void executeRootHandler(HttpHandler handler, HttpServerExchange exchange)
    • setExchangeRequestPath

      @Deprecated public static void setExchangeRequestPath(HttpServerExchange exchange, String encodedPath, String charset, boolean decode, boolean allowEncodedSlash, StringBuilder decodeBuffer)
      Deprecated.
      Sets the request path and query parameters, decoding to the requested charset.
      Parameters:
      exchange - The exchange
      encodedPath - The encoded path
      charset - The charset
    • setExchangeRequestPath

      public static void setExchangeRequestPath(HttpServerExchange exchange, String encodedPath, StringBuilder decodeBuffer) throws ParameterLimitException, BadRequestException
      Sets the request path and query parameters, decoding to the requested charset. All the options are retrieved from the exchange undertow options.
      Parameters:
      exchange - The exchange
      encodedPath - The encoded path to decode
      decodeBuffer - The decode buffer to use
      Throws:
      ParameterLimitException
      BadRequestException
    • setExchangeRequestPath

      public static void setExchangeRequestPath(HttpServerExchange exchange, String encodedPath, String charset, boolean decode, boolean decodeSlashFlag, StringBuilder decodeBuffer, int maxParameters) throws ParameterLimitException, BadRequestException
      Sets the request path and query parameters, decoding to the requested charset.
      Parameters:
      exchange - the exchange
      encodedPath - the encoded path
      decode - indicates if the request path should be decoded
      decodeSlashFlag - indicates if slash characters contained in the encoded path should be decoded
      decodeBuffer - the buffer used for decoding
      maxParameters - maximum number of parameters allowed in the path
      charset - the charset
      Throws:
      BadRequestException - if there is something wrong with the request, such as non-allowed characters
      ParameterLimitException
    • setExchangeRequestPath

      public static void setExchangeRequestPath(HttpServerExchange exchange, String encodedPath, String charset, boolean decode, boolean decodeQueryString, boolean decodeSlashFlag, StringBuilder decodeBuffer, int maxParameters) throws ParameterLimitException, BadRequestException
      Sets the request path and query parameters, decoding to the requested charset.
      Parameters:
      exchange - the exchange
      encodedPath - the encoded path
      decode - indicates if the request path should be decoded, apart from the query string part of the request (see next parameter)
      decodeQueryString - indicates if the query string of the path, when present, should be decoded
      decodeSlashFlag - indicates if slash characters contained in the request path should be decoded
      decodeBuffer - the buffer used for decoding
      maxParameters - maximum number of parameters allowed in the path
      charset - the charset
      Throws:
      BadRequestException - if there is something wrong with the request, such as non-allowed characters
      ParameterLimitException
    • getExistingRequestChannel

      public static org.xnio.channels.StreamSourceChannel getExistingRequestChannel(HttpServerExchange exchange)
      Returns the existing request channel, if it exists. Otherwise returns null
      Parameters:
      exchange - The http server exchange
    • isEntityBodyAllowed

      public static boolean isEntityBodyAllowed(HttpServerExchange exchange)
    • isEntityBodyAllowed

      public static boolean isEntityBodyAllowed(int code)
    • updateResponseBytesSent

      public static void updateResponseBytesSent(HttpServerExchange exchange, long bytes)
    • getConduitSinkChannel

      public static org.xnio.conduits.ConduitStreamSinkChannel getConduitSinkChannel(HttpServerExchange exchange)
    • verifyToken

      public static void verifyToken(HttpString header)
      Verifies that the contents of the HttpString are a valid token according to rfc7230.
      Parameters:
      header - The header to verify
    • isValidTokenCharacter

      public static boolean isValidTokenCharacter(byte c)
      Returns true if the token character is valid according to rfc7230
    • isValidSchemeCharacter

      public static boolean isValidSchemeCharacter(byte c)
    • areRequestHeadersValid

      public static boolean areRequestHeadersValid(HeaderMap headers)
      Verifies that the provided request headers are valid according to rfc7230. In particular: - At most one content-length or transfer encoding