Apache Tomcat 6.0.53

## org.apache.coyote.http11
Class Http11AprProcessor

    java.lang.Object
      org.apache.coyote.http11.Http11AprProcessor

All Implemented Interfaces:
  ActionHook

    public class Http11AprProcessor

extends java.lang.Object
implements ActionHook

Processes HTTP requests.

Author:
  Remy Maucherat

Field Summary
`protected Adapter` | `adapter` Associated adapter.
`protected java.lang.String` | `clientCertProvider` When client certificate information is presented in a form other than instances of `X509Certificate` it needs to be converted before it can be used and this property controls which JSSE provider is used to perform the conversion.
`protected boolean` | `comet` Comet used.
`protected java.lang.String[]` | `compressableMimeTypes` List of MIMES which could be gzipped
`protected int` | `compressionLevel` Allowed compression level.
`protected int` | `compressionMinSize` Minimum contentsize to make compression.
`protected boolean` | `contentDelimitation` Content delimitator for the request (if false, the connection will be closed at the end of the request).
`protected boolean` | `disableUploadTimeout` Flag to disable setting a different time-out on uploads.
`protected AprEndpoint` | `endpoint` Associated endpoint.
`protected boolean` | `error` Error flag.
`protected boolean` | `expectation` Is there an expectation ?
`protected char[]` | `hostNameC` Host name (used to avoid useless B2C conversion on the host name).
`protected boolean` | `http09` HTTP/0.9 flag.
`protected boolean` | `http11` HTTP/1.1 flag.
`protected InternalAprInputBuffer` | `inputBuffer` Input.
`protected boolean` | `keepAlive` Keep-alive.
`protected java.lang.String` | `localAddr` The local Host address.
`protected java.lang.String` | `localName` Local Host associated with the current connection.
`protected int` | `localPort` Local port to which the socket is connected
`protected static Log` | `log` Logger.
`protected int` | `maxKeepAliveRequests` Maximum number of Keep-Alive requests to honor.
`protected int` | `maxSavePostSize` Max save post size.
`protected java.util.regex.Pattern[]` | `noCompressionUserAgents` List of user agents to not use gzip with
`protected InternalAprOutputBuffer` | `outputBuffer` Output.
`protected java.lang.String` | `remoteAddr` Remote Address associated with the current connection.
`protected java.lang.String` | `remoteHost` Remote Host associated with the current connection.
`protected int` | `remotePort` Remote port to which the socket is connected
`protected Request` | `request` Request object.
`protected Response` | `response` Response object.
`protected java.util.regex.Pattern[]` | `restrictedUserAgents` List of restricted user agents.
`protected AprEndpoint.SendfileData` | `sendfileData` Sendfile data.
`protected java.lang.String` | `server` Allow a customized the server header for the tin-foil hat folks.
`protected static StringManager` | `sm` The string manager for this package.
`protected long` | `socket` Socket associated with the current connection.
`protected int` | `socketBuffer` Socket buffering.
`protected boolean` | `ssl` SSL enabled ?
`protected int` | `timeout` Maximum timeout on uploads. 5 minutes as in Apache HTTPD server.

Constructor Summary
`Http11AprProcessor(int headerBufferSize, AprEndpoint endpoint)`

