Class UpgradeRequest

java.lang.Object
org.glassfish.tyrus.spi.UpgradeRequest
All Implemented Interfaces:
HandshakeRequest
Direct Known Subclasses:
RequestContext

public abstract class UpgradeRequest extends Object implements HandshakeRequest
Abstraction for a HTTP upgrade request. A transport creates an implementation for this and uses WebSocketEngine.upgrade(org.glassfish.tyrus.spi.UpgradeRequest, org.glassfish.tyrus.spi.UpgradeResponse) method to upgrade the request.
Author:
Danny Coward, Pavel Bucek
  • Field Details

    • WEBSOCKET

      public static final String WEBSOCKET
      Expected value in HTTP handshake "Upgrade" header.

      (Registered in RFC 6455).

      See Also:
    • RESPONSE_CODE_MESSAGE

      public static final String RESPONSE_CODE_MESSAGE
      HTTP reason phrase for successful handshake response.
      See Also:
    • UPGRADE

      public static final String UPGRADE
      HTTP "Upgrade" header name and "Connection" header expected value.
      See Also:
    • CONNECTION

      public static final String CONNECTION
      HTTP "Connection" header name.
      See Also:
    • HOST

      public static final String HOST
      HTTP "Host" header name.
      See Also:
    • SEC_WS_ORIGIN_HEADER

      public static final String SEC_WS_ORIGIN_HEADER
      WebSocket origin header name from previous versions.

      Keeping here only for backwards compatibility, not used anymore.

      See Also:
    • ORIGIN_HEADER

      public static final String ORIGIN_HEADER
      HTTP "Origin" header name.
      See Also:
    • CLUSTER_CONNECTION_ID_HEADER

      public static final String CLUSTER_CONNECTION_ID_HEADER
      Tyrus cluster connection ID header name.
      See Also:
    • SERVER_KEY_HASH

      public static final String SERVER_KEY_HASH
      Server key hash used to compute "Sec-WebSocket-Accept" header value.

      Defined in RFC 6455.

      See Also:
    • AUTHORIZATION

      public static final String AUTHORIZATION
      HTTP "Authorization" header name.
      See Also:
    • ENABLE_TRACING_HEADER

      public static final String ENABLE_TRACING_HEADER
      If this header is present in the handshake request and the tracing type is configured to "ON_DEMAND", tracing headers will be sent in the handshake response. The value of the header is no taken into account.

      Setting this header does not have any effect if the tracing type is configured to "ALL" or "OFF".

      See Also:
    • TRACING_THRESHOLD

      public static final String TRACING_THRESHOLD
      This header allows temporarily changing tracing threshold. If present in the handshake request, the tracing threshold will be changed for the handshake the request is part of.

      The expected values are "SUMMARY" or "TRACE", of which "TRACE" will provide more fine-grained information.

      See Also:
  • Constructor Details

    • UpgradeRequest

      public UpgradeRequest()
  • Method Details

    • getHeader

      public abstract String getHeader(String name)
      Returns the value of the specified request header name. If there are multiple headers with the same name, this method returns the first header in the request. The header name is case insensitive.
      Parameters:
      name - a header name.
      Returns:
      value of the specified header name, null if the request doesn't have a header of that name.
    • getRequestUri

      public abstract String getRequestUri()
      Get the undecoded request uri (up to the query string) of underlying HTTP handshake request.
      Returns:
      request uri.
    • isSecure

      public abstract boolean isSecure()
      Indicates whether this request was made using a secure channel (such as HTTPS).
      Returns:
      true if the request was made using secure channel, false otherwise.