org.apache.coyote

## Interface UpgradeProtocol

- All Known Implementing Classes:
    Http2Protocol

      public interface UpgradeProtocol

- - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `boolean` | `accept(Request request)` Allows the implementation to examine the request and accept or reject it based on what it finds.
    `byte[]` | `getAlpnIdentifier()`
    `String` | `getAlpnName()`
    `String` | `getHttpUpgradeName(boolean isSSLEnabled)`
    `InternalHttpUpgradeHandler` | `getInternalUpgradeHandler(Adapter adapter, Request request)`
    `Processor` | `getProcessor(SocketWrapperBase<?> socketWrapper, Adapter adapter)`

- - ### Method Detail

    - #### getHttpUpgradeName

          String getHttpUpgradeName(boolean isSSLEnabled)

      Parameters:
        `isSSLEnabled` - Is this for a connector that is configured to support TLS. Some protocols (e.g. HTTP/2) only support HTTP upgrade over non-secure connections.
      Returns:
        The name that clients will use to request an upgrade to this protocol via an HTTP/1.1 upgrade request or `null` if upgrade via an HTTP/1.1 upgrade request is not supported.

    - #### getAlpnIdentifier

          byte[] getAlpnIdentifier()

      Returns:
        The byte sequence as listed in the IANA registry for this protocol or `null` if upgrade via ALPN is not supported.

    - #### getAlpnName

          String getAlpnName()

      Returns:
        The name of the protocol as listed in the IANA registry if and only if `getAlpnIdentifier()` returns the UTF-8 encoding of this name. If `getAlpnIdentifier()` returns some other byte sequence, then this method returns the empty string. If upgrade via ALPN is not supported then `null` is returned.

    - #### getProcessor

          Processor getProcessor(SocketWrapperBase<?> socketWrapper,
                               Adapter adapter)

      Parameters:
        `socketWrapper` - The socketWrapper for the connection that requires a processor
        `adapter` - The Adapter instance that provides access to the standard Engine/Host/Context/Wrapper processing chain
      Returns:
        A processor instance for processing a connection using this protocol.

    - #### getInternalUpgradeHandler

          InternalHttpUpgradeHandler getInternalUpgradeHandler(Adapter adapter,
                                                             Request request)

      Parameters:
        `adapter` - The Adapter to use to configure the new upgrade handler
        `request` - A copy (may be incomplete) of the request that triggered the upgrade
      Returns:
        An instance of the HTTP upgrade handler for this protocol

    - #### accept

          boolean accept(Request request)

      Allows the implementation to examine the request and accept or reject it based on what it finds.
      Parameters:
        `request` - The request that included an upgrade header for this protocol
      Returns:
        `true` if the request is accepted, otherwise `false`

Copyright © 2000-2021 Apache Software Foundation. All Rights Reserved.