Class HttpServerFilter

    • Field Detail

      • HTTP_SERVER_REQUEST_ATTR_NAME

        public static final java.lang.String HTTP_SERVER_REQUEST_ATTR_NAME
      • RESPONSE_COMPLETE_EVENT

        public static final FilterChainEvent RESPONSE_COMPLETE_EVENT
    • Constructor Detail

      • HttpServerFilter

        @Deprecated
        public HttpServerFilter()
        Deprecated.
        Next major release will include builders for filters requiring configuration. Constructors will be hidden.
        Constructor, which creates HttpServerFilter instance
      • HttpServerFilter

        @Deprecated
        public HttpServerFilter​(boolean chunkingEnabled,
                                int maxHeadersSize,
                                KeepAlive keepAlive,
                                DelayedExecutor executor)
        Deprecated.
        Next major release will include builders for filters requiring configuration. Constructors will be hidden.
        Constructor, which creates HttpServerFilter instance, with the specific max header size parameter.
        Parameters:
        chunkingEnabled - flag indicating whether or not chunking should be allowed or not.
        maxHeadersSize - the maximum size of an inbound HTTP message header.
        keepAlive - keep-alive configuration for this filter instance.
        executor - DelayedExecutor for handling keep-alive.
      • HttpServerFilter

        @Deprecated
        public HttpServerFilter​(boolean chunkingEnabled,
                                int maxHeadersSize,
                                java.lang.String defaultResponseContentType,
                                KeepAlive keepAlive,
                                DelayedExecutor executor)
        Deprecated.
        Next major release will include builders for filters requiring configuration. Constructors will be hidden.
        Constructor, which creates HttpServerFilter instance, with the specific max header size parameter.
        Parameters:
        chunkingEnabled - flag indicating whether or not chunking should be allowed or not.
        maxHeadersSize - the maximum size of an inbound HTTP message header.
        defaultResponseContentType - the content type that the response should use if no content had been specified at the time the response is committed.
        keepAlive - keep-alive configuration for this filter instance.
        executor - DelayedExecutor for handling keep-alive. If null - keep-alive idle connections should be managed outside HttpServerFilter.
      • HttpServerFilter

        @Deprecated
        public HttpServerFilter​(boolean chunkingEnabled,
                                int maxHeadersSize,
                                java.lang.String defaultResponseContentType,
                                KeepAlive keepAlive,
                                DelayedExecutor executor,
                                int maxRequestHeaders,
                                int maxResponseHeaders)
        Deprecated.
        Next major release will include builders for filters requiring configuration. Constructors will be hidden.
        Constructor, which creates HttpServerFilter instance, with the specific max header size parameter.
        Parameters:
        chunkingEnabled - flag indicating whether or not chunking should be allowed or not.
        maxHeadersSize - the maximum size of an inbound HTTP message header.
        defaultResponseContentType - the content type that the response should use if no content had been specified at the time the response is committed.
        keepAlive - keep-alive configuration for this filter instance.
        executor - DelayedExecutor for handling keep-alive. If null - keep-alive idle connections should be managed outside HttpServerFilter.
        maxRequestHeaders - maximum number of request headers allowed for a single request.
        maxResponseHeaders - maximum number of response headers allowed for a single response.
        Since:
        2.2.11
    • Method Detail

      • getDefaultResponseContentType

        public java.lang.String getDefaultResponseContentType()
      • setDefaultResponseContentType

        public final void setDefaultResponseContentType​(java.lang.String contentType)
      • isAllowPayloadForUndefinedHttpMethods

        public boolean isAllowPayloadForUndefinedHttpMethods()
        The flag, which enables/disables payload support for HTTP methods, for which HTTP spec doesn't clearly state whether they support payload. Known "undefined" methods are: GET, HEAD, DELETE.
        Returns:
        true if "undefined" methods support payload, or false otherwise
        Since:
        2.3.12
      • setAllowPayloadForUndefinedHttpMethods

        public void setAllowPayloadForUndefinedHttpMethods​(boolean allowPayloadForUndefinedHttpMethods)
        The flag, which enables/disables payload support for HTTP methods, for which HTTP spec doesn't clearly state whether they support payload. Known "undefined" methods are: GET, HEAD, DELETE.
        Parameters:
        allowPayloadForUndefinedHttpMethods - true if "undefined" methods support payload, or false otherwise
        Since:
        2.3.12
      • handleRead

        public NextAction handleRead​(FilterChainContext ctx)
                              throws java.io.IOException
        The method is called, once we have received a Buffer, which has to be transformed into HTTP request packet part. Filter gets Buffer, which represents a part or complete HTTP request message. As the result of "read" transformation - we will get HttpContent message, which will represent HTTP request packet content (might be zero length content) and reference to a HttpHeader, which contains HTTP request message header.
        Specified by:
        handleRead in interface Filter
        Overrides:
        handleRead in class BaseFilter
        Parameters:
        ctx - Request processing context
        Returns:
        NextAction
        Throws:
        java.io.IOException
      • onHttpHeaderParsed

        protected boolean onHttpHeaderParsed​(HttpHeader httpHeader,
                                             Buffer buffer,
                                             FilterChainContext ctx)
        Description copied from class: HttpCodecFilter
        Callback invoked when the HTTP message header parsing is complete.
        Specified by:
        onHttpHeaderParsed in class HttpCodecFilter
        Parameters:
        httpHeader - HttpHeader, which represents parsed HTTP packet header
        buffer - Buffer the header was parsed from
        ctx - processing context.
        Returns:
        true if an error has occurred while processing the header portion of the HTTP request, otherwise returns false.
      • onHttpPacketParsed

        protected final boolean onHttpPacketParsed​(HttpHeader httpHeader,
                                                   FilterChainContext ctx)
        Description copied from class: HttpCodecFilter
        Callback method, called when HttpPacket parsing has been completed.
        Specified by:
        onHttpPacketParsed in class HttpCodecFilter
        Parameters:
        httpHeader - HttpHeader, which represents parsed HTTP packet header
        ctx - processing context.
        Returns:
        true if an error has occurred while processing the header portion of the HTTP request, otherwise returns false.s
      • onHttpHeadersParsed

        protected void onHttpHeadersParsed​(HttpHeader httpHeader,
                                           MimeHeaders headers,
                                           FilterChainContext ctx)
        Description copied from class: HttpCodecFilter

        Invoked when HTTP headers portion comes for HttpHeader message. Depending on the transfer encoding being used by the current request, this method may be invoked multiple times.

        Specified by:
        onHttpHeadersParsed in class HttpCodecFilter
        Parameters:
        httpHeader - HttpHeader, which represents HTTP packet header
        headers - the headers portion, that has been parsed
        ctx - processing context.
      • onHttpHeaderError

        protected void onHttpHeaderError​(HttpHeader httpHeader,
                                         FilterChainContext ctx,
                                         java.lang.Throwable t)
                                  throws java.io.IOException
        Description copied from class: HttpCodecFilter

        Callback which is invoked when parsing an HTTP message header fails. The processing logic has to take care about error handling and following connection closing.

        Specified by:
        onHttpHeaderError in class HttpCodecFilter
        Parameters:
        httpHeader - HttpHeader, which represents HTTP packet header
        ctx - the FilterChainContext processing this request
        t - the cause of the error
        Throws:
        java.io.IOException
      • onHttpContentError

        protected void onHttpContentError​(HttpHeader httpHeader,
                                          FilterChainContext ctx,
                                          java.lang.Throwable t)
                                   throws java.io.IOException
        Description copied from class: HttpCodecFilter

        Callback which is invoked when parsing an HTTP message payload fails. The processing logic has to take care about error handling and following connection closing.

        Specified by:
        onHttpContentError in class HttpCodecFilter
        Parameters:
        httpHeader - HttpHeader, which represents HTTP packet header
        ctx - the FilterChainContext processing this request
        t - the cause of the error
        Throws:
        java.io.IOException