Package 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
Description
`protected static final StringManager`
`sm`

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

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

## Constructor Summary

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

## Method Summary

Modifier and Type
Method
Description
`void`
`addAllowedTrailerHeader(String header)`
`void`
`addSslHostConfig(SSLHostConfig sslHostConfig)`
Add a new SSL configuration for a virtual host.
`void`
`addSslHostConfig(SSLHostConfig sslHostConfig, boolean replace)`
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()`
Deprecated.
This will removed in Tomcat 11 onwards where `allowHostHeaderMismatch` will be hard-coded to `false`.
`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()`
`String`
`getKeyAlias()`
`String`
`getKeyPass()`
`String`
`getKeyPassFile()`
`String`
`getKeystoreFile()`
`String`
`getKeystorePass()`
`String`
`getKeystorePassFile()`
`String`
`getKeystoreProvider()`
`String`
`getKeystoreType()`
`int`
`getMaxExtensionSize()`
`int`
`getMaxHttpHeaderSize()`
`int`
`getMaxHttpRequestHeaderSize()`
`int`
`getMaxHttpResponseHeaderSize()`
`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()`
Deprecated.
This will removed in Tomcat 11 onwards where `allowHostHeaderMismatch` will be hard-coded to `true`.
`boolean`
`getRejectIllegalHeaderName()`
Deprecated.
Now an alias for `getRejectIllegalHeader()`.
`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`
`getSSLPasswordFile()`
`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)`
Deprecated.
This will removed in Tomcat 11 onwards where `allowHostHeaderMismatch` will be hard-coded to `false`.
`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`
`setKeyPassFile(String certificateKeyPasswordFile)`
`void`
`setKeystoreFile(String keystoreFile)`
`void`
`setKeystorePass(String certificateKeystorePassword)`
`void`
`setKeystorePassFile(String certificateKeystorePasswordFile)`
`void`
`setKeystoreProvider(String certificateKeystoreProvider)`
`void`
`setKeystoreType(String certificateKeystoreType)`
`void`
`setMaxExtensionSize(int maxExtensionSize)`
`void`
`setMaxHttpHeaderSize(int valueI)`
`void`
`setMaxHttpRequestHeaderSize(int valueI)`
`void`
`setMaxHttpResponseHeaderSize(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)`
Deprecated.
This will removed in Tomcat 11 onwards where `allowHostHeaderMismatch` will be hard-coded to `true`.
`void`
`setRejectIllegalHeaderName(boolean rejectIllegalHeaderName)`
Deprecated.
Now an alias for `setRejectIllegalHeader(boolean)`.
`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`
`setSSLPasswordFile(String certificateKeyPasswordFile)`
`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

`getDesiredBufferSize`

## Field Details

### sm

protected static final StringManager sm

## Constructor Details

### AbstractHttp11Protocol

public AbstractHttp11Protocol(AbstractEndpoint<S,?> endpoint)

## Method Details

### 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

@Deprecated public boolean getAllowHostHeaderMismatch()
Deprecated.
This will removed in Tomcat 11 onwards where `allowHostHeaderMismatch` will be hard-coded to `false`.
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

@Deprecated public void setAllowHostHeaderMismatch(boolean allowHostHeaderMismatch)
Deprecated.
This will removed in Tomcat 11 onwards where `allowHostHeaderMismatch` will be hard-coded to `false`.
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

@Deprecated public boolean getRejectIllegalHeader()
Deprecated.
This will removed in Tomcat 11 onwards where `allowHostHeaderMismatch` will be hard-coded to `true`.
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

@Deprecated public void setRejectIllegalHeader(boolean rejectIllegalHeader)
Deprecated.
This will removed in Tomcat 11 onwards where `allowHostHeaderMismatch` will be hard-coded to `true`.
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 FORM auth.

Parameters:
  `maxSavePostSize` - The maximum size POST body to buffer in bytes

### getMaxHttpHeaderSize

public int getMaxHttpHeaderSize()

### setMaxHttpHeaderSize

public void setMaxHttpHeaderSize(int valueI)

### getMaxHttpRequestHeaderSize

public int getMaxHttpRequestHeaderSize()

### setMaxHttpRequestHeaderSize

public void setMaxHttpRequestHeaderSize(int valueI)

### getMaxHttpResponseHeaderSize

public int getMaxHttpResponseHeaderSize()

### setMaxHttpResponseHeaderSize

public void setMaxHttpResponseHeaderSize(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

### addSslHostConfig

public void addSslHostConfig(SSLHostConfig sslHostConfig, boolean replace)
Description copied from interface: `ProtocolHandler`
Add a new SSL configuration for a virtual host.

Parameters:
  `sslHostConfig` - the configuration
  `replace` - If `true` replacement of an existing configuration is permitted, otherwise any such attempted replacement will trigger an exception

### 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)

### getKeystorePassFile

public String getKeystorePassFile()

### setKeystorePassFile

public void setKeystorePassFile(String certificateKeystorePasswordFile)

### getKeyPass

public String getKeyPass()

### setKeyPass

public void setKeyPass(String certificateKeyPassword)

### getKeyPassFile

public String getKeyPassFile()

### setKeyPassFile

public void setKeyPassFile(String certificateKeyPasswordFile)

### getSSLPassword

public String getSSLPassword()

### setSSLPassword

public void setSSLPassword(String certificateKeyPassword)

### getSSLPasswordFile

public String getSSLPasswordFile()

### setSSLPasswordFile

public void setSSLPasswordFile(String certificateKeyPasswordFile)

### 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>`