Method Summary
`void` | `action(ActionCode actionCode, java.lang.Object param)` Send an action to the connector.
`void` | `addCompressableMimeType(java.lang.String mimeType)` Add a mime-type which will be compressable The mime-type String will be exactly matched in the response mime-type header .
`protected void` | `addFilter(java.lang.String className)` Add input or output filter.
`protected boolean` | `addInputFilter(InputFilter[] inputFilters, java.lang.String encodingName)` Add an input filter to the current request.
`void` | `addNoCompressionUserAgent(java.lang.String userAgent)` Add user-agent for which gzip compression didn't works The user agent String given will be exactly matched to the user-agent header submitted by the client.
`void` | `addRestrictedUserAgent(java.lang.String userAgent)` Add restricted user-agent (which will downgrade the connector to HTTP/1.0 mode).
`void` | `endRequest()`
`AprEndpoint.Handler.SocketState` | `event(SocketStatus status)` Process pipelined HTTP requests using the specified input and output streams.
`protected int` | `findBytes(ByteChunk bc, byte[] b)` Specialized utility method: find a sequence of lower case bytes inside a ByteChunk.
`java.lang.String[]` | `findCompressableMimeTypes()` Return the list of restricted user agents.
`java.lang.String[]` | `findRestrictedUserAgents()` Return the list of restricted user agents.
`Adapter` | `getAdapter()` Get the associated adapter.
`java.lang.String` | `getClientCertProvider()`
`java.lang.String` | `getCompression()` Return compression level.
`boolean` | `getDisableUploadTimeout()` Get the flag that controls upload time-outs.
`int` | `getMaxCookieCount()`
`int` | `getMaxKeepAliveRequests()` Return the number of Keep-Alive requests that we will honor.
`int` | `getMaxSavePostSize()` Return the maximum size of a POST which will be buffered in SSL mode.
`Request` | `getRequest()` Get the request associated with this processor.
`java.lang.String` | `getServer()` Get the server header name.
`int` | `getSocketBuffer()` Get the socket buffer flag.
`int` | `getTimeout()` Get the upload timeout.
`protected void` | `initializeFilters()` Initialize standard input and output filters.
`void` | `parseHost(MessageBytes valueMB)` Parse host.
`protected void` | `prepareRequest()` After reading the request headers, we have to setup the request filters.
`protected void` | `prepareResponse()` When committing the response, we have to validate the set of headers, as well as setup the response filters.
`AprEndpoint.Handler.SocketState` | `process(long socket)` Process pipelined HTTP requests using the specified input and output streams.
`void` | `recycle()`
`void` | `setAdapter(Adapter adapter)` Set the associated adapter.
`void` | `setClientCertProvider(java.lang.String s)`
`void` | `setCompressableMimeTypes(java.lang.String compressableMimeTypes)` Set compressable mime-type list List contains users agents separated by ',' : ie: "text/html,text/xml,text/plain"
`void` | `setCompressableMimeTypes(java.lang.String[] compressableMimeTypes)` Set compressable mime-type list (this method is best when used with a large number of connectors, where it would be better to have all of them referenced a single array).
`void` | `setCompression(java.lang.String compression)` Set compression level.
`void` | `setCompressionMinSize(int compressionMinSize)` Set Minimum size to trigger compression.
`void` | `setDisableUploadTimeout(boolean isDisabled)` Set the flag to control upload time-outs.
`void` | `setMaxCookieCount(int maxCookieCount)`
`void` | `setMaxKeepAliveRequests(int mkar)` Set the maximum number of Keep-Alive requests to honor.
`void` | `setMaxSavePostSize(int msps)` Set the maximum size of a POST which will be buffered in SSL mode.
`void` | `setNoCompressionUserAgents(java.util.regex.Pattern[] noCompressionUserAgents)` Set no compression user agent list (this method is best when used with a large number of connectors, where it would be better to have all of them referenced a single array).
`void` | `setNoCompressionUserAgents(java.lang.String noCompressionUserAgents)` Set no compression user agent list.
`void` | `setRestrictedUserAgents(java.util.regex.Pattern[] restrictedUserAgents)` Set restricted user agent list (this method is best when used with a large number of connectors, where it would be better to have all of them referenced a single array).
`void` | `setRestrictedUserAgents(java.lang.String restrictedUserAgents)` Set restricted user agent list (which will downgrade the connector to HTTP/1.0 mode).
`void` | `setServer(java.lang.String server)` Set the server header name.
`void` | `setSocketBuffer(int socketBuffer)` Set the socket buffer flag.
`void` | `setTimeout(int timeouts)` Set the upload timeout.
`protected boolean` | `statusDropsConnection(int status)` Determine if we must drop the connection because of the HTTP status code.

