Apache Tomcat 6.0.51

## org.apache.coyote.ajp
Class AjpProcessor

    java.lang.Object
      org.apache.coyote.ajp.AjpProcessor

All Implemented Interfaces:
  ActionHook

    public class AjpProcessor

extends java.lang.Object
implements ActionHook

Processes HTTP requests.

Author:
  Remy Maucherat, Henri Gomez, Dan Milstein, Keith Wannamaker, Kevin Seguin, Costin Manolache, Bill Barker

Nested Class Summary
`protected class` | `AjpProcessor.SocketInputBuffer` This class is an input buffer which will read its data from an input stream.
`protected class` | `AjpProcessor.SocketOutputBuffer` This class is an output buffer which will write data to an output stream.

Field Summary
`protected Adapter` | `adapter` Associated adapter.
`protected MessageBytes` | `bodyBytes` Body message.
`protected AjpMessage` | `bodyMessage` Body message.
`protected MessageBytes` | `certificates` Byte chunk for certs.
`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` | `empty` Body empty flag.
`protected static byte[]` | `endMessageArray` End message array.
`protected boolean` | `endOfStream` End of stream flag.
`protected JIoEndpoint` | `endpoint` Associated endpoint.
`protected boolean` | `error` Error flag.
`protected boolean` | `finished` Finished response.
`protected boolean` | `first` First read.
`protected static byte[]` | `flushMessageArray` Flush message array.
`protected byte[]` | `getBodyMessageArray` Direct buffer used for sending right away a get body message.
`protected char[]` | `hostNameC` Host name (used to avoid useless B2C conversion on the host name).
`protected java.io.InputStream` | `input` Input stream.
`protected int` | `keepAliveTimeout` The number of milliseconds Tomcat will wait for a subsequent request before closing the connection.
`protected static Log` | `log` Logger.
`protected java.io.OutputStream` | `output` Output stream.
`protected int` | `packetSize` The socket timeout used when reading the first block of the request header.
`protected static byte[]` | `pongMessageArray` Direct buffer used for sending right away a pong message.
`protected long` | `readTimeout` The socket timeout used when reading the first block of the request header.
`protected boolean` | `replay` Replay read.
`protected Request` | `request` Request object.
`protected AjpMessage` | `requestHeaderMessage` Header message.
`protected java.lang.String` | `requiredSecret` Required secret.
`protected Response` | `response` Response object.
`protected AjpMessage` | `responseHeaderMessage` Message used for response header composition.
`protected static StringManager` | `sm` The string manager for this package.
`protected java.net.Socket` | `socket` Socket associated with the current connection.
`protected boolean` | `started` State flag.
`protected MessageBytes` | `tmpMB` Temp message bytes used for processing.
`protected boolean` | `tomcatAuthentication` Use Tomcat authentication ?

Constructor Summary
`AjpProcessor(int packetSize, JIoEndpoint endpoint)`

