org.apache.coyote.http11

## Class AbstractHttp11Protocol<S>

- java.lang.Object
- - org.apache.coyote.AbstractProtocol<S>
  - - org.apache.coyote.http11.AbstractHttp11Protocol<S>

- All Implemented Interfaces:
    MBeanRegistration, ProtocolHandler
  Direct Known Subclasses:
    AbstractHttp11JsseProtocol, Http11AprProtocol

      public abstract class AbstractHttp11Protocol<S>
      extends AbstractProtocol<S>

- - ### Nested Class Summary

    - ### Nested classes/interfaces inherited from class org.apache.coyote.AbstractProtocol

      `AbstractProtocol.ConnectionHandler<S>, AbstractProtocol.RecycledProcessors`

  - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `protected static StringManager` | `sm`

    - ### Fields inherited from class org.apache.coyote.AbstractProtocol

      `adapter, domain, mserver, oname, processorCache, rgOname`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `AbstractHttp11Protocol(AbstractEndpoint<S,?> endpoint)`

  - ### Method Summary

    All Methods Instance Methods Concrete Methods Deprecated Methods
    Modifier and Type | Method and Description
    --- | ---
    `void` | `addAllowedTrailerHeader(String header)`
    `void` | `addSslHostConfig(SSLHostConfig sslHostConfig)` Add a new SSL configuration for a virtual host.
    `void` | `addUpgradeProtocol(UpgradeProtocol upgradeProtocol)` Add a new protocol for used by HTTP/1.1 upgrade or ALPN.
    `protected Processor` | `createProcessor()` Create and configure a new Processor instance for the current protocol implementation.
    `protected Processor` | `createUpgradeProcessor(SocketWrapperBase<?> socket, UpgradeToken upgradeToken)`
    `void` | `destroy()` Destroy the protocol (optional).
    `SSLHostConfig[]` | `findSslHostConfigs()` Find all configured SSL virtual host configurations which will be used by SNI.
    `UpgradeProtocol[]` | `findUpgradeProtocols()` Return all configured upgrade protocols.
    `String` | `getAlgorithm()`
    `String` | `getAllowedTrailerHeaders()`
    `protected Set<String>` | `getAllowedTrailerHeadersInternal()`
    `boolean` | `getAllowHostHeaderMismatch()` Will Tomcat accept an HTTP 1.1 request where the host header does not agree with the host specified (if any) in the request line?
    `String` | `getCiphers()`
    `String` | `getClientAuth()`
    `String` | `getCompressibleMimeType()`
    `String[]` | `getCompressibleMimeTypes()`
    `String` | `getCompression()`
    `protected int` | `getCompressionLevel()`
    `int` | `getCompressionMinSize()`
    `int` | `getConnectionUploadTimeout()` Specifies a different (usually longer) connection timeout during data upload.
    `String` | `getContinueResponseTiming()`
    `ContinueResponseTiming` | `getContinueResponseTimingInternal()`
    `String` | `getCrlFile()`
    `String` | `getDefaultSSLHostConfigName()`
    `boolean` | `getDisableUploadTimeout()` Get the flag that controls upload time-outs.
    `protected AbstractEndpoint<S,?>` | `getEndpoint()` Over-ridden here to make the method visible to nested classes.
    `String` | `getKeyAlias()`
    `String` | `getKeyPass()`
    `String` | `getKeystoreFile()`
    `String` | `getKeystorePass()`
    `String` | `getKeystoreProvider()`
    `String` | `getKeystoreType()`
    `int` | `getMaxExtensionSize()`
    `int` | `getMaxHttpHeaderSize()`
    `int` | `getMaxKeepAliveRequests()`
    `int` | `getMaxSavePostSize()` Return the maximum size of the post which will be saved during FORM or CLIENT-CERT authentication.
    `int` | `getMaxSwallowSize()`
    `int` | `getMaxTrailerSize()`
    `UpgradeProtocol` | `getNegotiatedProtocol(String negotiatedName)` Find a suitable handler for the protocol negotiated at the network layer.
    `boolean` | `getNoCompressionStrongETag()` Deprecated.
    `String` | `getNoCompressionUserAgents()`
    `protected Pattern` | `getNoCompressionUserAgentsPattern()`
    `ObjectName` | `getONameForUpgrade(String upgradeProtocol)`
    `protected String` | `getProtocolName()` Obtain the name of the protocol, (Http, Ajp, etc.).
    `boolean` | `getRejectIllegalHeader()` If an HTTP request is received that contains an illegal header name or value (e.g. the header name is not a token) will the request be rejected (with a 400 response) or will the illegal header be ignored?
    `boolean` | `getRejectIllegalHeaderName()` Deprecated. Now an alias for `getRejectIllegalHeader()`. Will be removed in Tomcat 10 onwards.
    `String` | `getRelaxedPathChars()`
    `String` | `getRelaxedQueryChars()`
    `String` | `getRestrictedUserAgents()` Get the string form of the regular expression that defines the User agents which should be restricted to HTTP/1.0 support.
    `protected Pattern` | `getRestrictedUserAgentsPattern()`
    `boolean` | `getSecure()`
    `String` | `getServer()`
    `boolean` | `getServerRemoveAppProvidedValues()` Should application provider values for the HTTP Server header be removed.
    `int` | `getSessionCacheSize()`
    `int` | `getSessionTimeout()`
    `String` | `getSSLCACertificateFile()`
    `String` | `getSSLCACertificatePath()`
    `String` | `getSSLCARevocationFile()`
    `String` | `getSSLCARevocationPath()`
    `String` | `getSSLCertificateChainFile()`
    `String` | `getSSLCertificateFile()`
    `String` | `getSSLCertificateKeyFile()`
    `String` | `getSSLCipherSuite()`
    `boolean` | `getSSLDisableCompression()`
    `boolean` | `getSSLDisableSessionTickets()`
    `String` | `getSslEnabledProtocols()`
    `boolean` | `getSSLHonorCipherOrder()`
    `String` | `getSSLPassword()`
    `String` | `getSslProtocol()`
    `String` | `getSSLProtocol()`
    `String` | `getSSLVerifyClient()`
    `int` | `getSSLVerifyDepth()`
    `String` | `getTrustManagerClassName()`
    `int` | `getTrustMaxCertLength()`
    `String` | `getTruststoreAlgorithm()`
    `String` | `getTruststoreFile()`
    `String` | `getTruststorePass()`
    `String` | `getTruststoreProvider()`
    `String` | `getTruststoreType()`
    `UpgradeGroupInfo` | `getUpgradeGroupInfo(String upgradeProtocol)`
    `UpgradeProtocol` | `getUpgradeProtocol(String upgradedName)` Find a suitable handler for the protocol upgraded name specified.
    `boolean` | `getUseKeepAliveResponseHeader()`
    `boolean` | `getUseSendfile()`
    `boolean` | `getUseServerCipherSuitesOrder()`
    `void` | `init()` Initialise the protocol.
    `boolean` | `isSSLEnabled()`
    `void` | `reloadSslHostConfig(String hostName)`
    `void` | `reloadSslHostConfigs()`
    `void` | `removeAllowedTrailerHeader(String header)`
    `void` | `setAlgorithm(String keyManagerAlgorithm)`
    `void` | `setAllowedTrailerHeaders(String commaSeparatedHeaders)`
    `void` | `setAllowHostHeaderMismatch(boolean allowHostHeaderMismatch)` Will Tomcat accept an HTTP 1.1 request where the host header does not agree with the host specified (if any) in the request line?
    `void` | `setCiphers(String ciphers)`
    `void` | `setClientAuth(String certificateVerification)`
    `void` | `setCompressibleMimeType(String valueS)`
    `void` | `setCompression(String compression)`
    `void` | `setCompressionMinSize(int compressionMinSize)`
    `void` | `setConnectionUploadTimeout(int timeout)` Set the upload timeout.
    `void` | `setContinueResponseTiming(String continueResponseTiming)`
    `void` | `setCrlFile(String certificateRevocationListFile)`
    `void` | `setDefaultSSLHostConfigName(String defaultSSLHostConfigName)`
    `void` | `setDisableUploadTimeout(boolean isDisabled)` Set the flag to control whether a separate connection timeout is used during upload of a request body.
    `void` | `setKeyAlias(String certificateKeyAlias)`
    `void` | `setKeyPass(String certificateKeyPassword)`
    `void` | `setKeystoreFile(String keystoreFile)`
    `void` | `setKeystorePass(String certificateKeystorePassword)`
    `void` | `setKeystoreProvider(String certificateKeystoreProvider)`
    `void` | `setKeystoreType(String certificateKeystoreType)`
    `void` | `setMaxExtensionSize(int maxExtensionSize)`
    `void` | `setMaxHttpHeaderSize(int valueI)`
    `void` | `setMaxKeepAliveRequests(int mkar)` Set the maximum number of Keep-Alive requests to allow.
    `void` | `setMaxSavePostSize(int maxSavePostSize)` Set the maximum size of a POST which will be buffered during FORM or CLIENT-CERT authentication.
    `void` | `setMaxSwallowSize(int maxSwallowSize)`
    `void` | `setMaxTrailerSize(int maxTrailerSize)`
    `void` | `setNoCompressionStrongETag(boolean noCompressionStrongETag)` Deprecated.
    `void` | `setNoCompressionUserAgents(String noCompressionUserAgents)`
    `void` | `setRejectIllegalHeader(boolean rejectIllegalHeader)` If an HTTP request is received that contains an illegal header name or value (e.g. the header name is not a token) should the request be rejected (with a 400 response) or should the illegal header be ignored?
    `void` | `setRejectIllegalHeaderName(boolean rejectIllegalHeaderName)` Deprecated. Now an alias for `setRejectIllegalHeader(boolean)`. Will be removed in Tomcat 10 onwards.
    `void` | `setRelaxedPathChars(String relaxedPathChars)`
    `void` | `setRelaxedQueryChars(String relaxedQueryChars)`
    `void` | `setRestrictedUserAgents(String restrictedUserAgents)` Set restricted user agent list (which will downgrade the connector to HTTP/1.0 mode).
    `void` | `setSecure(boolean b)`
    `void` | `setServer(String server)` Set the server header name.
    `void` | `setServerRemoveAppProvidedValues(boolean serverRemoveAppProvidedValues)`
    `void` | `setSessionCacheSize(int sessionCacheSize)`
    `void` | `setSessionTimeout(int sessionTimeout)`
    `void` | `setSSLCACertificateFile(String caCertificateFile)`
    `void` | `setSSLCACertificatePath(String caCertificatePath)`
    `void` | `setSSLCARevocationFile(String certificateRevocationListFile)`
    `void` | `setSSLCARevocationPath(String certificateRevocationListPath)`
    `void` | `setSSLCertificateChainFile(String certificateChainFile)`
    `void` | `setSSLCertificateFile(String certificateFile)`
    `void` | `setSSLCertificateKeyFile(String certificateKeyFile)`
    `void` | `setSSLCipherSuite(String ciphers)`
    `void` | `setSSLDisableCompression(boolean disableCompression)`
    `void` | `setSSLDisableSessionTickets(boolean disableSessionTickets)`
    `void` | `setSSLEnabled(boolean SSLEnabled)`
    `void` | `setSslEnabledProtocols(String enabledProtocols)`
    `void` | `setSSLHonorCipherOrder(boolean honorCipherOrder)`
    `void` | `setSSLPassword(String certificateKeyPassword)`
    `void` | `setSslProtocol(String sslProtocol)`
    `void` | `setSSLProtocol(String sslProtocol)`
    `void` | `setSSLVerifyClient(String certificateVerification)`
    `void` | `setSSLVerifyDepth(int certificateVerificationDepth)`
    `void` | `setTrustManagerClassName(String trustManagerClassName)`
    `void` | `setTrustMaxCertLength(int certificateVerificationDepth)`
    `void` | `setTruststoreAlgorithm(String truststoreAlgorithm)`
    `void` | `setTruststoreFile(String truststoreFile)`
    `void` | `setTruststorePass(String truststorePassword)`
    `void` | `setTruststoreProvider(String truststoreProvider)`
    `void` | `setTruststoreType(String truststoreType)`
    `void` | `setUseKeepAliveResponseHeader(boolean useKeepAliveResponseHeader)`
    `void` | `setUseSendfile(boolean useSendfile)`
    `void` | `setUseServerCipherSuitesOrder(boolean honorCipherOrder)`
    `boolean` | `useCompression(Request request, Response response)`

    - ### Methods inherited from class org.apache.coyote.AbstractProtocol

      `addWaitingProcessor, awaitConnectionsClose, closeServerSocketGraceful, getAcceptCount, getAcceptorThreadCount, getAcceptorThreadPriority, getAdapter, getAddress, getClientCertProvider, getConnectionCount, getConnectionLinger, getConnectionTimeout, getDomain, getExecutor, getGlobalRequestProcessorMBeanName, getHandler, getId, getKeepAliveTimeout, getLocalPort, getLog, getMaxConnections, getMaxHeaderCount, getMaxThreads, getMinSpareThreads, getName, getNameIndex, getNamePrefix, getObjectName, getPort, getPortOffset, getPortWithOffset, getProcessorCache, getProperty, getTcpNoDelay, getThreadPriority, getUtilityExecutor, getWaitingProcessorCount, isAprRequired, isPaused, isSendfileSupported, pause, postDeregister, postRegister, preDeregister, preRegister, removeWaitingProcessor, resume, setAcceptCount, setAcceptorThreadCount, setAcceptorThreadPriority, setAdapter, setAddress, setClientCertProvider, setConnectionLinger, setConnectionTimeout, setExecutor, setHandler, setKeepAliveTimeout, setMaxConnections, setMaxHeaderCount, setMaxThreads, setMinSpareThreads, setPort, setPortOffset, setProcessorCache, setProperty, setTcpNoDelay, setThreadPriority, setUtilityExecutor, start, startAsyncTimeout, stop, stopAsyncTimeout`

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

    - ### Methods inherited from interface org.apache.coyote.ProtocolHandler

      `create, getDesiredBufferSize`