Methods inherited from class java.lang.Object
`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

Field Detail

### log

    protected static Log log

  Logger.

### sm

    protected static StringManager sm

  The string manager for this package.

### adapter

    protected Adapter adapter

  Associated adapter.

### request

    protected Request request

  Request object.

### response

    protected Response response

  Response object.

### inputBuffer

    protected InternalAprInputBuffer inputBuffer

  Input.

### outputBuffer

    protected InternalAprOutputBuffer outputBuffer

  Output.

### error

    protected boolean error

  Error flag.

### keepAlive

    protected boolean keepAlive

  Keep-alive.

### http11

    protected boolean http11

  HTTP/1.1 flag.

### http09

    protected boolean http09

  HTTP/0.9 flag.

### sendfileData

    protected AprEndpoint.SendfileData sendfileData

  Sendfile data.

### comet

    protected boolean comet

  Comet used.

### contentDelimitation

    protected boolean contentDelimitation

  Content delimitator for the request (if false, the connection will be closed at the end of the request).

### expectation

    protected boolean expectation

  Is there an expectation ?

### restrictedUserAgents

    protected java.util.regex.Pattern[] restrictedUserAgents

  List of restricted user agents.

### maxKeepAliveRequests

    protected int maxKeepAliveRequests

  Maximum number of Keep-Alive requests to honor.

### ssl

    protected boolean ssl

  SSL enabled ?

### socket

    protected long socket

  Socket associated with the current connection.

### remoteAddr

    protected java.lang.String remoteAddr

  Remote Address associated with the current connection.

### remoteHost

    protected java.lang.String remoteHost

  Remote Host associated with the current connection.

### localName

    protected java.lang.String localName

  Local Host associated with the current connection.

### localPort

    protected int localPort

  Local port to which the socket is connected

### remotePort

    protected int remotePort

  Remote port to which the socket is connected

### localAddr

    protected java.lang.String localAddr

  The local Host address.

### timeout

    protected int timeout

  Maximum timeout on uploads. 5 minutes as in Apache HTTPD server.

### disableUploadTimeout

    protected boolean disableUploadTimeout

  Flag to disable setting a different time-out on uploads.

### compressionLevel

    protected int compressionLevel

  Allowed compression level.

### compressionMinSize

    protected int compressionMinSize

  Minimum contentsize to make compression.

### socketBuffer

    protected int socketBuffer

  Socket buffering.

### maxSavePostSize

    protected int maxSavePostSize

  Max save post size.

### noCompressionUserAgents

    protected java.util.regex.Pattern[] noCompressionUserAgents

  List of user agents to not use gzip with

### compressableMimeTypes

    protected java.lang.String[] compressableMimeTypes

  List of MIMES which could be gzipped

### hostNameC

    protected char[] hostNameC

  Host name (used to avoid useless B2C conversion on the host name).

### endpoint

    protected AprEndpoint endpoint

  Associated endpoint.

### server

    protected java.lang.String server

  Allow a customized the server header for the tin-foil hat folks.

### clientCertProvider

    protected java.lang.String clientCertProvider

  When client certificate information is presented in a form other than instances of `X509Certificate` it needs to be converted before it can be used and this property controls which JSSE provider is used to perform the conversion. For example it is used with the AJP connectors, the HTTP APR connector and with the `SSLValve`. If not specified, the default provider will be used.

Constructor Detail

### Http11AprProcessor

    public Http11AprProcessor(int headerBufferSize,
                              AprEndpoint endpoint)

Method Detail

### getClientCertProvider

    public java.lang.String getClientCertProvider()

### setClientCertProvider

    public void setClientCertProvider(java.lang.String s)

### getCompression

    public java.lang.String getCompression()

  Return compression level.

### setCompression

    public void setCompression(java.lang.String compression)

  Set compression level.

### setCompressionMinSize

    public void setCompressionMinSize(int compressionMinSize)

  Set Minimum size to trigger compression.

### addNoCompressionUserAgent

    public void addNoCompressionUserAgent(java.lang.String userAgent)

  Add user-agent for which gzip compression didn't works The user agent String given will be exactly matched to the user-agent header submitted by the client.

  Parameters:
    `userAgent` - user-agent string

### setNoCompressionUserAgents

    public void setNoCompressionUserAgents(java.util.regex.Pattern[] noCompressionUserAgents)

  Set no compression user agent list (this method is best when used with a large number of connectors, where it would be better to have all of them referenced a single array).

### setNoCompressionUserAgents

    public void setNoCompressionUserAgents(java.lang.String noCompressionUserAgents)

  Set no compression user agent list. List contains users agents separated by ',' : ie: "gorilla,desesplorer,tigrus"

### addCompressableMimeType

    public void addCompressableMimeType(java.lang.String mimeType)

  Add a mime-type which will be compressable The mime-type String will be exactly matched in the response mime-type header .

  Parameters:
    `mimeType` - mime-type string

### setCompressableMimeTypes

    public void setCompressableMimeTypes(java.lang.String[] compressableMimeTypes)

  Set compressable mime-type list (this method is best when used with a large number of connectors, where it would be better to have all of them referenced a single array).

### setCompressableMimeTypes

    public void setCompressableMimeTypes(java.lang.String compressableMimeTypes)

  Set compressable mime-type list List contains users agents separated by ',' : ie: "text/html,text/xml,text/plain"

### findCompressableMimeTypes

    public java.lang.String[] findCompressableMimeTypes()

  Return the list of restricted user agents.

### getMaxCookieCount

    public int getMaxCookieCount()

### setMaxCookieCount

    public void setMaxCookieCount(int maxCookieCount)

### addFilter

    protected void addFilter(java.lang.String className)

  Add input or output filter.

  Parameters:
    `className` - class name of the filter

### addRestrictedUserAgent

    public void addRestrictedUserAgent(java.lang.String userAgent)

  Add restricted user-agent (which will downgrade the connector to HTTP/1.0 mode). The user agent String given will be matched via regexp to the user-agent header submitted by the client.

  Parameters:
    `userAgent` - user-agent string

### setRestrictedUserAgents

    public void setRestrictedUserAgents(java.util.regex.Pattern[] restrictedUserAgents)

  Set restricted user agent list (this method is best when used with a large number of connectors, where it would be better to have all of them referenced a single array).

### setRestrictedUserAgents

    public void setRestrictedUserAgents(java.lang.String restrictedUserAgents)

  Set restricted user agent list (which will downgrade the connector to HTTP/1.0 mode). List contains users agents separated by ',' : ie: "gorilla,desesplorer,tigrus"

### findRestrictedUserAgents

    public java.lang.String[] findRestrictedUserAgents()

  Return the list of restricted user agents.

### setMaxKeepAliveRequests

    public void setMaxKeepAliveRequests(int mkar)

  Set the maximum number of Keep-Alive requests to honor. This is to safeguard from DoS attacks. Setting to a negative value disables the check.

### getMaxKeepAliveRequests

    public int getMaxKeepAliveRequests()

  Return the number of Keep-Alive requests that we will honor.

### setMaxSavePostSize

    public void setMaxSavePostSize(int msps)

  Set the maximum size of a POST which will be buffered in SSL mode.

### getMaxSavePostSize

    public int getMaxSavePostSize()

  Return the maximum size of a POST which will be buffered in SSL mode.

### setDisableUploadTimeout

    public void setDisableUploadTimeout(boolean isDisabled)

  Set the flag to control upload time-outs.

### getDisableUploadTimeout

    public boolean getDisableUploadTimeout()

  Get the flag that controls upload time-outs.

### setSocketBuffer

    public void setSocketBuffer(int socketBuffer)

  Set the socket buffer flag.

### getSocketBuffer

    public int getSocketBuffer()

  Get the socket buffer flag.

### setTimeout

    public void setTimeout(int timeouts)

  Set the upload timeout.

### getTimeout

    public int getTimeout()

  Get the upload timeout.

### setServer

    public void setServer(java.lang.String server)

  Set the server header name.

### getServer

    public java.lang.String getServer()

  Get the server header name.

### getRequest

    public Request getRequest()

  Get the request associated with this processor.

  Returns:
    The request

### event

    public AprEndpoint.Handler.SocketState event(SocketStatus status)
                                          throws java.io.IOException

  Process pipelined HTTP requests using the specified input and output streams.

  Throws:
    `java.io.IOException` - error during an I/O operation

### process

    public AprEndpoint.Handler.SocketState process(long socket)
                                            throws java.io.IOException

  Process pipelined HTTP requests using the specified input and output streams.

  Throws:
    `java.io.IOException` - error during an I/O operation

### endRequest

    public void endRequest()

### recycle

    public void recycle()

### action

    public void action(ActionCode actionCode,
                       java.lang.Object param)

  Send an action to the connector.

  Specified by:
    `action` in interface `ActionHook`
  Parameters:
    `actionCode` - Type of the action
    `param` - Action parameter

### setAdapter

    public void setAdapter(Adapter adapter)

  Set the associated adapter.

  Parameters:
    `adapter` - the new adapter

### getAdapter

    public Adapter getAdapter()

  Get the associated adapter.

  Returns:
    the associated adapter

### prepareRequest

    protected void prepareRequest()

  After reading the request headers, we have to setup the request filters.

### parseHost

    public void parseHost(MessageBytes valueMB)

  Parse host.

### prepareResponse

    protected void prepareResponse()

  When committing the response, we have to validate the set of headers, as well as setup the response filters.

### initializeFilters

    protected void initializeFilters()

  Initialize standard input and output filters.

### addInputFilter

    protected boolean addInputFilter(InputFilter[] inputFilters,
                                     java.lang.String encodingName)

  Add an input filter to the current request.

  Returns:
    false if the encoding was not found (which would mean it is unsupported)

### findBytes

    protected int findBytes(ByteChunk bc,
                            byte[] b)

  Specialized utility method: find a sequence of lower case bytes inside a ByteChunk.

### statusDropsConnection

    protected boolean statusDropsConnection(int status)

  Determine if we must drop the connection because of the HTTP status code. Use the same list of codes as Apache/httpd.

Apache Tomcat 6.0.53

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