Apache Tomcat 6.0.43

org.apache.catalina.connector
Class CoyoteAdapter

java.lang.Object
  extended by org.apache.catalina.connector.CoyoteAdapter
All Implemented Interfaces:
Adapter

public class CoyoteAdapter
extends java.lang.Object
implements Adapter

Implementation of a request processor which delegates the processing to a Coyote processor.

Author:
Craig R. McClanahan, Remy Maucherat

Field Summary
static int ADAPTER_NOTES
           
protected static boolean ALLOW_BACKSLASH
           
protected  StringManager sm
          The string manager for this package.
protected static URLEncoder urlEncoder
          Encoder for the Location URL in HTTP redirects.
 
Constructor Summary
CoyoteAdapter(Connector connector)
          Construct a new CoyoteProcessor associated with the specified connector.
 
Method Summary
static boolean checkNormalize(MessageBytes uriMB)
          Check that the URI is normalized following character decoding.
protected  void convertMB(MessageBytes mb)
          Character conversion of the a US-ASCII MessageBytes.
protected  void convertURI(MessageBytes uri, Request request)
          Character conversion of the URI.
protected static void copyBytes(byte[] b, int dest, int src, int len)
          Copy an array of bytes to a different position.
 boolean event(Request req, Response res, SocketStatus status)
          Event method.
 void log(Request req, Response res, long time)
           
static boolean normalize(MessageBytes uriMB)
          Normalize URI.
protected  void parsePathParameters(Request req, Request request)
          Extract the path parameters from the request.
protected  void parseSessionCookiesId(Request req, Request request)
          Parse session id in URL.
protected  void parseSessionId(Request req, Request request)
          Deprecated. Not used since 6.0.33
protected  boolean postParseRequest(Request req, Request request, Response res, Response response)
          Parse additional request parameters.
 void service(Request req, Response res)
          Service method.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

ADAPTER_NOTES

public static final int ADAPTER_NOTES
See Also:
Constant Field Values

ALLOW_BACKSLASH

protected static final boolean ALLOW_BACKSLASH

sm

protected StringManager sm
The string manager for this package.


urlEncoder

protected static URLEncoder urlEncoder
Encoder for the Location URL in HTTP redirects.

Constructor Detail

CoyoteAdapter

public CoyoteAdapter(Connector connector)
Construct a new CoyoteProcessor associated with the specified connector.

Parameters:
connector - CoyoteConnector that owns this processor
Method Detail

event

public boolean event(Request req,
                     Response res,
                     SocketStatus status)
Event method.

Specified by:
event in interface Adapter
Returns:
false to indicate an error, expected or not

service

public void service(Request req,
                    Response res)
             throws java.lang.Exception
Service method.

Specified by:
service in interface Adapter
Throws:
java.lang.Exception - if an error happens during handling of the request. Common errors are:
  • IOException if an input/output error occurs and we are processing an included servlet (otherwise it is swallowed and handled by the top level error handler mechanism)
  • ServletException if a servlet throws an exception and we are processing an included servlet (otherwise it is swallowed and handled by the top level error handler mechanism)
Tomcat should be able to handle and log any other exception ( including runtime exceptions )

log

public void log(Request req,
                Response res,
                long time)
Specified by:
log in interface Adapter

postParseRequest

protected boolean postParseRequest(Request req,
                                   Request request,
                                   Response res,
                                   Response response)
                            throws java.lang.Exception
Parse additional request parameters.

Throws:
java.lang.Exception

parsePathParameters

protected void parsePathParameters(Request req,
                                   Request request)
Extract the path parameters from the request. This assumes parameters are of the form /path;name=value;name2=value2/ etc. Currently only really interested in the session ID that will be in this form. Other parameters can safely be ignored.

Parameters:
req -
request -

parseSessionId

@Deprecated
protected void parseSessionId(Request req,
                                         Request request)
Deprecated. Not used since 6.0.33

Parse session id in URL.


parseSessionCookiesId

protected void parseSessionCookiesId(Request req,
                                     Request request)
Parse session id in URL.


convertURI

protected void convertURI(MessageBytes uri,
                          Request request)
                   throws java.lang.Exception
Character conversion of the URI.

Throws:
java.lang.Exception

convertMB

protected void convertMB(MessageBytes mb)
Character conversion of the a US-ASCII MessageBytes.


normalize

public static boolean normalize(MessageBytes uriMB)
Normalize URI.

This method normalizes "\", "//", "/./" and "/../". This method will return false when trying to go above the root, or if the URI contains a null byte.

Parameters:
uriMB - URI to be normalized

checkNormalize

public static boolean checkNormalize(MessageBytes uriMB)
Check that the URI is normalized following character decoding.

This method checks for "\", 0, "//", "/./" and "/../". This method will return false if sequences that are supposed to be normalized are still present in the URI.

Parameters:
uriMB - URI to be checked (should be chars)

copyBytes

protected static void copyBytes(byte[] b,
                                int dest,
                                int src,
                                int len)
Copy an array of bytes to a different position. Used during normalization.


Apache Tomcat 6.0.43

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