Method Summary
`void` | `action(ActionCode actionCode, java.lang.Object param)` Send an action to the connector.
`protected void` | `finish()` Finish AJP response.
`protected void` | `flush()` Callback to write data from the buffer.
`Adapter` | `getAdapter()` Get the associated adapter.
`java.lang.String` | `getClientCertProvider()`
`int` | `getKeepAliveTimeout()`
`int` | `getMaxCookieCount()`
`Request` | `getRequest()` Get the request associated with this processor.
`boolean` | `getTomcatAuthentication()`
`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.
`void` | `process(java.net.Socket socket)` Process pipelined HTTP requests using the specified input and output streams.
`protected boolean` | `read(byte[] buf, int pos, int n)` Read at least the specified amount of bytes, and place them in the input buffer.
`protected boolean` | `readMessage(AjpMessage message)` Read an AJP message.
`boolean` | `receive()` Receive a chunk of data.
`void` | `recycle()` Recycle the processor.
`void` | `setAdapter(Adapter adapter)` Set the associated adapter.
`void` | `setClientCertProvider(java.lang.String s)`
`void` | `setKeepAliveTimeout(int timeout)`
`void` | `setMaxCookieCount(int maxCookieCount)`
`void` | `setRequiredSecret(java.lang.String requiredSecret)`
`void` | `setTomcatAuthentication(boolean tomcatAuthentication)`

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.

### packetSize

    protected int packetSize

  The socket timeout used when reading the first block of the request header.

### requestHeaderMessage

    protected AjpMessage requestHeaderMessage

  Header message. Note that this header is merely the one used during the processing of the first message of a "request", so it might not be a request header. It will stay unchanged during the processing of the whole request.

### responseHeaderMessage

    protected AjpMessage responseHeaderMessage

  Message used for response header composition.

### bodyMessage

    protected AjpMessage bodyMessage

  Body message.

### bodyBytes

    protected MessageBytes bodyBytes

  Body message.

### started

    protected boolean started

  State flag.

### error

    protected boolean error

  Error flag.

### socket

    protected java.net.Socket socket

  Socket associated with the current connection.

### input

    protected java.io.InputStream input

  Input stream.

### output

    protected java.io.OutputStream output

  Output stream.

### hostNameC

    protected char[] hostNameC

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

### endpoint

    protected JIoEndpoint endpoint

  Associated endpoint.

### readTimeout

    protected long readTimeout

  The socket timeout used when reading the first block of the request header.

### tmpMB

    protected MessageBytes tmpMB

  Temp message bytes used for processing.

### certificates

    protected MessageBytes certificates

  Byte chunk for certs.

### endOfStream

    protected boolean endOfStream

  End of stream flag.

### empty

    protected boolean empty

  Body empty flag.

### first

    protected boolean first

  First read.

### replay

    protected boolean replay

  Replay read.

### finished

    protected boolean finished

  Finished response.

### getBodyMessageArray

    protected final byte[] getBodyMessageArray

  Direct buffer used for sending right away a get body message.

### pongMessageArray

    protected static final byte[] pongMessageArray

  Direct buffer used for sending right away a pong message.

### endMessageArray

    protected static final byte[] endMessageArray

  End message array.

### flushMessageArray

    protected static final byte[] flushMessageArray

  Flush message array.

### tomcatAuthentication

    protected boolean tomcatAuthentication

  Use Tomcat authentication ?

### requiredSecret

    protected java.lang.String requiredSecret

  Required secret.

### keepAliveTimeout

    protected int keepAliveTimeout

  The number of milliseconds Tomcat will wait for a subsequent request before closing the connection. The default is the same as for Apache HTTP Server (15 000 milliseconds).

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

### AjpProcessor

    public AjpProcessor(int packetSize,
                        JIoEndpoint endpoint)

Method Detail

### getTomcatAuthentication

    public boolean getTomcatAuthentication()

### setTomcatAuthentication

    public void setTomcatAuthentication(boolean tomcatAuthentication)

### setRequiredSecret

    public void setRequiredSecret(java.lang.String requiredSecret)

### getKeepAliveTimeout

    public int getKeepAliveTimeout()

### setKeepAliveTimeout

    public void setKeepAliveTimeout(int timeout)

### getClientCertProvider

    public java.lang.String getClientCertProvider()

### setClientCertProvider

    public void setClientCertProvider(java.lang.String s)

### getMaxCookieCount

    public int getMaxCookieCount()

### setMaxCookieCount

    public void setMaxCookieCount(int maxCookieCount)

### getRequest

    public Request getRequest()

  Get the request associated with this processor.

  Returns:
    The request

### process

    public void process(java.net.Socket 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

### 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()
                            throws java.io.IOException

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

  Throws:
    `java.io.IOException`

### finish

    protected void finish()
                   throws java.io.IOException

  Finish AJP response.

  Throws:
    `java.io.IOException`

### read

    protected boolean read(byte[] buf,
                           int pos,
                           int n)
                    throws java.io.IOException

  Read at least the specified amount of bytes, and place them in the input buffer.

  Throws:
    `java.io.IOException`

### receive

    public boolean receive()
                    throws java.io.IOException

  Receive a chunk of data. Called to implement the 'special' packet in ajp13 and to receive the data after we send a GET_BODY packet

  Throws:
    `java.io.IOException`

### readMessage

    protected boolean readMessage(AjpMessage message)
                           throws java.io.IOException

  Read an AJP message.

  Returns:
    true if the message has been read, false if the short read didn't return anything
  Throws:
    `java.io.IOException` - any other failure, including incomplete reads

### recycle

    public void recycle()

  Recycle the processor.

### flush

    protected void flush()
                  throws java.io.IOException

  Callback to write data from the buffer.

  Throws:
    `java.io.IOException`

Apache Tomcat 6.0.51

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