- - ### Field Detail

    - #### sm

          protected static final StringManager sm

  - ### Constructor Detail

    - #### AbstractHttp11Protocol

          public AbstractHttp11Protocol(AbstractEndpoint<S,?> endpoint)

  - ### Method Detail

    - #### init

          public void init()
                    throws Exception

      Description copied from interface: `ProtocolHandler`
      Initialise the protocol.
      Specified by:
        `init` in interface `ProtocolHandler`
      Overrides:
        `init` in class `AbstractProtocol<S>`
      Throws:
        `Exception` - If the protocol handler fails to initialise

    - #### destroy

          public void destroy()
                       throws Exception

      Description copied from interface: `ProtocolHandler`
      Destroy the protocol (optional).
      Specified by:
        `destroy` in interface `ProtocolHandler`
      Overrides:
        `destroy` in class `AbstractProtocol<S>`
      Throws:
        `Exception` - If the protocol handler fails to destroy

    - #### getProtocolName

          protected String getProtocolName()

      Description copied from class: `AbstractProtocol`
      Obtain the name of the protocol, (Http, Ajp, etc.). Used with JMX.
      Specified by:
        `getProtocolName` in class `AbstractProtocol<S>`
      Returns:
        the protocol name

    - #### getEndpoint

          protected AbstractEndpoint<S,?> getEndpoint()

      Over-ridden here to make the method visible to nested classes.

      Overrides:
        `getEndpoint` in class `AbstractProtocol<S>`

    - #### getContinueResponseTiming

          public String getContinueResponseTiming()

    - #### setContinueResponseTiming

          public void setContinueResponseTiming(String continueResponseTiming)

    - #### getContinueResponseTimingInternal

          public ContinueResponseTiming getContinueResponseTimingInternal()

    - #### getUseKeepAliveResponseHeader

          public boolean getUseKeepAliveResponseHeader()

    - #### setUseKeepAliveResponseHeader

          public void setUseKeepAliveResponseHeader(boolean useKeepAliveResponseHeader)

    - #### getRelaxedPathChars

          public String getRelaxedPathChars()

    - #### setRelaxedPathChars

          public void setRelaxedPathChars(String relaxedPathChars)

    - #### getRelaxedQueryChars

          public String getRelaxedQueryChars()

    - #### setRelaxedQueryChars

          public void setRelaxedQueryChars(String relaxedQueryChars)

    - #### getAllowHostHeaderMismatch

          public boolean getAllowHostHeaderMismatch()

      Will Tomcat accept an HTTP 1.1 request where the host header does not agree with the host specified (if any) in the request line?
      Returns:
        `true` if Tomcat will allow such requests, otherwise `false`

    - #### setAllowHostHeaderMismatch

          public void setAllowHostHeaderMismatch(boolean allowHostHeaderMismatch)

      Will Tomcat accept an HTTP 1.1 request where the host header does not agree with the host specified (if any) in the request line?
      Parameters:
        `allowHostHeaderMismatch` - `true` to allow such requests, `false` to reject them with a 400

    - #### getRejectIllegalHeader

          public boolean getRejectIllegalHeader()

      If an HTTP request is received that contains an illegal header name or value (e.g. the header name is not a token) will the request be rejected (with a 400 response) or will the illegal header be ignored?
      Returns:
        `true` if the request will be rejected or `false` if the header will be ignored

    - #### setRejectIllegalHeader

          public void setRejectIllegalHeader(boolean rejectIllegalHeader)

      If an HTTP request is received that contains an illegal header name or value (e.g. the header name is not a token) should the request be rejected (with a 400 response) or should the illegal header be ignored?
      Parameters:
        `rejectIllegalHeader` - `true` to reject requests with illegal header names or values, `false` to ignore the header

    - #### getRejectIllegalHeaderName

          @Deprecated
          public boolean getRejectIllegalHeaderName()

      Deprecated. Now an alias for `getRejectIllegalHeader()`. Will be removed in Tomcat 10 onwards.
      If an HTTP request is received that contains an illegal header name or value (e.g. the header name is not a token) will the request be rejected (with a 400 response) or will the illegal header be ignored?
      Returns:
        `true` if the request will be rejected or `false` if the header will be ignored

    - #### setRejectIllegalHeaderName

          @Deprecated
          public void setRejectIllegalHeaderName(boolean rejectIllegalHeaderName)

      Deprecated. Now an alias for `setRejectIllegalHeader(boolean)`. Will be removed in Tomcat 10 onwards.
      If an HTTP request is received that contains an illegal header name or value (e.g. the header name is not a token) should the request be rejected (with a 400 response) or should the illegal header be ignored?
      Parameters:
        `rejectIllegalHeaderName` - `true` to reject requests with illegal header names or values, `false` to ignore the header

    - #### getMaxSavePostSize

          public int getMaxSavePostSize()

      Return the maximum size of the post which will be saved during FORM or CLIENT-CERT authentication.
      Returns:
        The size in bytes

    - #### setMaxSavePostSize

          public void setMaxSavePostSize(int maxSavePostSize)

      Set the maximum size of a POST which will be buffered during FORM or CLIENT-CERT authentication. When a POST is received where the security constraints require a client certificate, the POST body needs to be buffered while an SSL handshake takes place to obtain the certificate. A similar buffering is required during FDORM auth.
      Parameters:
        `maxSavePostSize` - The maximum size POST body to buffer in bytes

    - #### getMaxHttpHeaderSize

          public int getMaxHttpHeaderSize()

    - #### setMaxHttpHeaderSize

          public void setMaxHttpHeaderSize(int valueI)

    - #### getConnectionUploadTimeout

          public int getConnectionUploadTimeout()

      Specifies a different (usually longer) connection timeout during data upload. Default is 5 minutes as in Apache HTTPD server.
      Returns:
        The timeout in milliseconds

    - #### setConnectionUploadTimeout

          public void setConnectionUploadTimeout(int timeout)

      Set the upload timeout.
      Parameters:
        `timeout` - Upload timeout in milliseconds

    - #### getDisableUploadTimeout

          public boolean getDisableUploadTimeout()

      Get the flag that controls upload time-outs. If true, the connectionUploadTimeout will be ignored and the regular socket timeout will be used for the full duration of the connection.
      Returns:
        `true` if the separate upload timeout is disabled

    - #### setDisableUploadTimeout

          public void setDisableUploadTimeout(boolean isDisabled)

      Set the flag to control whether a separate connection timeout is used during upload of a request body.
      Parameters:
        `isDisabled` - `true` if the separate upload timeout should be disabled

    - #### setCompression

          public void setCompression(String compression)

    - #### getCompression

          public String getCompression()

    - #### getCompressionLevel

          protected int getCompressionLevel()

    - #### getNoCompressionUserAgents

          public String getNoCompressionUserAgents()

    - #### getNoCompressionUserAgentsPattern

          protected Pattern getNoCompressionUserAgentsPattern()

    - #### setNoCompressionUserAgents

          public void setNoCompressionUserAgents(String noCompressionUserAgents)

    - #### getCompressibleMimeType

          public String getCompressibleMimeType()

    - #### setCompressibleMimeType

          public void setCompressibleMimeType(String valueS)

    - #### getCompressibleMimeTypes

          public String[] getCompressibleMimeTypes()

    - #### getCompressionMinSize

          public int getCompressionMinSize()

    - #### setCompressionMinSize

          public void setCompressionMinSize(int compressionMinSize)

    - #### getNoCompressionStrongETag

          @Deprecated
          public boolean getNoCompressionStrongETag()

      Deprecated.

    - #### setNoCompressionStrongETag

          @Deprecated
          public void setNoCompressionStrongETag(boolean noCompressionStrongETag)

      Deprecated.

    - #### useCompression

          public boolean useCompression(Request request,
                                        Response response)

    - #### getRestrictedUserAgents

          public String getRestrictedUserAgents()

      Get the string form of the regular expression that defines the User agents which should be restricted to HTTP/1.0 support.
      Returns:
        The regular expression as a String

    - #### getRestrictedUserAgentsPattern

          protected Pattern getRestrictedUserAgentsPattern()

    - #### setRestrictedUserAgents

          public void setRestrictedUserAgents(String restrictedUserAgents)

      Set restricted user agent list (which will downgrade the connector to HTTP/1.0 mode). Regular expression as supported by `Pattern`.
      Parameters:
        `restrictedUserAgents` - The regular expression as supported by `Pattern` for the user agents e.g. "gorilla|desesplorer|tigrus"

    - #### getServer

          public String getServer()

    - #### setServer

          public void setServer(String server)

      Set the server header name.
      Parameters:
        `server` - The new value to use for the server header

    - #### getServerRemoveAppProvidedValues

          public boolean getServerRemoveAppProvidedValues()

      Should application provider values for the HTTP Server header be removed. Note that if `server` is set, any application provided value will be over-ridden.
      Returns:
        `true` if application provided values should be removed, otherwise `false`

    - #### setServerRemoveAppProvidedValues

          public void setServerRemoveAppProvidedValues(boolean serverRemoveAppProvidedValues)

    - #### getMaxTrailerSize

          public int getMaxTrailerSize()

    - #### setMaxTrailerSize

          public void setMaxTrailerSize(int maxTrailerSize)

    - #### getMaxExtensionSize

          public int getMaxExtensionSize()

    - #### setMaxExtensionSize

          public void setMaxExtensionSize(int maxExtensionSize)

    - #### getMaxSwallowSize

          public int getMaxSwallowSize()

    - #### setMaxSwallowSize

          public void setMaxSwallowSize(int maxSwallowSize)

    - #### getSecure

          public boolean getSecure()

    - #### setSecure

          public void setSecure(boolean b)

    - #### setAllowedTrailerHeaders

          public void setAllowedTrailerHeaders(String commaSeparatedHeaders)

    - #### getAllowedTrailerHeadersInternal

          protected Set<String> getAllowedTrailerHeadersInternal()

    - #### getAllowedTrailerHeaders

          public String getAllowedTrailerHeaders()

    - #### addAllowedTrailerHeader

          public void addAllowedTrailerHeader(String header)

    - #### removeAllowedTrailerHeader

          public void removeAllowedTrailerHeader(String header)

    - #### addUpgradeProtocol

          public void addUpgradeProtocol(UpgradeProtocol upgradeProtocol)

      Description copied from interface: `ProtocolHandler`
      Add a new protocol for used by HTTP/1.1 upgrade or ALPN.
      Parameters:
        `upgradeProtocol` - the protocol

    - #### findUpgradeProtocols

          public UpgradeProtocol[] findUpgradeProtocols()

      Description copied from interface: `ProtocolHandler`
      Return all configured upgrade protocols.
      Returns:
        the protocols

    - #### getNegotiatedProtocol

          public UpgradeProtocol getNegotiatedProtocol(String negotiatedName)

      Description copied from class: `AbstractProtocol`
      Find a suitable handler for the protocol negotiated at the network layer.
      Specified by:
        `getNegotiatedProtocol` in class `AbstractProtocol<S>`
      Parameters:
        `negotiatedName` - The name of the requested negotiated protocol.
      Returns:
        The instance where `UpgradeProtocol.getAlpnName()` matches the requested protocol

    - #### getUpgradeProtocol

          public UpgradeProtocol getUpgradeProtocol(String upgradedName)

      Description copied from class: `AbstractProtocol`
      Find a suitable handler for the protocol upgraded name specified. This is used for direct connection protocol selection.
      Specified by:
        `getUpgradeProtocol` in class `AbstractProtocol<S>`
      Parameters:
        `upgradedName` - The name of the requested negotiated protocol.
      Returns:
        The instance where `UpgradeProtocol.getAlpnName()` matches the requested protocol

    - #### getUpgradeGroupInfo

          public UpgradeGroupInfo getUpgradeGroupInfo(String upgradeProtocol)

    - #### getONameForUpgrade

          public ObjectName getONameForUpgrade(String upgradeProtocol)

    - #### isSSLEnabled

          public boolean isSSLEnabled()

    - #### setSSLEnabled

          public void setSSLEnabled(boolean SSLEnabled)

    - #### getUseSendfile

          public boolean getUseSendfile()

    - #### setUseSendfile

          public void setUseSendfile(boolean useSendfile)

    - #### getMaxKeepAliveRequests

          public int getMaxKeepAliveRequests()

      Returns:
        The maximum number of requests which can be performed over a keep-alive connection. The default is the same as for Apache HTTP Server (100).

    - #### setMaxKeepAliveRequests

          public void setMaxKeepAliveRequests(int mkar)

      Set the maximum number of Keep-Alive requests to allow. This is to safeguard from DoS attacks. Setting to a negative value disables the limit.
      Parameters:
        `mkar` - The new maximum number of Keep-Alive requests allowed

    - #### getDefaultSSLHostConfigName

          public String getDefaultSSLHostConfigName()

    - #### setDefaultSSLHostConfigName

          public void setDefaultSSLHostConfigName(String defaultSSLHostConfigName)

    - #### addSslHostConfig

          public void addSslHostConfig(SSLHostConfig sslHostConfig)

      Description copied from interface: `ProtocolHandler`
      Add a new SSL configuration for a virtual host.
      Parameters:
        `sslHostConfig` - the configuration

    - #### findSslHostConfigs

          public SSLHostConfig[] findSslHostConfigs()

      Description copied from interface: `ProtocolHandler`
      Find all configured SSL virtual host configurations which will be used by SNI.
      Returns:
        the configurations

    - #### reloadSslHostConfigs

          public void reloadSslHostConfigs()

    - #### reloadSslHostConfig

          public void reloadSslHostConfig(String hostName)

    - #### getSslEnabledProtocols

          public String getSslEnabledProtocols()

    - #### setSslEnabledProtocols

          public void setSslEnabledProtocols(String enabledProtocols)

    - #### getSSLProtocol

          public String getSSLProtocol()

    - #### setSSLProtocol

          public void setSSLProtocol(String sslProtocol)

    - #### getKeystoreFile

          public String getKeystoreFile()

    - #### setKeystoreFile

          public void setKeystoreFile(String keystoreFile)

    - #### getSSLCertificateChainFile

          public String getSSLCertificateChainFile()

    - #### setSSLCertificateChainFile

          public void setSSLCertificateChainFile(String certificateChainFile)

    - #### getSSLCertificateFile

          public String getSSLCertificateFile()

    - #### setSSLCertificateFile

          public void setSSLCertificateFile(String certificateFile)

    - #### getSSLCertificateKeyFile

          public String getSSLCertificateKeyFile()

    - #### setSSLCertificateKeyFile

          public void setSSLCertificateKeyFile(String certificateKeyFile)

    - #### getAlgorithm

          public String getAlgorithm()

    - #### setAlgorithm

          public void setAlgorithm(String keyManagerAlgorithm)

    - #### getClientAuth

          public String getClientAuth()

    - #### setClientAuth

          public void setClientAuth(String certificateVerification)

    - #### getSSLVerifyClient

          public String getSSLVerifyClient()

    - #### setSSLVerifyClient

          public void setSSLVerifyClient(String certificateVerification)

    - #### getTrustMaxCertLength

          public int getTrustMaxCertLength()

    - #### setTrustMaxCertLength

          public void setTrustMaxCertLength(int certificateVerificationDepth)

    - #### getSSLVerifyDepth

          public int getSSLVerifyDepth()

    - #### setSSLVerifyDepth

          public void setSSLVerifyDepth(int certificateVerificationDepth)

    - #### getUseServerCipherSuitesOrder

          public boolean getUseServerCipherSuitesOrder()

    - #### setUseServerCipherSuitesOrder

          public void setUseServerCipherSuitesOrder(boolean honorCipherOrder)

    - #### getSSLHonorCipherOrder

          public boolean getSSLHonorCipherOrder()

    - #### setSSLHonorCipherOrder

          public void setSSLHonorCipherOrder(boolean honorCipherOrder)

    - #### getCiphers

          public String getCiphers()

    - #### setCiphers

          public void setCiphers(String ciphers)

    - #### getSSLCipherSuite

          public String getSSLCipherSuite()

    - #### setSSLCipherSuite

          public void setSSLCipherSuite(String ciphers)

    - #### getKeystorePass

          public String getKeystorePass()

    - #### setKeystorePass

          public void setKeystorePass(String certificateKeystorePassword)

    - #### getKeyPass

          public String getKeyPass()

    - #### setKeyPass

          public void setKeyPass(String certificateKeyPassword)

    - #### getSSLPassword

          public String getSSLPassword()

    - #### setSSLPassword

          public void setSSLPassword(String certificateKeyPassword)

    - #### getCrlFile

          public String getCrlFile()

    - #### setCrlFile

          public void setCrlFile(String certificateRevocationListFile)

    - #### getSSLCARevocationFile

          public String getSSLCARevocationFile()

    - #### setSSLCARevocationFile

          public void setSSLCARevocationFile(String certificateRevocationListFile)

    - #### getSSLCARevocationPath

          public String getSSLCARevocationPath()

    - #### setSSLCARevocationPath

          public void setSSLCARevocationPath(String certificateRevocationListPath)

    - #### getKeystoreType

          public String getKeystoreType()

    - #### setKeystoreType

          public void setKeystoreType(String certificateKeystoreType)

    - #### getKeystoreProvider

          public String getKeystoreProvider()

    - #### setKeystoreProvider

          public void setKeystoreProvider(String certificateKeystoreProvider)

    - #### getKeyAlias

          public String getKeyAlias()

    - #### setKeyAlias

          public void setKeyAlias(String certificateKeyAlias)

    - #### getTruststoreAlgorithm

          public String getTruststoreAlgorithm()

    - #### setTruststoreAlgorithm

          public void setTruststoreAlgorithm(String truststoreAlgorithm)

    - #### getTruststoreFile

          public String getTruststoreFile()

    - #### setTruststoreFile

          public void setTruststoreFile(String truststoreFile)

    - #### getTruststorePass

          public String getTruststorePass()

    - #### setTruststorePass

          public void setTruststorePass(String truststorePassword)

    - #### getTruststoreType

          public String getTruststoreType()

    - #### setTruststoreType

          public void setTruststoreType(String truststoreType)

    - #### getTruststoreProvider

          public String getTruststoreProvider()

    - #### setTruststoreProvider

          public void setTruststoreProvider(String truststoreProvider)

    - #### getSslProtocol

          public String getSslProtocol()

    - #### setSslProtocol

          public void setSslProtocol(String sslProtocol)

    - #### getSessionCacheSize

          public int getSessionCacheSize()

    - #### setSessionCacheSize

          public void setSessionCacheSize(int sessionCacheSize)

    - #### getSessionTimeout

          public int getSessionTimeout()

    - #### setSessionTimeout

          public void setSessionTimeout(int sessionTimeout)

    - #### getSSLCACertificatePath

          public String getSSLCACertificatePath()

    - #### setSSLCACertificatePath

          public void setSSLCACertificatePath(String caCertificatePath)

    - #### getSSLCACertificateFile

          public String getSSLCACertificateFile()

    - #### setSSLCACertificateFile

          public void setSSLCACertificateFile(String caCertificateFile)

    - #### getSSLDisableCompression

          public boolean getSSLDisableCompression()

    - #### setSSLDisableCompression

          public void setSSLDisableCompression(boolean disableCompression)

    - #### getSSLDisableSessionTickets

          public boolean getSSLDisableSessionTickets()

    - #### setSSLDisableSessionTickets

          public void setSSLDisableSessionTickets(boolean disableSessionTickets)

    - #### getTrustManagerClassName

          public String getTrustManagerClassName()

    - #### setTrustManagerClassName

          public void setTrustManagerClassName(String trustManagerClassName)

    - #### createProcessor

          protected Processor createProcessor()

      Description copied from class: `AbstractProtocol`
      Create and configure a new Processor instance for the current protocol implementation.
      Specified by:
        `createProcessor` in class `AbstractProtocol<S>`
      Returns:
        A fully configured Processor instance that is ready to use

    - #### createUpgradeProcessor

          protected Processor createUpgradeProcessor(SocketWrapperBase<?> socket,
                                                     UpgradeToken upgradeToken)

      Specified by:
        `createUpgradeProcessor` in class `AbstractProtocol<S>`

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