Class AbstractHttp11Protocol<S>

    • Constructor Detail

      • AbstractHttp11Protocol

        public AbstractHttp11Protocol​(AbstractEndpoint<S,​?> endpoint)
    • Method Detail

      • init

        public void init()
                  throws java.lang.Exception
        Description copied from interface: ProtocolHandler
        Initialise the protocol.
        Specified by:
        init in interface ProtocolHandler
        Overrides:
        init in class AbstractProtocol<S>
        Throws:
        java.lang.Exception - If the protocol handler fails to initialise
      • destroy

        public void destroy()
                     throws java.lang.Exception
        Description copied from interface: ProtocolHandler
        Destroy the protocol (optional).
        Specified by:
        destroy in interface ProtocolHandler
        Overrides:
        destroy in class AbstractProtocol<S>
        Throws:
        java.lang.Exception - If the protocol handler fails to destroy
      • getProtocolName

        protected java.lang.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
      • getContinueResponseTiming

        public java.lang.String getContinueResponseTiming()
      • setContinueResponseTiming

        public void setContinueResponseTiming​(java.lang.String continueResponseTiming)
      • getUseKeepAliveResponseHeader

        public boolean getUseKeepAliveResponseHeader()
      • setUseKeepAliveResponseHeader

        public void setUseKeepAliveResponseHeader​(boolean useKeepAliveResponseHeader)
      • getRelaxedPathChars

        public java.lang.String getRelaxedPathChars()
      • setRelaxedPathChars

        public void setRelaxedPathChars​(java.lang.String relaxedPathChars)
      • getRelaxedQueryChars

        public java.lang.String getRelaxedQueryChars()
      • setRelaxedQueryChars

        public void setRelaxedQueryChars​(java.lang.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​(java.lang.String compression)
      • getCompression

        public java.lang.String getCompression()
      • getCompressionLevel

        protected int getCompressionLevel()
      • getNoCompressionUserAgents

        public java.lang.String getNoCompressionUserAgents()
      • getNoCompressionUserAgentsPattern

        protected java.util.regex.Pattern getNoCompressionUserAgentsPattern()
      • setNoCompressionUserAgents

        public void setNoCompressionUserAgents​(java.lang.String noCompressionUserAgents)
      • getCompressibleMimeType

        public java.lang.String getCompressibleMimeType()
      • setCompressibleMimeType

        public void setCompressibleMimeType​(java.lang.String valueS)
      • getCompressibleMimeTypes

        public java.lang.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 java.lang.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 java.util.regex.Pattern getRestrictedUserAgentsPattern()
      • setRestrictedUserAgents

        public void setRestrictedUserAgents​(java.lang.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 java.lang.String getServer()
      • setServer

        public void setServer​(java.lang.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​(java.lang.String commaSeparatedHeaders)
      • getAllowedTrailerHeadersInternal

        protected java.util.Set<java.lang.String> getAllowedTrailerHeadersInternal()
      • getAllowedTrailerHeaders

        public java.lang.String getAllowedTrailerHeaders()
      • addAllowedTrailerHeader

        public void addAllowedTrailerHeader​(java.lang.String header)
      • removeAllowedTrailerHeader

        public void removeAllowedTrailerHeader​(java.lang.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
      • getUpgradeProtocol

        public UpgradeProtocol getUpgradeProtocol​(java.lang.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​(java.lang.String upgradeProtocol)
      • getONameForUpgrade

        public javax.management.ObjectName getONameForUpgrade​(java.lang.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 java.lang.String getDefaultSSLHostConfigName()
      • setDefaultSSLHostConfigName

        public void setDefaultSSLHostConfigName​(java.lang.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​(java.lang.String hostName)
      • getSslEnabledProtocols

        @Deprecated
        public java.lang.String getSslEnabledProtocols()
        Deprecated.
      • setSslEnabledProtocols

        @Deprecated
        public void setSslEnabledProtocols​(java.lang.String enabledProtocols)
        Deprecated.
      • getSSLProtocol

        @Deprecated
        public java.lang.String getSSLProtocol()
        Deprecated.
      • setSSLProtocol

        @Deprecated
        public void setSSLProtocol​(java.lang.String sslProtocol)
        Deprecated.
      • getKeystoreFile

        @Deprecated
        public java.lang.String getKeystoreFile()
        Deprecated.
      • setKeystoreFile

        @Deprecated
        public void setKeystoreFile​(java.lang.String keystoreFile)
        Deprecated.
      • getSSLCertificateChainFile

        @Deprecated
        public java.lang.String getSSLCertificateChainFile()
        Deprecated.
      • setSSLCertificateChainFile

        @Deprecated
        public void setSSLCertificateChainFile​(java.lang.String certificateChainFile)
        Deprecated.
      • getSSLCertificateFile

        @Deprecated
        public java.lang.String getSSLCertificateFile()
        Deprecated.
      • setSSLCertificateFile

        @Deprecated
        public void setSSLCertificateFile​(java.lang.String certificateFile)
        Deprecated.
      • getSSLCertificateKeyFile

        @Deprecated
        public java.lang.String getSSLCertificateKeyFile()
        Deprecated.
      • setSSLCertificateKeyFile

        @Deprecated
        public void setSSLCertificateKeyFile​(java.lang.String certificateKeyFile)
        Deprecated.
      • getAlgorithm

        @Deprecated
        public java.lang.String getAlgorithm()
        Deprecated.
      • setAlgorithm

        @Deprecated
        public void setAlgorithm​(java.lang.String keyManagerAlgorithm)
        Deprecated.
      • getClientAuth

        @Deprecated
        public java.lang.String getClientAuth()
        Deprecated.
      • setClientAuth

        @Deprecated
        public void setClientAuth​(java.lang.String certificateVerification)
        Deprecated.
      • getSSLVerifyClient

        @Deprecated
        public java.lang.String getSSLVerifyClient()
        Deprecated.
      • setSSLVerifyClient

        @Deprecated
        public void setSSLVerifyClient​(java.lang.String certificateVerification)
        Deprecated.
      • getTrustMaxCertLength

        @Deprecated
        public int getTrustMaxCertLength()
        Deprecated.
      • setTrustMaxCertLength

        @Deprecated
        public void setTrustMaxCertLength​(int certificateVerificationDepth)
        Deprecated.
      • getSSLVerifyDepth

        @Deprecated
        public int getSSLVerifyDepth()
        Deprecated.
      • setSSLVerifyDepth

        @Deprecated
        public void setSSLVerifyDepth​(int certificateVerificationDepth)
        Deprecated.
      • getUseServerCipherSuitesOrder

        @Deprecated
        public boolean getUseServerCipherSuitesOrder()
        Deprecated.
      • setUseServerCipherSuitesOrder

        @Deprecated
        public void setUseServerCipherSuitesOrder​(boolean honorCipherOrder)
        Deprecated.
      • getSSLHonorCipherOrder

        @Deprecated
        public boolean getSSLHonorCipherOrder()
        Deprecated.
      • setSSLHonorCipherOrder

        @Deprecated
        public void setSSLHonorCipherOrder​(boolean honorCipherOrder)
        Deprecated.
      • getCiphers

        @Deprecated
        public java.lang.String getCiphers()
        Deprecated.
      • setCiphers

        @Deprecated
        public void setCiphers​(java.lang.String ciphers)
        Deprecated.
      • getSSLCipherSuite

        @Deprecated
        public java.lang.String getSSLCipherSuite()
        Deprecated.
      • setSSLCipherSuite

        @Deprecated
        public void setSSLCipherSuite​(java.lang.String ciphers)
        Deprecated.
      • getKeystorePass

        @Deprecated
        public java.lang.String getKeystorePass()
        Deprecated.
      • setKeystorePass

        @Deprecated
        public void setKeystorePass​(java.lang.String certificateKeystorePassword)
        Deprecated.
      • getKeystorePassFile

        @Deprecated
        public java.lang.String getKeystorePassFile()
        Deprecated.
      • setKeystorePassFile

        @Deprecated
        public void setKeystorePassFile​(java.lang.String certificateKeystorePasswordFile)
        Deprecated.
      • getKeyPass

        @Deprecated
        public java.lang.String getKeyPass()
        Deprecated.
      • setKeyPass

        @Deprecated
        public void setKeyPass​(java.lang.String certificateKeyPassword)
        Deprecated.
      • getKeyPassFile

        @Deprecated
        public java.lang.String getKeyPassFile()
        Deprecated.
      • setKeyPassFile

        @Deprecated
        public void setKeyPassFile​(java.lang.String certificateKeyPasswordFile)
        Deprecated.
      • getSSLPassword

        @Deprecated
        public java.lang.String getSSLPassword()
        Deprecated.
      • setSSLPassword

        @Deprecated
        public void setSSLPassword​(java.lang.String certificateKeyPassword)
        Deprecated.
      • getSSLPasswordFile

        @Deprecated
        public java.lang.String getSSLPasswordFile()
        Deprecated.
      • setSSLPasswordFile

        @Deprecated
        public void setSSLPasswordFile​(java.lang.String certificateKeyPasswordFile)
        Deprecated.
      • getCrlFile

        @Deprecated
        public java.lang.String getCrlFile()
        Deprecated.
      • setCrlFile

        @Deprecated
        public void setCrlFile​(java.lang.String certificateRevocationListFile)
        Deprecated.
      • getSSLCARevocationFile

        @Deprecated
        public java.lang.String getSSLCARevocationFile()
        Deprecated.
      • setSSLCARevocationFile

        @Deprecated
        public void setSSLCARevocationFile​(java.lang.String certificateRevocationListFile)
        Deprecated.
      • getSSLCARevocationPath

        @Deprecated
        public java.lang.String getSSLCARevocationPath()
        Deprecated.
      • setSSLCARevocationPath

        @Deprecated
        public void setSSLCARevocationPath​(java.lang.String certificateRevocationListPath)
        Deprecated.
      • getKeystoreType

        @Deprecated
        public java.lang.String getKeystoreType()
        Deprecated.
      • setKeystoreType

        @Deprecated
        public void setKeystoreType​(java.lang.String certificateKeystoreType)
        Deprecated.
      • getKeystoreProvider

        @Deprecated
        public java.lang.String getKeystoreProvider()
        Deprecated.
      • setKeystoreProvider

        @Deprecated
        public void setKeystoreProvider​(java.lang.String certificateKeystoreProvider)
        Deprecated.
      • getKeyAlias

        @Deprecated
        public java.lang.String getKeyAlias()
        Deprecated.
      • setKeyAlias

        @Deprecated
        public void setKeyAlias​(java.lang.String certificateKeyAlias)
        Deprecated.
      • getTruststoreAlgorithm

        @Deprecated
        public java.lang.String getTruststoreAlgorithm()
        Deprecated.
      • setTruststoreAlgorithm

        @Deprecated
        public void setTruststoreAlgorithm​(java.lang.String truststoreAlgorithm)
        Deprecated.
      • getTruststoreFile

        @Deprecated
        public java.lang.String getTruststoreFile()
        Deprecated.
      • setTruststoreFile

        @Deprecated
        public void setTruststoreFile​(java.lang.String truststoreFile)
        Deprecated.
      • getTruststorePass

        @Deprecated
        public java.lang.String getTruststorePass()
        Deprecated.
      • setTruststorePass

        @Deprecated
        public void setTruststorePass​(java.lang.String truststorePassword)
        Deprecated.
      • getTruststoreType

        @Deprecated
        public java.lang.String getTruststoreType()
        Deprecated.
      • setTruststoreType

        @Deprecated
        public void setTruststoreType​(java.lang.String truststoreType)
        Deprecated.
      • getTruststoreProvider

        @Deprecated
        public java.lang.String getTruststoreProvider()
        Deprecated.
      • setTruststoreProvider

        @Deprecated
        public void setTruststoreProvider​(java.lang.String truststoreProvider)
        Deprecated.
      • getSslProtocol

        @Deprecated
        public java.lang.String getSslProtocol()
        Deprecated.
      • setSslProtocol

        @Deprecated
        public void setSslProtocol​(java.lang.String sslProtocol)
        Deprecated.
      • getSessionCacheSize

        @Deprecated
        public int getSessionCacheSize()
        Deprecated.
      • setSessionCacheSize

        @Deprecated
        public void setSessionCacheSize​(int sessionCacheSize)
        Deprecated.
      • getSessionTimeout

        @Deprecated
        public int getSessionTimeout()
        Deprecated.
      • setSessionTimeout

        @Deprecated
        public void setSessionTimeout​(int sessionTimeout)
        Deprecated.
      • getSSLCACertificatePath

        @Deprecated
        public java.lang.String getSSLCACertificatePath()
        Deprecated.
      • setSSLCACertificatePath

        @Deprecated
        public void setSSLCACertificatePath​(java.lang.String caCertificatePath)
        Deprecated.
      • getSSLCACertificateFile

        @Deprecated
        public java.lang.String getSSLCACertificateFile()
        Deprecated.
      • setSSLCACertificateFile

        @Deprecated
        public void setSSLCACertificateFile​(java.lang.String caCertificateFile)
        Deprecated.
      • getSSLDisableCompression

        @Deprecated
        public boolean getSSLDisableCompression()
        Deprecated.
      • setSSLDisableCompression

        @Deprecated
        public void setSSLDisableCompression​(boolean disableCompression)
        Deprecated.
      • getSSLDisableSessionTickets

        @Deprecated
        public boolean getSSLDisableSessionTickets()
        Deprecated.
      • setSSLDisableSessionTickets

        @Deprecated
        public void setSSLDisableSessionTickets​(boolean disableSessionTickets)
        Deprecated.
      • getTrustManagerClassName

        @Deprecated
        public java.lang.String getTrustManagerClassName()
        Deprecated.
      • setTrustManagerClassName

        @Deprecated
        public void setTrustManagerClassName​(java.lang.String trustManagerClassName)
        Deprecated.
      • 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