初始提交
diff --git a/tomcat-uid/webapps/docs/config/ajp.html b/tomcat-uid/webapps/docs/config/ajp.html
new file mode 100644
index 0000000..830e271
--- /dev/null
+++ b/tomcat-uid/webapps/docs/config/ajp.html
@@ -0,0 +1,281 @@
+<html><head><META http-equiv="Content-Type" content="text/html; charset=iso-8859-1"><title>Apache Tomcat Configuration Reference (6.0.39) - The AJP Connector</title><meta name="author" content="Remy Maucherat"><meta name="author" content="Yoav Shapira"><meta name="author" content="Andrew R. Jaquith"><style type="text/css" media="print">
+ .noPrint {display: none;}
+ td#mainBody {width: 100%;}
+ </style></head><body bgcolor="#ffffff" text="#000000" link="#525D76" alink="#525D76" vlink="#525D76"><table border="0" width="100%" cellspacing="0"><!--PAGE HEADER--><tr><td><!--PROJECT LOGO--><a href="http://tomcat.apache.org/"><img src="../images/tomcat.gif" align="right" alt="
+ The Apache Tomcat Servlet/JSP Container
+ " border="0"></a></td><td><h1><font face="arial,helvetica,sanserif">Apache Tomcat 6.0</font></h1><font face="arial,helvetica,sanserif">Version 6.0.39, Jan 27 2014</font></td><td><!--APACHE LOGO--><a href="http://www.apache.org/"><img src="../images/asf-logo.gif" align="right" alt="Apache Logo" border="0"></a></td></tr></table><table border="0" width="100%" cellspacing="4"><!--HEADER SEPARATOR--><tr><td colspan="2"><hr noshade="noshade" size="1"></td></tr><tr><!--LEFT SIDE NAVIGATION--><td width="20%" valign="top" nowrap="nowrap" class="noPrint"><p><strong>Links</strong></p><ul><li><a href="../index.html">Docs Home</a></li><li><a href="index.html">Config Ref. Home</a></li></ul><p><strong>Top Level Elements</strong></p><ul><li><a href="server.html">Server</a></li><li><a href="service.html">Service</a></li></ul><p><strong>Executors</strong></p><ul><li><a href="executor.html">Executor</a></li></ul><p><strong>Connectors</strong></p><ul><li><a href="http.html">HTTP</a></li><li><a href="ajp.html">AJP</a></li></ul><p><strong>Containers</strong></p><ul><li><a href="context.html">Context</a></li><li><a href="engine.html">Engine</a></li><li><a href="host.html">Host</a></li><li><a href="cluster.html">Cluster</a></li></ul><p><strong>Nested Components</strong></p><ul><li><a href="globalresources.html">Global Resources</a></li><li><a href="listeners.html">Listeners</a></li><li><a href="loader.html">Loader</a></li><li><a href="manager.html">Manager</a></li><li><a href="realm.html">Realm</a></li><li><a href="resources.html">Resources</a></li><li><a href="valve.html">Valve</a></li></ul><p><strong>Cluster Elements</strong></p><ul><li><a href="cluster.html">Cluster</a></li><li><a href="cluster-manager.html">Manager</a></li><li><a href="cluster-channel.html">Channel</a></li><li><a href="cluster-membership.html">Channel/Membership</a></li><li><a href="cluster-sender.html">Channel/Sender</a></li><li><a href="cluster-receiver.html">Channel/Receiver</a></li><li><a href="cluster-interceptor.html">Channel/Interceptor</a></li><li><a href="cluster-valve.html">Valve</a></li><li><a href="cluster-deployer.html">Deployer</a></li><li><a href="cluster-listener.html">ClusterListener</a></li></ul><p><strong>Other</strong></p><ul><li><a href="filter.html">Filter</a></li><li><a href="systemprops.html">System properties</a></li></ul></td><!--RIGHT SIDE MAIN BODY--><td width="80%" valign="top" align="left" id="mainBody"><h1>Apache Tomcat Configuration Reference</h1><h2>The AJP Connector</h2><table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Table of Contents"><!--()--></a><a name="Table_of_Contents"><strong>Table of Contents</strong></a></font></td></tr><tr><td><blockquote>
+<ul><li><a href="#Introduction">Introduction</a></li><li><a href="#Attributes">Attributes</a><ol><li><a href="#Common_Attributes">Common Attributes</a></li><li><a href="#Standard_Implementations">Standard Implementations</a></li></ol></li><li><a href="#Nested_Components">Nested Components</a></li></ul>
+</blockquote></td></tr></table><table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Introduction"><strong>Introduction</strong></a></font></td></tr><tr><td><blockquote>
+
+ <p>The <strong>AJP Connector</strong> element represents a
+ <strong>Connector</strong> component that communicates with a web
+ connector via the <code>AJP</code> protocol. This is used for cases
+ where you wish to invisibly integrate Tomcat 6 into an existing (or new)
+ Apache installation, and you want Apache to handle the static content
+ contained in the web application, and/or utilize Apache's SSL
+ processing.</p>
+
+ <p>This connector supports load balancing when used in conjunction with
+ the <code>jvmRoute</code> attribute of the
+ <a href="engine.html">Engine</a>.</p>
+
+<p>The native connectors supported with this Tomcat release are:
+<ul>
+ <li>JK 1.2.x with any of the supported servers</li>
+ <li>mod_proxy on Apache httpd 2.x (included by default in Apache HTTP Server 2.2),
+ with AJP enabled: see
+ <a href="http://httpd.apache.org/docs/2.2/mod/mod_proxy_ajp.html">the httpd docs</a>
+ for details.</li>
+</ul>
+</p>
+
+<p><b>Other native connectors supporting AJP may work, but are no longer supported.</b></p>
+
+</blockquote></td></tr></table><table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Attributes"><strong>Attributes</strong></a></font></td></tr><tr><td><blockquote>
+
+ <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Common Attributes"><!--()--></a><a name="Common_Attributes"><strong>Common Attributes</strong></a></font></td></tr><tr><td><blockquote>
+
+ <p>All implementations of <strong>Connector</strong>
+ support the following attributes:</p>
+
+ <table border="1" cellpadding="5"><tr><th width="15%" bgcolor="#023264"><font color="#ffffff">Attribute</font></th><th width="85%" bgcolor="#023264"><font color="#ffffff">Description</font></th></tr><tr><td align="left" valign="center"><code>allowTrace</code></td><td align="left" valign="center">
+ <p>A boolean value which can be used to enable or disable the TRACE
+ HTTP method. If not specified, this attribute is set to false.</p>
+ </td></tr><tr><td align="left" valign="center"><code>emptySessionPath</code></td><td align="left" valign="center">
+ <p>If set to <code>true</code>, all paths for session cookies will be set
+ to <code>/</code>. This can be useful for portlet specification implementations.
+ If not specified, this attribute is set to <code>false</code>.</p>
+ </td></tr><tr><td align="left" valign="center"><code>enableLookups</code></td><td align="left" valign="center">
+ <p>Set to <code>true</code> if you want calls to
+ <code>request.getRemoteHost()</code> to perform DNS lookups in
+ order to return the actual host name of the remote client. Set
+ to <code>false</code> to skip the DNS lookup and return the IP
+ address in String form instead (thereby improving performance).
+ By default, DNS lookups are disabled.</p>
+ </td></tr><tr><td align="left" valign="center"><code>maxHeaderCount</code></td><td align="left" valign="center">
+ <p>The maximum number of headers in a request that are allowed by the
+ container. A request that contains more headers than the specified limit
+ will be rejected. A value of less than 0 means no limit.
+ If not specified, a default of 100 is used.</p>
+ </td></tr><tr><td align="left" valign="center"><code>maxParameterCount</code></td><td align="left" valign="center">
+ <p>The maximum number of parameters (GET plus POST) which will be
+ automatically parsed by the container. A value of less than 0 means no
+ limit. If not specified, a default of 10000 is used. Note that
+ <code>FailedRequestFilter</code> <a href="filter.html">filter</a> can be
+ used to reject requests that hit the limit.</p>
+ </td></tr><tr><td align="left" valign="center"><code>maxPostSize</code></td><td align="left" valign="center">
+ <p>The maximum size in bytes of the POST which will be handled by
+ the container FORM URL parameter parsing. The feature can be disabled by
+ setting this attribute to a value less than or equal to 0.
+ If not specified, this attribute is set to 2097152 (2 megabytes).</p>
+ </td></tr><tr><td align="left" valign="center"><code>maxSavePostSize</code></td><td align="left" valign="center">
+ <p>The maximum size in bytes of the POST which will be saved/buffered by
+ the container during FORM or CLIENT-CERT authentication. For both types
+ of authentication, the POST will be saved/buffered before the user is
+ authenticated. For CLIENT-CERT authentication, the POST is buffered for
+ the duration of the SSL handshake and the buffer emptied when the request
+ is processed. For FORM authentication the POST is saved whilst the user
+ is re-directed to the login form and is retained until the user
+ successfully authenticates or the session associated with the
+ authentication request expires. The limit can be disabled by setting this
+ attribute to -1. Setting the attribute to zero will disable the saving of
+ POST data during authentication. If not specified, this attribute is set
+ to 4096 (4 kilobytes).</p>
+ </td></tr><tr><td align="left" valign="center"><code>parseBodyMethods</code></td><td align="left" valign="center">
+ <p>A comma-separated list of HTTP methods for which request
+ bodies will be parsed for request parameters identically
+ to POST. This is useful in RESTful applications that want to
+ support POST-style semantics for PUT requests.
+ Note that any setting other than <code>POST</code> causes Tomcat
+ to behave in a way that does against the intent of the servlet
+ specification.
+ The HTTP method TRACE is specifically forbidden here in accordance
+ with the HTTP specification.
+ The default is <code>POST</code></p>
+ </td></tr><tr><td align="left" valign="center"><strong><code>port</code></strong></td><td align="left" valign="center">
+ <p>The TCP port number on which this <strong>Connector</strong>
+ will create a server socket and await incoming connections. Your
+ operating system will allow only one server application to listen
+ to a particular port number on a particular IP address.</p>
+ </td></tr><tr><td align="left" valign="center"><code>protocol</code></td><td align="left" valign="center">
+ <p>Sets the protocol to handle incoming traffic. The default value is
+ <code>AJP/1.3</code> and configures
+ <code>org.apache.jk.server.JkCoyoteHandler</code> the original blocking
+ Java connector by default.<br>
+ If the <code>PATH</code> (Windows) or <code>LD_LIBRARY_PATH</code>
+ (on most unix systems) environment variables contain the Tomcat
+ native library, the native/APR connector will automatically be
+ configured instead.<br>
+ To use an explicit protocol rather than rely on the auto-switching
+ mechanism described above, the following values may be used:<br>
+ <code>org.apache.jk.server.JkCoyoteHandler</code>
+ - original blocking Java connector<br>
+ <code>org.apache.coyote.ajp.AjpProtocol</code>
+ - new blocking Java connector that supports an executor<br>
+ <code>org.apache.coyote.ajp.AjpAprProtocol</code>
+ - the APR/native connector.<br>
+ Custom implementations may also be used.</p>
+ </td></tr><tr><td align="left" valign="center"><code>proxyName</code></td><td align="left" valign="center">
+ <p>If this <strong>Connector</strong> is being used in a proxy
+ configuration, configure this attribute to specify the server name
+ to be returned for calls to <code>request.getServerName()</code>.
+ See <a href="#Proxy Support">Proxy Support</a> for more
+ information.</p>
+ </td></tr><tr><td align="left" valign="center"><code>proxyPort</code></td><td align="left" valign="center">
+ <p>If this <strong>Connector</strong> is being used in a proxy
+ configuration, configure this attribute to specify the server port
+ to be returned for calls to <code>request.getServerPort()</code>.
+ See <a href="#Proxy Support">Proxy Support</a> for more
+ information.</p>
+ </td></tr><tr><td align="left" valign="center"><code>redirectPort</code></td><td align="left" valign="center">
+ <p>If this <strong>Connector</strong> is supporting non-SSL
+ requests, and a request is received for which a matching
+ <code><security-constraint></code> requires SSL transport,
+ Catalina will automatically redirect the request to the port
+ number specified here.</p>
+ </td></tr><tr><td align="left" valign="center"><code>request.registerRequests</code></td><td align="left" valign="center">
+ <p>This attribute controls request registration for JMX monitoring
+ of the Connector. It is enabled by default, but may be turned
+ it off to save a bit of memory.</p>
+ </td></tr><tr><td align="left" valign="center"><code>scheme</code></td><td align="left" valign="center">
+ <p>Set this attribute to the name of the protocol you wish to have
+ returned by calls to <code>request.getScheme()</code>. For
+ example, you would set this attribute to "<code>https</code>"
+ for an SSL Connector. The default value is "<code>http</code>".
+ See <a href="#SSL Support">SSL Support</a> for more information.</p>
+ </td></tr><tr><td align="left" valign="center"><code>secure</code></td><td align="left" valign="center">
+ <p>Set this attribute to <code>true</code> if you wish to have
+ calls to <code>request.isSecure()</code> to return <code>true</code>
+ for requests received by this Connector (you would want this on an
+ SSL Connector). The default value is <code>false</code>.</p>
+ </td></tr><tr><td align="left" valign="center"><code>URIEncoding</code></td><td align="left" valign="center">
+ <p>This specifies the character encoding used to decode the URI bytes,
+ after %xx decoding the URL. If not specified, ISO-8859-1 will be used.
+ </p>
+ </td></tr><tr><td align="left" valign="center"><code>useBodyEncodingForURI</code></td><td align="left" valign="center">
+ <p>This specifies if the encoding specified in contentType should be used
+ for URI query parameters, instead of using the URIEncoding. This
+ setting is present for compatibility with Tomcat 4.1.x, where the
+ encoding specified in the contentType, or explicitly set using
+ Request.setCharacterEncoding method was also used for the parameters from
+ the URL. The default value is <code>false</code>.
+ </p>
+ </td></tr><tr><td align="left" valign="center"><code>useIPVHosts</code></td><td align="left" valign="center">
+ <p>Set this attribute to <code>true</code> to cause Tomcat to use
+ the ServerName passed by the native web server to determine the Host
+ to send the request to. The default value is <code>false</code>.</p>
+ </td></tr><tr><td align="left" valign="center"><code>xpoweredBy</code></td><td align="left" valign="center">
+ <p>Set this attribute to <code>true</code> to cause Tomcat to advertise
+ support for the Servlet specification using the header recommended in the
+ specification. The default value is <code>false</code>.</p>
+ </td></tr></table>
+
+ </blockquote></td></tr></table>
+
+ <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Standard Implementations"><!--()--></a><a name="Standard_Implementations"><strong>Standard Implementations</strong></a></font></td></tr><tr><td><blockquote>
+
+ <p>To use AJP, you
+ must specify the protocol attribute (see above).</p>
+
+ <p><strong>These implementations support the AJP 1.3 protocol.</strong></p>
+
+ <p>They support the following additional attributes (in addition to the
+ common attributes listed above):</p>
+
+ <table border="1" cellpadding="5"><tr><th width="15%" bgcolor="#023264"><font color="#ffffff">Attribute</font></th><th width="85%" bgcolor="#023264"><font color="#ffffff">Description</font></th></tr><tr><td align="left" valign="center"><code>address</code></td><td align="left" valign="center">
+ <p>For servers with more than one IP address, this attribute
+ specifies which address will be used for listening on the specified
+ port. By default, this port will be used on all IP addresses
+ associated with the server. A value of <code>127.0.0.1</code>
+ indicates that the Connector will only listen on the loopback
+ interface.</p>
+ </td></tr><tr><td align="left" valign="center"><code>backlog</code></td><td align="left" valign="center">
+ <p>The maximum queue length for incoming connection requests when
+ all possible request processing threads are in use. Any requests
+ received when the queue is full will be refused. The default
+ value is 100.</p>
+ </td></tr><tr><td align="left" valign="center"><code>bufferSize</code></td><td align="left" valign="center">
+ <p>The size of the output buffer to use. If less than or equal to zero,
+ then output buffering is disabled. The default value is -1
+ (i.e. buffering disabled)</p>
+ </td></tr><tr><td align="left" valign="center"><code>clientCertProvider</code></td><td align="left" valign="center">
+ <p>When client certificate information is presented in a form other than
+ instances of <code>java.security.cert.X509Certificate</code> 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 <a href="http.html">HTTP APR connector</a> and
+ with the <a href="valve.html#SSL_Authenticator_Valve">
+ org.apache.catalina.valves.SSLValve</a>.If not specified, the default
+ provider will be used.</p>
+ </td></tr><tr><td align="left" valign="center"><code>connectionTimeout</code></td><td align="left" valign="center">
+ <p>The number of milliseconds this <strong>Connector</strong> will wait,
+ after accepting a connection, for the request URI line to be
+ presented. The default value is infinite (i.e. no timeout).</p>
+ </td></tr><tr><td align="left" valign="center"><code>deferAccept</code></td><td align="left" valign="center">
+ <p>Sets the <code>TCP_DEFER_ACCEPT</code> flag on the listening socket for
+ this connector. The default value is <code>true</code> where
+ <code>TCP_DEFER_ACCEPT</code> is supported by the operating system,
+ otherwise it is <code>false</code>.</p>
+ </td></tr><tr><td align="left" valign="center"><code>executor</code></td><td align="left" valign="center">
+ <p>A reference to the name in an <a href="executor.html">Executor</a> element.
+ If this attribute is enabled, and the named executor exists, the connector will
+ use the executor, and all the other thread attributes will be ignored.
+ This attribute is not supported by the original blocking Java
+ connector.</p>
+ </td></tr><tr><td align="left" valign="center"><code>keepAliveTimeout</code></td><td align="left" valign="center">
+ <p>The number of milliseconds this <strong>Connector</strong> will wait for
+ another AJP request before closing the connection.
+ The default value is to use the value that has been set for the
+ connectionTimeout attribute.</p>
+ </td></tr><tr><td align="left" valign="center"><code>maxThreads</code></td><td align="left" valign="center">
+ <p>The maximum number of request processing threads to be created
+ by this <strong>Connector</strong>, which therefore determines the
+ maximum number of simultaneous requests that can be handled. If
+ not specified, this attribute is set to 200. If an executor is associated
+ with this connector, this attribute is ignored as the connector will
+ execute tasks using the executor rather than an internal thread pool.</p>
+ </td></tr><tr><td align="left" valign="center"><code>packetSize</code></td><td align="left" valign="center">
+ <p>This attribute sets the maximum AJP packet size in Bytes. The maximum
+ value is 65536. It should be the same as the <code>max_packet_size</code>
+ directive configured for mod_jk. Normally it is not necessary to change
+ the maximum packet size. Problems with the default value have been
+ reported when sending certificates or certificate chains. The default
+ value is 8192.</p>
+ </td></tr><tr><td align="left" valign="center"><strong><code>port</code></strong></td><td align="left" valign="center">
+ <p>The TCP port number on which this <strong>Connector</strong>
+ will create a server socket and await incoming connections. Your
+ operating system will allow only one server application to listen
+ to a particular port number on a particular IP address.</p>
+ </td></tr><tr><td align="left" valign="center"><code>request.secret</code></td><td align="left" valign="center">
+ <p>Only requests from workers with this secret keyword will be accepted.
+ </p>
+ </td></tr><tr><td align="left" valign="center"><code>request.shutdownEnabled</code></td><td align="left" valign="center">
+ <p>If true and a secret has been configured, a correctly formatted AJP
+ request (that includes the secret) will shutdown the Tomcat instance
+ associated with this connector. This is set to <code>false</code> by
+ default.</p>
+ </td></tr><tr><td align="left" valign="center"><code>request.useSecret</code></td><td align="left" valign="center">
+ <p>If set to <code>true</code>, then a random value for
+ <code>request.secret</code> will be generated. It is for use with
+ <code>request.shutdownEnabled</code>. This is set to <code>false</code>
+ by default.</p>
+ </td></tr><tr><td align="left" valign="center"><code>tcpNoDelay</code></td><td align="left" valign="center">
+ <p>If set to <code>true</code>, the TCP_NO_DELAY option will be
+ set on the server socket, which improves performance under most
+ circumstances. This is set to <code>true</code> by default.</p>
+ </td></tr><tr><td align="left" valign="center"><code>tomcatAuthentication</code></td><td align="left" valign="center">
+ <p>If set to <code>true</code>, the authentication will be done in Tomcat.
+ Otherwise, the authenticated principal will be propagated from the native
+ webserver and used for authorization in Tomcat.
+ The default value is <code>true</code>.</p>
+ </td></tr></table>
+
+ </blockquote></td></tr></table>
+
+</blockquote></td></tr></table><table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Nested Components"><!--()--></a><a name="Nested_Components"><strong>Nested Components</strong></a></font></td></tr><tr><td><blockquote>
+
+ <p>None at this time.</p>
+
+</blockquote></td></tr></table></td></tr><!--FOOTER SEPARATOR--><tr><td colspan="2"><hr noshade="noshade" size="1"></td></tr><!--PAGE FOOTER--><tr><td colspan="2"><div align="center"><font color="#525D76" size="-1"><em>
+ Copyright © 1999-2014, Apache Software Foundation
+ </em></font></div></td></tr></table></body></html>
\ No newline at end of file
diff --git a/tomcat-uid/webapps/docs/config/cluster-channel.html b/tomcat-uid/webapps/docs/config/cluster-channel.html
new file mode 100644
index 0000000..a400877
--- /dev/null
+++ b/tomcat-uid/webapps/docs/config/cluster-channel.html
@@ -0,0 +1,65 @@
+<html><head><META http-equiv="Content-Type" content="text/html; charset=iso-8859-1"><title>Apache Tomcat Configuration Reference (6.0.39) - The Cluster Channel object</title><meta name="author" content="Filip Hanik"><style type="text/css" media="print">
+ .noPrint {display: none;}
+ td#mainBody {width: 100%;}
+ </style></head><body bgcolor="#ffffff" text="#000000" link="#525D76" alink="#525D76" vlink="#525D76"><table border="0" width="100%" cellspacing="0"><!--PAGE HEADER--><tr><td><!--PROJECT LOGO--><a href="http://tomcat.apache.org/"><img src="../images/tomcat.gif" align="right" alt="
+ The Apache Tomcat Servlet/JSP Container
+ " border="0"></a></td><td><h1><font face="arial,helvetica,sanserif">Apache Tomcat 6.0</font></h1><font face="arial,helvetica,sanserif">Version 6.0.39, Jan 27 2014</font></td><td><!--APACHE LOGO--><a href="http://www.apache.org/"><img src="../images/asf-logo.gif" align="right" alt="Apache Logo" border="0"></a></td></tr></table><table border="0" width="100%" cellspacing="4"><!--HEADER SEPARATOR--><tr><td colspan="2"><hr noshade="noshade" size="1"></td></tr><tr><!--LEFT SIDE NAVIGATION--><td width="20%" valign="top" nowrap="nowrap" class="noPrint"><p><strong>Links</strong></p><ul><li><a href="../index.html">Docs Home</a></li><li><a href="index.html">Config Ref. Home</a></li></ul><p><strong>Top Level Elements</strong></p><ul><li><a href="server.html">Server</a></li><li><a href="service.html">Service</a></li></ul><p><strong>Executors</strong></p><ul><li><a href="executor.html">Executor</a></li></ul><p><strong>Connectors</strong></p><ul><li><a href="http.html">HTTP</a></li><li><a href="ajp.html">AJP</a></li></ul><p><strong>Containers</strong></p><ul><li><a href="context.html">Context</a></li><li><a href="engine.html">Engine</a></li><li><a href="host.html">Host</a></li><li><a href="cluster.html">Cluster</a></li></ul><p><strong>Nested Components</strong></p><ul><li><a href="globalresources.html">Global Resources</a></li><li><a href="listeners.html">Listeners</a></li><li><a href="loader.html">Loader</a></li><li><a href="manager.html">Manager</a></li><li><a href="realm.html">Realm</a></li><li><a href="resources.html">Resources</a></li><li><a href="valve.html">Valve</a></li></ul><p><strong>Cluster Elements</strong></p><ul><li><a href="cluster.html">Cluster</a></li><li><a href="cluster-manager.html">Manager</a></li><li><a href="cluster-channel.html">Channel</a></li><li><a href="cluster-membership.html">Channel/Membership</a></li><li><a href="cluster-sender.html">Channel/Sender</a></li><li><a href="cluster-receiver.html">Channel/Receiver</a></li><li><a href="cluster-interceptor.html">Channel/Interceptor</a></li><li><a href="cluster-valve.html">Valve</a></li><li><a href="cluster-deployer.html">Deployer</a></li><li><a href="cluster-listener.html">ClusterListener</a></li></ul><p><strong>Other</strong></p><ul><li><a href="filter.html">Filter</a></li><li><a href="systemprops.html">System properties</a></li></ul></td><!--RIGHT SIDE MAIN BODY--><td width="80%" valign="top" align="left" id="mainBody"><h1>Apache Tomcat Configuration Reference</h1><h2>The Cluster Channel object</h2><table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Table of Contents"><!--()--></a><a name="Table_of_Contents"><strong>Table of Contents</strong></a></font></td></tr><tr><td><blockquote>
+<ul><li><a href="#Introduction">Introduction</a></li><li><a href="#Nested_Components">Nested Components</a></li><li><a href="#Attributes">Attributes</a><ol><li><a href="#Common_Attributes">Common Attributes</a></li></ol></li></ul>
+</blockquote></td></tr></table><table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Introduction"><strong>Introduction</strong></a></font></td></tr><tr><td><blockquote>
+ The cluster channel is the main component of a small framework we've nicknamed Apache Tribes.<br>
+ The channel manages a set of sub components and together they create a group communication framework.<br>
+ This framework is then used internally by the components that need to send messages between different Tomcat instances.
+ <br>
+ A few examples of these components would be the SimpleTcpCluster that does the messaging for the DeltaManager,
+ or the BackupManager that uses a different replication strategy. The ReplicatedContext object does also
+ use the channel object to communicate context attribute changes.
+</blockquote></td></tr></table><table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Nested Components"><!--()--></a><a name="Nested_Components"><strong>Nested Components</strong></a></font></td></tr><tr><td><blockquote>
+ <p><b><a href="cluster-membership.html">Channel/Membership</a>:</b> <br>
+ The Membership component is responsible for auto discovering new nodes in the cluster
+ and also to provide for notifications for any nodes that have not responded with a heartbeat.
+ The default implementation uses multicast.<br>
+ In the membership component you configure how your nodes, aka. members, are to be discovered and/or
+ divided up.
+ You can always find out more about <a href="../tribes/introduction.html">Apache Tribes</a>
+ </p>
+ <p><b><a href="cluster-sender.html">Channel/Sender</a>:</b> <br>
+ The Sender component manages all outbound connections and data messages that are sent
+ over the network from one node to another.
+ This component allows messages to be sent in parallel.
+ The default implementation uses TCP client sockets, and socket tuning for outgoing messages are
+ configured here.<br>
+ You can always find out more about <a href="../tribes/introduction.html">Apache Tribes</a>
+ </p>
+ <p><b><a href="cluster-sender.html#transport">Channel/Sender/Transport</a>:</b> <br>
+ The Transport component is the bottom IO layer for the sender component.
+ The default implementation uses non-blocking TCP client sockets.<br>
+ You can always find out more about <a href="../tribes/introduction.html">Apache Tribes</a>
+ </p>
+ <p><b><a href="cluster-receiver.html">Channel/Receiver</a>:</b> <br>
+ The receiver component listens for messages from other nodes.
+ Here you will configure the cluster thread pool, as it will dispatch incoming
+ messages to a thread pool for faster processing.
+ The default implementation uses non-blocking TCP server sockets.<br>
+ You can always find out more about <a href="../tribes/introduction.html">Apache Tribes</a>
+ </p>
+ <p><b><a href="cluster-interceptor.html">Channel/Interceptor</a>:</b> <br>
+ The channel will send messages through an interceptor stack. Because of this, you have the ability to
+ customize the way messages are sent and received, and even how membership is handled.<br>
+ You can always find out more about <a href="../tribes/introduction.html">Apache Tribes</a>
+ </p>
+</blockquote></td></tr></table><table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Attributes"><strong>Attributes</strong></a></font></td></tr><tr><td><blockquote>
+
+ <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Common Attributes"><!--()--></a><a name="Common_Attributes"><strong>Common Attributes</strong></a></font></td></tr><tr><td><blockquote>
+
+ <table border="1" cellpadding="5"><tr><th width="15%" bgcolor="#023264"><font color="#ffffff">Attribute</font></th><th width="85%" bgcolor="#023264"><font color="#ffffff">Description</font></th></tr><tr><td align="left" valign="center"><strong><code>className</code></strong></td><td align="left" valign="center">
+ The default value here is <code>org.apache.catalina.tribes.group.GroupChannel</code> and is
+ currently the only implementation available.
+ </td></tr></table>
+
+
+ </blockquote></td></tr></table>
+
+
+</blockquote></td></tr></table></td></tr><!--FOOTER SEPARATOR--><tr><td colspan="2"><hr noshade="noshade" size="1"></td></tr><!--PAGE FOOTER--><tr><td colspan="2"><div align="center"><font color="#525D76" size="-1"><em>
+ Copyright © 1999-2014, Apache Software Foundation
+ </em></font></div></td></tr></table></body></html>
\ No newline at end of file
diff --git a/tomcat-uid/webapps/docs/config/cluster-deployer.html b/tomcat-uid/webapps/docs/config/cluster-deployer.html
new file mode 100644
index 0000000..0455b43
--- /dev/null
+++ b/tomcat-uid/webapps/docs/config/cluster-deployer.html
@@ -0,0 +1,26 @@
+<html><head><META http-equiv="Content-Type" content="text/html; charset=iso-8859-1"><title>Apache Tomcat Configuration Reference (6.0.39) - The Cluster Deployer object</title><meta name="author" content="Filip Hanik"><style type="text/css" media="print">
+ .noPrint {display: none;}
+ td#mainBody {width: 100%;}
+ </style></head><body bgcolor="#ffffff" text="#000000" link="#525D76" alink="#525D76" vlink="#525D76"><table border="0" width="100%" cellspacing="0"><!--PAGE HEADER--><tr><td><!--PROJECT LOGO--><a href="http://tomcat.apache.org/"><img src="../images/tomcat.gif" align="right" alt="
+ The Apache Tomcat Servlet/JSP Container
+ " border="0"></a></td><td><h1><font face="arial,helvetica,sanserif">Apache Tomcat 6.0</font></h1><font face="arial,helvetica,sanserif">Version 6.0.39, Jan 27 2014</font></td><td><!--APACHE LOGO--><a href="http://www.apache.org/"><img src="../images/asf-logo.gif" align="right" alt="Apache Logo" border="0"></a></td></tr></table><table border="0" width="100%" cellspacing="4"><!--HEADER SEPARATOR--><tr><td colspan="2"><hr noshade="noshade" size="1"></td></tr><tr><!--LEFT SIDE NAVIGATION--><td width="20%" valign="top" nowrap="nowrap" class="noPrint"><p><strong>Links</strong></p><ul><li><a href="../index.html">Docs Home</a></li><li><a href="index.html">Config Ref. Home</a></li></ul><p><strong>Top Level Elements</strong></p><ul><li><a href="server.html">Server</a></li><li><a href="service.html">Service</a></li></ul><p><strong>Executors</strong></p><ul><li><a href="executor.html">Executor</a></li></ul><p><strong>Connectors</strong></p><ul><li><a href="http.html">HTTP</a></li><li><a href="ajp.html">AJP</a></li></ul><p><strong>Containers</strong></p><ul><li><a href="context.html">Context</a></li><li><a href="engine.html">Engine</a></li><li><a href="host.html">Host</a></li><li><a href="cluster.html">Cluster</a></li></ul><p><strong>Nested Components</strong></p><ul><li><a href="globalresources.html">Global Resources</a></li><li><a href="listeners.html">Listeners</a></li><li><a href="loader.html">Loader</a></li><li><a href="manager.html">Manager</a></li><li><a href="realm.html">Realm</a></li><li><a href="resources.html">Resources</a></li><li><a href="valve.html">Valve</a></li></ul><p><strong>Cluster Elements</strong></p><ul><li><a href="cluster.html">Cluster</a></li><li><a href="cluster-manager.html">Manager</a></li><li><a href="cluster-channel.html">Channel</a></li><li><a href="cluster-membership.html">Channel/Membership</a></li><li><a href="cluster-sender.html">Channel/Sender</a></li><li><a href="cluster-receiver.html">Channel/Receiver</a></li><li><a href="cluster-interceptor.html">Channel/Interceptor</a></li><li><a href="cluster-valve.html">Valve</a></li><li><a href="cluster-deployer.html">Deployer</a></li><li><a href="cluster-listener.html">ClusterListener</a></li></ul><p><strong>Other</strong></p><ul><li><a href="filter.html">Filter</a></li><li><a href="systemprops.html">System properties</a></li></ul></td><!--RIGHT SIDE MAIN BODY--><td width="80%" valign="top" align="left" id="mainBody"><h1>Apache Tomcat Configuration Reference</h1><h2>The Cluster Deployer object</h2><table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Table of Contents"><!--()--></a><a name="Table_of_Contents"><strong>Table of Contents</strong></a></font></td></tr><tr><td><blockquote>
+<ul><li><a href="#Introduction">Introduction</a></li><li><a href="#Attributes">Attributes</a><ol><li><a href="#Common_Attributes">Common Attributes</a></li></ol></li></ul>
+</blockquote></td></tr></table><table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Introduction"><strong>Introduction</strong></a></font></td></tr><tr><td><blockquote>
+ <p>TODO - Complete documentation</p>
+
+
+</blockquote></td></tr></table><table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Attributes"><strong>Attributes</strong></a></font></td></tr><tr><td><blockquote>
+
+ <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Common Attributes"><!--()--></a><a name="Common_Attributes"><strong>Common Attributes</strong></a></font></td></tr><tr><td><blockquote>
+
+ <table border="1" cellpadding="5"><tr><th width="15%" bgcolor="#023264"><font color="#ffffff">Attribute</font></th><th width="85%" bgcolor="#023264"><font color="#ffffff">Description</font></th></tr><tr><td align="left" valign="center"><strong><code>className</code></strong></td><td align="left" valign="center">
+
+ </td></tr></table>
+
+
+ </blockquote></td></tr></table>
+
+
+</blockquote></td></tr></table></td></tr><!--FOOTER SEPARATOR--><tr><td colspan="2"><hr noshade="noshade" size="1"></td></tr><!--PAGE FOOTER--><tr><td colspan="2"><div align="center"><font color="#525D76" size="-1"><em>
+ Copyright © 1999-2014, Apache Software Foundation
+ </em></font></div></td></tr></table></body></html>
\ No newline at end of file
diff --git a/tomcat-uid/webapps/docs/config/cluster-interceptor.html b/tomcat-uid/webapps/docs/config/cluster-interceptor.html
new file mode 100644
index 0000000..17d5f98
--- /dev/null
+++ b/tomcat-uid/webapps/docs/config/cluster-interceptor.html
@@ -0,0 +1,166 @@
+<html><head><META http-equiv="Content-Type" content="text/html; charset=iso-8859-1"><title>Apache Tomcat Configuration Reference (6.0.39) - The Channel Interceptor object</title><meta name="author" content="Filip Hanik"><style type="text/css" media="print">
+ .noPrint {display: none;}
+ td#mainBody {width: 100%;}
+ </style></head><body bgcolor="#ffffff" text="#000000" link="#525D76" alink="#525D76" vlink="#525D76"><table border="0" width="100%" cellspacing="0"><!--PAGE HEADER--><tr><td><!--PROJECT LOGO--><a href="http://tomcat.apache.org/"><img src="../images/tomcat.gif" align="right" alt="
+ The Apache Tomcat Servlet/JSP Container
+ " border="0"></a></td><td><h1><font face="arial,helvetica,sanserif">Apache Tomcat 6.0</font></h1><font face="arial,helvetica,sanserif">Version 6.0.39, Jan 27 2014</font></td><td><!--APACHE LOGO--><a href="http://www.apache.org/"><img src="../images/asf-logo.gif" align="right" alt="Apache Logo" border="0"></a></td></tr></table><table border="0" width="100%" cellspacing="4"><!--HEADER SEPARATOR--><tr><td colspan="2"><hr noshade="noshade" size="1"></td></tr><tr><!--LEFT SIDE NAVIGATION--><td width="20%" valign="top" nowrap="nowrap" class="noPrint"><p><strong>Links</strong></p><ul><li><a href="../index.html">Docs Home</a></li><li><a href="index.html">Config Ref. Home</a></li></ul><p><strong>Top Level Elements</strong></p><ul><li><a href="server.html">Server</a></li><li><a href="service.html">Service</a></li></ul><p><strong>Executors</strong></p><ul><li><a href="executor.html">Executor</a></li></ul><p><strong>Connectors</strong></p><ul><li><a href="http.html">HTTP</a></li><li><a href="ajp.html">AJP</a></li></ul><p><strong>Containers</strong></p><ul><li><a href="context.html">Context</a></li><li><a href="engine.html">Engine</a></li><li><a href="host.html">Host</a></li><li><a href="cluster.html">Cluster</a></li></ul><p><strong>Nested Components</strong></p><ul><li><a href="globalresources.html">Global Resources</a></li><li><a href="listeners.html">Listeners</a></li><li><a href="loader.html">Loader</a></li><li><a href="manager.html">Manager</a></li><li><a href="realm.html">Realm</a></li><li><a href="resources.html">Resources</a></li><li><a href="valve.html">Valve</a></li></ul><p><strong>Cluster Elements</strong></p><ul><li><a href="cluster.html">Cluster</a></li><li><a href="cluster-manager.html">Manager</a></li><li><a href="cluster-channel.html">Channel</a></li><li><a href="cluster-membership.html">Channel/Membership</a></li><li><a href="cluster-sender.html">Channel/Sender</a></li><li><a href="cluster-receiver.html">Channel/Receiver</a></li><li><a href="cluster-interceptor.html">Channel/Interceptor</a></li><li><a href="cluster-valve.html">Valve</a></li><li><a href="cluster-deployer.html">Deployer</a></li><li><a href="cluster-listener.html">ClusterListener</a></li></ul><p><strong>Other</strong></p><ul><li><a href="filter.html">Filter</a></li><li><a href="systemprops.html">System properties</a></li></ul></td><!--RIGHT SIDE MAIN BODY--><td width="80%" valign="top" align="left" id="mainBody"><h1>Apache Tomcat Configuration Reference</h1><h2>The Channel Interceptor object</h2><table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Table of Contents"><!--()--></a><a name="Table_of_Contents"><strong>Table of Contents</strong></a></font></td></tr><tr><td><blockquote>
+<ul><li><a href="#Introduction">Introduction</a></li><li><a href="#Available_Interceptors">Available Interceptors</a></li><li><a href="#Static_Membership">Static Membership</a></li><li><a href="#Attributes">Attributes</a><ol><li><a href="#Common_Attributes">Common Attributes</a></li><li><a href="#org.apache.catalina.tribes.group.interceptors.DomainFilterInterceptor_Attributes">org.apache.catalina.tribes.group.interceptors.DomainFilterInterceptor Attributes</a></li><li><a href="#org.apache.catalina.tribes.group.interceptors.MessageDispatch15Interceptor_Attributes">org.apache.catalina.tribes.group.interceptors.MessageDispatch15Interceptor Attributes</a></li><li><a href="#org.apache.catalina.tribes.group.interceptors.MessageDispatchInterceptor_Attributes">org.apache.catalina.tribes.group.interceptors.MessageDispatchInterceptor Attributes</a></li><li><a href="#org.apache.catalina.tribes.group.interceptors.TcpFailureDetector_Attributes">org.apache.catalina.tribes.group.interceptors.TcpFailureDetector Attributes</a></li><li><a href="#org.apache.catalina.tribes.group.interceptors.TcpPingInterceptor_Attributes">org.apache.catalina.tribes.group.interceptors.TcpPingInterceptor Attributes</a></li><li><a href="#org.apache.catalina.tribes.group.interceptors.ThroughputInterceptor_Attributes">org.apache.catalina.tribes.group.interceptors.ThroughputInterceptor Attributes</a></li><li><a href="#Nested_element_StaticMember_Attributes">Nested element StaticMember Attributes</a></li></ol></li></ul>
+</blockquote></td></tr></table><table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Introduction"><strong>Introduction</strong></a></font></td></tr><tr><td><blockquote>
+ <p>
+ Apache Tribes supports an interceptor architecture to intercept both messages and membership notifications.
+ This architecture allows decoupling of logic and opens the way for some very kewl feature add ons.
+ </p>
+</blockquote></td></tr></table><table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Available Interceptors"><!--()--></a><a name="Available_Interceptors"><strong>Available Interceptors</strong></a></font></td></tr><tr><td><blockquote>
+ <p>
+ <ul>
+ <li><code>org.apache.catalina.tribes.group.interceptors.TcpFailureDetector</code></li>
+ <li><code>org.apache.catalina.tribes.group.interceptors.ThroughputInterceptor</code></li>
+ <li><code>org.apache.catalina.tribes.group.interceptors.MessageDispatch15Interceptor</code></li>
+ <li><code>org.apache.catalina.tribes.group.interceptors.MessageDispatchInterceptor</code></li>
+ <li><code>org.apache.catalina.tribes.group.interceptors.NonBlockingCoordinator</code></li>
+ <li><code>org.apache.catalina.tribes.group.interceptors.OrderInterceptor</code></li>
+ <li><code>org.apache.catalina.tribes.group.interceptors.SimpleCoordinator</code></li>
+ <li><code>org.apache.catalina.tribes.group.interceptors.StaticMembershipInterceptor</code></li>
+ <li><code>org.apache.catalina.tribes.group.interceptors.TwoPhaseCommitInterceptor</code></li>
+ <li><code>org.apache.catalina.tribes.group.interceptors.DomainFilterInterceptor</code></li>
+ <li><code>org.apache.catalina.tribes.group.interceptors.FragmentationInterceptor</code></li>
+ <li><code>org.apache.catalina.tribes.group.interceptors.GzipInterceptor</code></li>
+ <li><code>org.apache.catalina.tribes.group.interceptors.TcpPingInterceptor</code></li>
+ </ul>
+ </p>
+</blockquote></td></tr></table><table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Static Membership"><!--()--></a><a name="Static_Membership"><strong>Static Membership</strong></a></font></td></tr><tr><td><blockquote>
+ <p>
+ In addition to dynamic discovery, Apache Tribes also supports static membership, with membership verification.
+ To achieve this add the <code>org.apache.catalina.tribes.group.interceptors.StaticMembershipInterceptor</code>
+ underneath the <code>org.apache.catalina.tribes.group.interceptors.TcpFailureDetector</code> interceptor.
+ Inside the <code>StaticMembershipInterceptor</code> you can add the static members you wish to have.
+ The <code>TcpFailureDetector</code> will do a health check on the static members,and also monitor them for crashes
+ so they will have the same level of notification mechanism as the members that are automatically discovered.
+ <div align="left"><table cellspacing="4" cellpadding="0" border="0"><tr><td bgcolor="#023264" width="1" height="1"><img src="../images/void.gif" alt="" width="1" height="1" vspace="0" hspace="0" border="0"></td><td bgcolor="#023264" height="1"><img src="../images/void.gif" alt="" width="1" height="1" vspace="0" hspace="0" border="0"></td><td bgcolor="#023264" width="1" height="1"><img src="../images/void.gif" alt="" width="1" height="1" vspace="0" hspace="0" border="0"></td></tr><tr><td bgcolor="#023264" width="1"><img src="../images/void.gif" alt="" width="1" height="1" vspace="0" hspace="0" border="0"></td><td bgcolor="#ffffff" height="1"><pre>
+ <Interceptor className="org.apache.catalina.tribes.group.interceptors.StaticMembershipInterceptor">
+ <Member className="org.apache.catalina.tribes.membership.StaticMember"
+ port="5678"
+ securePort="-1"
+ host="tomcat01.mydomain.com"
+ domain="staging-cluster"
+ uniqueId="{0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15}"/>
+ </Interceptor>
+
+ </pre></td><td bgcolor="#023264" width="1"><img src="../images/void.gif" alt="" width="1" height="1" vspace="0" hspace="0" border="0"></td></tr><tr><td bgcolor="#023264" width="1" height="1"><img src="../images/void.gif" alt="" width="1" height="1" vspace="0" hspace="0" border="0"></td><td bgcolor="#023264" height="1"><img src="../images/void.gif" alt="" width="1" height="1" vspace="0" hspace="0" border="0"></td><td bgcolor="#023264" width="1" height="1"><img src="../images/void.gif" alt="" width="1" height="1" vspace="0" hspace="0" border="0"></td></tr></table></div>
+ </p>
+</blockquote></td></tr></table><table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Attributes"><strong>Attributes</strong></a></font></td></tr><tr><td><blockquote>
+
+ <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Common Attributes"><!--()--></a><a name="Common_Attributes"><strong>Common Attributes</strong></a></font></td></tr><tr><td><blockquote>
+ <table border="1" cellpadding="5"><tr><th width="15%" bgcolor="#023264"><font color="#ffffff">Attribute</font></th><th width="85%" bgcolor="#023264"><font color="#ffffff">Description</font></th></tr><tr><td align="left" valign="center"><strong><code>className</code></strong></td><td align="left" valign="center">
+ Required, as there is no default
+ </td></tr><tr><td align="left" valign="center"><code>optionFlag</code></td><td align="left" valign="center">
+ If you want the interceptor to trigger on certain message depending on the message's option flag,
+ you can setup the interceptors flag here.
+ The default value is <code>0</code>, meaning this interceptor will trigger on all messages.
+ </td></tr></table>
+ </blockquote></td></tr></table>
+
+ <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="org.apache.catalina.tribes.group.interceptors.DomainFilterInterceptor Attributes"><!--()--></a><a name="org.apache.catalina.tribes.group.interceptors.DomainFilterInterceptor_Attributes"><strong>org.apache.catalina.tribes.group.interceptors.DomainFilterInterceptor Attributes</strong></a></font></td></tr><tr><td><blockquote>
+ <table border="1" cellpadding="5"><tr><th width="15%" bgcolor="#023264"><font color="#ffffff">Attribute</font></th><th width="85%" bgcolor="#023264"><font color="#ffffff">Description</font></th></tr><tr><td align="left" valign="center"><strong><code>domain</code></strong></td><td align="left" valign="center">
+ The logical cluster domain that this Interceptor accepts.
+ Two different type of values are possible:<br>
+ 1. Regular string values like "staging-domain" or "tomcat-cluster" will be converted into bytes
+ using ISO-8859-1 encoding.<br>
+ 2. byte array in string form, for example {216,123,12,3}<br>
+ </td></tr></table>
+ </blockquote></td></tr></table>
+ <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="org.apache.catalina.tribes.group.interceptors.MessageDispatch15Interceptor Attributes"><!--()--></a><a name="org.apache.catalina.tribes.group.interceptors.MessageDispatch15Interceptor_Attributes"><strong>org.apache.catalina.tribes.group.interceptors.MessageDispatch15Interceptor Attributes</strong></a></font></td></tr><tr><td><blockquote>
+ <table border="1" cellpadding="5"><tr><th width="15%" bgcolor="#023264"><font color="#ffffff">Attribute</font></th><th width="85%" bgcolor="#023264"><font color="#ffffff">Description</font></th></tr><tr><td align="left" valign="center"><strong><code>className</code></strong></td><td align="left" valign="center">
+ Required, This dispatcher uses JDK 1.5 java.util.concurrent package
+ </td></tr><tr><td align="left" valign="center"><code>optionFlag</code></td><td align="left" valign="center">
+ The default and hard coded value is <code>8 (org.apache.catalina.tribes.Channel.SEND_OPTIONS_ASYNCHRONOUS)</code>.
+ The dispatcher will trigger on this value only, as it is predefined by Tribes.
+ The other attributes are inherited from its base class <code>org.apache.catalina.tribes.group.interceptors.MessageDispatchInterceptor</code>.
+ </td></tr><tr><td align="left" valign="center"><code>maxThreads</code></td><td align="left" valign="center">
+ The maximum number of threads in this pool, default is 10.
+ </td></tr><tr><td align="left" valign="center"><code>maxSpareThreads</code></td><td align="left" valign="center">
+ The number of threads to keep in the pool, default is 2.
+ </td></tr><tr><td align="left" valign="center"><code>keepAliveTime</code></td><td align="left" valign="center">
+ Maximum number of milliseconds of until Idle thread terminates. Default value is 5000(5 seconds).
+ </td></tr></table>
+ </blockquote></td></tr></table>
+ <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="org.apache.catalina.tribes.group.interceptors.MessageDispatchInterceptor Attributes"><!--()--></a><a name="org.apache.catalina.tribes.group.interceptors.MessageDispatchInterceptor_Attributes"><strong>org.apache.catalina.tribes.group.interceptors.MessageDispatchInterceptor Attributes</strong></a></font></td></tr><tr><td><blockquote>
+ <table border="1" cellpadding="5"><tr><th width="15%" bgcolor="#023264"><font color="#ffffff">Attribute</font></th><th width="85%" bgcolor="#023264"><font color="#ffffff">Description</font></th></tr><tr><td align="left" valign="center"><strong><code>className</code></strong></td><td align="left" valign="center">
+ Required, Same implementation as <code>MessageDispatch15Interceptor</code>, but with JDK 1.4 compliance.
+ </td></tr><tr><td align="left" valign="center"><code>optionFlag</code></td><td align="left" valign="center">
+ The default and hard coded value is <code>8 (org.apache.catalina.tribes.Channel.SEND_OPTIONS_ASYNCHRONOUS)</code>.
+ The dispatcher will trigger on this value only, as it is predefined by Tribes.
+ </td></tr><tr><td align="left" valign="center"><code>alwaysSend</code></td><td align="left" valign="center">
+ What behavior should be executed when the dispatch queue is full. If <code>true</code> (default), then the message is
+ is sent synchronously, if <code>false</code> an error is thrown.
+ </td></tr><tr><td align="left" valign="center"><code>maxQueueSize</code></td><td align="left" valign="center">
+ Size in bytes of the dispatch queue, the default value is <code> 1024*1024*64 (64MB)</code> sets the maximum queue size for the dispatch queue
+ if the queue fills up, one can trigger the behavior, if <code>alwaysSend</code> is set to true, the message will be sent synchronously
+ if the flag is false, an error is thrown
+ </td></tr></table>
+ </blockquote></td></tr></table>
+ <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="org.apache.catalina.tribes.group.interceptors.TcpFailureDetector Attributes"><!--()--></a><a name="org.apache.catalina.tribes.group.interceptors.TcpFailureDetector_Attributes"><strong>org.apache.catalina.tribes.group.interceptors.TcpFailureDetector Attributes</strong></a></font></td></tr><tr><td><blockquote>
+ <table border="1" cellpadding="5"><tr><th width="15%" bgcolor="#023264"><font color="#ffffff">Attribute</font></th><th width="85%" bgcolor="#023264"><font color="#ffffff">Description</font></th></tr><tr><td align="left" valign="center"><code>connectTimeout</code></td><td align="left" valign="center">
+ Specifies the timeout, in milliseconds, to use when attempting a TCP connection
+ to the suspect node. Default is 1000.
+ </td></tr><tr><td align="left" valign="center"><code>performSendTest</code></td><td align="left" valign="center">
+ If true is set, send a test message to the suspect node. Default is true.
+ </td></tr><tr><td align="left" valign="center"><code>performReadTest</code></td><td align="left" valign="center">
+ If true is set, read the response of the test message that sent. Default is false.
+ <strong>Note: </strong>if <code>performSendTest</code> is false, this attribute will have no effect.
+ </td></tr><tr><td align="left" valign="center"><code>readTestTimeout</code></td><td align="left" valign="center">
+ Specifies the timeout, in milliseconds, to use when performing a read test
+ to the suspicious node. Default is 5000.
+ </td></tr></table>
+ </blockquote></td></tr></table>
+ <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="org.apache.catalina.tribes.group.interceptors.TcpPingInterceptor Attributes"><!--()--></a><a name="org.apache.catalina.tribes.group.interceptors.TcpPingInterceptor_Attributes"><strong>org.apache.catalina.tribes.group.interceptors.TcpPingInterceptor Attributes</strong></a></font></td></tr><tr><td><blockquote>
+ <table border="1" cellpadding="5"><tr><th width="15%" bgcolor="#023264"><font color="#ffffff">Attribute</font></th><th width="85%" bgcolor="#023264"><font color="#ffffff">Description</font></th></tr><tr><td align="left" valign="center"><code>interval</code></td><td align="left" valign="center">
+ If useThread == true, defines the interval of sending a ping message.
+ default is 1000 ms.
+ </td></tr><tr><td align="left" valign="center"><code>useThread</code></td><td align="left" valign="center">
+ Flag of whether to start a thread for sending a ping message.
+ If set to true, this interceptor will start a local thread for sending a ping message.
+ if set to false, channel heartbeat will send a ping message.
+ default is false.
+ </td></tr></table>
+ </blockquote></td></tr></table>
+ <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="org.apache.catalina.tribes.group.interceptors.ThroughputInterceptor Attributes"><!--()--></a><a name="org.apache.catalina.tribes.group.interceptors.ThroughputInterceptor_Attributes"><strong>org.apache.catalina.tribes.group.interceptors.ThroughputInterceptor Attributes</strong></a></font></td></tr><tr><td><blockquote>
+ <table border="1" cellpadding="5"><tr><th width="15%" bgcolor="#023264"><font color="#ffffff">Attribute</font></th><th width="85%" bgcolor="#023264"><font color="#ffffff">Description</font></th></tr><tr><td align="left" valign="center"><code>interval</code></td><td align="left" valign="center">
+ Defines the interval in number of messages when we are to report the throughput statistics.
+ The report is logged to the <code>org.apache.juli.logging.LogFactory.getLog(ThroughputInterceptor.class)</code>
+ logger under the <code>INFO</code> level.
+ Default value is to report every <code>10000</code> messages.
+ </td></tr></table>
+ </blockquote></td></tr></table>
+
+ <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Nested element StaticMember Attributes"><!--()--></a><a name="Nested_element_StaticMember_Attributes"><strong>Nested element StaticMember Attributes</strong></a></font></td></tr><tr><td><blockquote>
+ <table border="1" cellpadding="5"><tr><th width="15%" bgcolor="#023264"><font color="#ffffff">Attribute</font></th><th width="85%" bgcolor="#023264"><font color="#ffffff">Description</font></th></tr><tr><td align="left" valign="center"><strong><code>className</code></strong></td><td align="left" valign="center">
+ Only one implementation available:<code>org.apache.catalina.tribes.membership.StaticMember</code>
+ </td></tr><tr><td align="left" valign="center"><strong><code>port</code></strong></td><td align="left" valign="center">
+ The port that this static member listens to for cluster messages
+ </td></tr><tr><td align="left" valign="center"><code>securePort</code></td><td align="left" valign="center">
+ The secure port this static member listens to for encrypted cluster messages
+ default value is <code>-1</code>, this value means the member is not listening on a secure port
+ </td></tr><tr><td align="left" valign="center"><strong><code>host</code></strong></td><td align="left" valign="center">
+ The host (or network interface) that this static member listens for cluster messages.
+ Three different type of values are possible:<br>
+ 1. IP address in the form of "216.123.1.23"<br>
+ 2. Hostnames like "tomcat01.mydomain.com" or "tomcat01" as long as they resolve correctly<br>
+ 3. byte array in string form, for example {216,123,12,3}<br>
+ </td></tr><tr><td align="left" valign="center"><strong><code>domain</code></strong></td><td align="left" valign="center">
+ The logical cluster domain for this this static member listens for cluster messages.
+ Two different type of values are possible:<br>
+ 1. Regular string values like "staging-domain" or "tomcat-cluster" will be converted into bytes
+ using ISO-8859-1 encoding.
+ 2. byte array in string form, for example {216,123,12,3}<br>
+ </td></tr><tr><td align="left" valign="center"><strong><code>uniqueId</code></strong></td><td align="left" valign="center">
+ A universally uniqueId for this static member.
+ The values must be 16 bytes in the following form:<br>
+ 1. byte array in string form, for example {0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15}<br>
+ </td></tr></table>
+ </blockquote></td></tr></table>
+
+
+</blockquote></td></tr></table></td></tr><!--FOOTER SEPARATOR--><tr><td colspan="2"><hr noshade="noshade" size="1"></td></tr><!--PAGE FOOTER--><tr><td colspan="2"><div align="center"><font color="#525D76" size="-1"><em>
+ Copyright © 1999-2014, Apache Software Foundation
+ </em></font></div></td></tr></table></body></html>
\ No newline at end of file
diff --git a/tomcat-uid/webapps/docs/config/cluster-listener.html b/tomcat-uid/webapps/docs/config/cluster-listener.html
new file mode 100644
index 0000000..05d651a
--- /dev/null
+++ b/tomcat-uid/webapps/docs/config/cluster-listener.html
@@ -0,0 +1,40 @@
+<html><head><META http-equiv="Content-Type" content="text/html; charset=iso-8859-1"><title>Apache Tomcat Configuration Reference (6.0.39) - The ClusterListener object</title><meta name="author" content="Filip Hanik"><style type="text/css" media="print">
+ .noPrint {display: none;}
+ td#mainBody {width: 100%;}
+ </style></head><body bgcolor="#ffffff" text="#000000" link="#525D76" alink="#525D76" vlink="#525D76"><table border="0" width="100%" cellspacing="0"><!--PAGE HEADER--><tr><td><!--PROJECT LOGO--><a href="http://tomcat.apache.org/"><img src="../images/tomcat.gif" align="right" alt="
+ The Apache Tomcat Servlet/JSP Container
+ " border="0"></a></td><td><h1><font face="arial,helvetica,sanserif">Apache Tomcat 6.0</font></h1><font face="arial,helvetica,sanserif">Version 6.0.39, Jan 27 2014</font></td><td><!--APACHE LOGO--><a href="http://www.apache.org/"><img src="../images/asf-logo.gif" align="right" alt="Apache Logo" border="0"></a></td></tr></table><table border="0" width="100%" cellspacing="4"><!--HEADER SEPARATOR--><tr><td colspan="2"><hr noshade="noshade" size="1"></td></tr><tr><!--LEFT SIDE NAVIGATION--><td width="20%" valign="top" nowrap="nowrap" class="noPrint"><p><strong>Links</strong></p><ul><li><a href="../index.html">Docs Home</a></li><li><a href="index.html">Config Ref. Home</a></li></ul><p><strong>Top Level Elements</strong></p><ul><li><a href="server.html">Server</a></li><li><a href="service.html">Service</a></li></ul><p><strong>Executors</strong></p><ul><li><a href="executor.html">Executor</a></li></ul><p><strong>Connectors</strong></p><ul><li><a href="http.html">HTTP</a></li><li><a href="ajp.html">AJP</a></li></ul><p><strong>Containers</strong></p><ul><li><a href="context.html">Context</a></li><li><a href="engine.html">Engine</a></li><li><a href="host.html">Host</a></li><li><a href="cluster.html">Cluster</a></li></ul><p><strong>Nested Components</strong></p><ul><li><a href="globalresources.html">Global Resources</a></li><li><a href="listeners.html">Listeners</a></li><li><a href="loader.html">Loader</a></li><li><a href="manager.html">Manager</a></li><li><a href="realm.html">Realm</a></li><li><a href="resources.html">Resources</a></li><li><a href="valve.html">Valve</a></li></ul><p><strong>Cluster Elements</strong></p><ul><li><a href="cluster.html">Cluster</a></li><li><a href="cluster-manager.html">Manager</a></li><li><a href="cluster-channel.html">Channel</a></li><li><a href="cluster-membership.html">Channel/Membership</a></li><li><a href="cluster-sender.html">Channel/Sender</a></li><li><a href="cluster-receiver.html">Channel/Receiver</a></li><li><a href="cluster-interceptor.html">Channel/Interceptor</a></li><li><a href="cluster-valve.html">Valve</a></li><li><a href="cluster-deployer.html">Deployer</a></li><li><a href="cluster-listener.html">ClusterListener</a></li></ul><p><strong>Other</strong></p><ul><li><a href="filter.html">Filter</a></li><li><a href="systemprops.html">System properties</a></li></ul></td><!--RIGHT SIDE MAIN BODY--><td width="80%" valign="top" align="left" id="mainBody"><h1>Apache Tomcat Configuration Reference</h1><h2>The ClusterListener object</h2><table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Table of Contents"><!--()--></a><a name="Table_of_Contents"><strong>Table of Contents</strong></a></font></td></tr><tr><td><blockquote>
+<ul><li><a href="#Introduction">Introduction</a></li><li><a href="#org.apache.catalina.ha.session.ClusterSessionListener">org.apache.catalina.ha.session.ClusterSessionListener</a></li><li><a href="#org.apache.catalina.ha.session.JvmRouteSessionIDBinderListener">org.apache.catalina.ha.session.JvmRouteSessionIDBinderListener</a></li><li><a href="#Attributes">Attributes</a><ol><li><a href="#Common_Attributes">Common Attributes</a></li></ol></li></ul>
+</blockquote></td></tr></table><table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Introduction"><strong>Introduction</strong></a></font></td></tr><tr><td><blockquote>
+ <p>
+ The <code>org.apache.catalina.ha.ClusterListener</code> base class
+ lets you listen in on messages that are received by the <code>Cluster</code> component.
+ </p>
+
+</blockquote></td></tr></table><table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="org.apache.catalina.ha.session.ClusterSessionListener"><strong>org.apache.catalina.ha.session.ClusterSessionListener</strong></a></font></td></tr><tr><td><blockquote>
+ <p>
+ When using the DeltaManager, the messages are received by the Cluster object and are propagated to the
+ to the manager through this listener.
+ </p>
+</blockquote></td></tr></table><table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="org.apache.catalina.ha.session.JvmRouteSessionIDBinderListener"><strong>org.apache.catalina.ha.session.JvmRouteSessionIDBinderListener</strong></a></font></td></tr><tr><td><blockquote>
+ <p>
+ Listens for session Id changes. This listener is only used if you are using mod_jk
+ along with the <code>jvmRoute</code> attribute where the session Id can change.
+ In the event of a change, the <code>JvmRouteBinderValve</code> will broadcast the
+ session change and it will get picked up by this listener.
+ </p>
+</blockquote></td></tr></table><table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Attributes"><strong>Attributes</strong></a></font></td></tr><tr><td><blockquote>
+
+ <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Common Attributes"><!--()--></a><a name="Common_Attributes"><strong>Common Attributes</strong></a></font></td></tr><tr><td><blockquote>
+
+ <table border="1" cellpadding="5"><tr><th width="15%" bgcolor="#023264"><font color="#ffffff">Attribute</font></th><th width="85%" bgcolor="#023264"><font color="#ffffff">Description</font></th></tr><tr><td align="left" valign="center"><strong><code>className</code></strong></td><td align="left" valign="center">
+
+ </td></tr></table>
+
+
+ </blockquote></td></tr></table>
+
+
+</blockquote></td></tr></table></td></tr><!--FOOTER SEPARATOR--><tr><td colspan="2"><hr noshade="noshade" size="1"></td></tr><!--PAGE FOOTER--><tr><td colspan="2"><div align="center"><font color="#525D76" size="-1"><em>
+ Copyright © 1999-2014, Apache Software Foundation
+ </em></font></div></td></tr></table></body></html>
\ No newline at end of file
diff --git a/tomcat-uid/webapps/docs/config/cluster-manager.html b/tomcat-uid/webapps/docs/config/cluster-manager.html
new file mode 100644
index 0000000..b24f122
--- /dev/null
+++ b/tomcat-uid/webapps/docs/config/cluster-manager.html
@@ -0,0 +1,112 @@
+<html><head><META http-equiv="Content-Type" content="text/html; charset=iso-8859-1"><title>Apache Tomcat Configuration Reference (6.0.39) - The ClusterManager object</title><meta name="author" content="Filip Hanik"><style type="text/css" media="print">
+ .noPrint {display: none;}
+ td#mainBody {width: 100%;}
+ </style></head><body bgcolor="#ffffff" text="#000000" link="#525D76" alink="#525D76" vlink="#525D76"><table border="0" width="100%" cellspacing="0"><!--PAGE HEADER--><tr><td><!--PROJECT LOGO--><a href="http://tomcat.apache.org/"><img src="../images/tomcat.gif" align="right" alt="
+ The Apache Tomcat Servlet/JSP Container
+ " border="0"></a></td><td><h1><font face="arial,helvetica,sanserif">Apache Tomcat 6.0</font></h1><font face="arial,helvetica,sanserif">Version 6.0.39, Jan 27 2014</font></td><td><!--APACHE LOGO--><a href="http://www.apache.org/"><img src="../images/asf-logo.gif" align="right" alt="Apache Logo" border="0"></a></td></tr></table><table border="0" width="100%" cellspacing="4"><!--HEADER SEPARATOR--><tr><td colspan="2"><hr noshade="noshade" size="1"></td></tr><tr><!--LEFT SIDE NAVIGATION--><td width="20%" valign="top" nowrap="nowrap" class="noPrint"><p><strong>Links</strong></p><ul><li><a href="../index.html">Docs Home</a></li><li><a href="index.html">Config Ref. Home</a></li></ul><p><strong>Top Level Elements</strong></p><ul><li><a href="server.html">Server</a></li><li><a href="service.html">Service</a></li></ul><p><strong>Executors</strong></p><ul><li><a href="executor.html">Executor</a></li></ul><p><strong>Connectors</strong></p><ul><li><a href="http.html">HTTP</a></li><li><a href="ajp.html">AJP</a></li></ul><p><strong>Containers</strong></p><ul><li><a href="context.html">Context</a></li><li><a href="engine.html">Engine</a></li><li><a href="host.html">Host</a></li><li><a href="cluster.html">Cluster</a></li></ul><p><strong>Nested Components</strong></p><ul><li><a href="globalresources.html">Global Resources</a></li><li><a href="listeners.html">Listeners</a></li><li><a href="loader.html">Loader</a></li><li><a href="manager.html">Manager</a></li><li><a href="realm.html">Realm</a></li><li><a href="resources.html">Resources</a></li><li><a href="valve.html">Valve</a></li></ul><p><strong>Cluster Elements</strong></p><ul><li><a href="cluster.html">Cluster</a></li><li><a href="cluster-manager.html">Manager</a></li><li><a href="cluster-channel.html">Channel</a></li><li><a href="cluster-membership.html">Channel/Membership</a></li><li><a href="cluster-sender.html">Channel/Sender</a></li><li><a href="cluster-receiver.html">Channel/Receiver</a></li><li><a href="cluster-interceptor.html">Channel/Interceptor</a></li><li><a href="cluster-valve.html">Valve</a></li><li><a href="cluster-deployer.html">Deployer</a></li><li><a href="cluster-listener.html">ClusterListener</a></li></ul><p><strong>Other</strong></p><ul><li><a href="filter.html">Filter</a></li><li><a href="systemprops.html">System properties</a></li></ul></td><!--RIGHT SIDE MAIN BODY--><td width="80%" valign="top" align="left" id="mainBody"><h1>Apache Tomcat Configuration Reference</h1><h2>The ClusterManager object</h2><table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Table of Contents"><!--()--></a><a name="Table_of_Contents"><strong>Table of Contents</strong></a></font></td></tr><tr><td><blockquote>
+<ul><li><a href="#Introduction">Introduction</a></li><li><a href="#The_<Manager>">The <Manager></a></li><li><a href="#Attributes">Attributes</a><ol><li><a href="#Common_Attributes">Common Attributes</a></li><li><a href="#org.apache.catalina.ha.session.DeltaManager_Attributes">org.apache.catalina.ha.session.DeltaManager Attributes</a></li><li><a href="#org.apache.catalina.ha.session.BackupManager_Attributes">org.apache.catalina.ha.session.BackupManager Attributes</a></li></ol></li></ul>
+</blockquote></td></tr></table><table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Introduction"><strong>Introduction</strong></a></font></td></tr><tr><td><blockquote>
+ <p>A cluster manager is an extension to Tomcat's session manager interface,
+ <code>org.apache.catalina.Manager</code>.
+ A cluster manager must implement the
+ <code>org.apache.catalina.ha.ClusterManager</code> and is solely responsible
+ for how the session is replicated.<br>
+ There are currently two different managers, the
+ <code>org.apache.catalina.ha.session.DeltaManager</code> replicates deltas of
+ session data to all members in the cluster. This implementation is proven and
+ works very well, but has a limitation as it requires the cluster members to be
+ homogeneous, all nodes must deploy the same applications and be exact
+ replicas. The <code>org.apache.catalina.ha.session.BackupManager</code> also
+ replicates deltas but only to one backup node. The location of the backup node
+ is known to all nodes in the cluster. It also supports heterogeneous
+ deployments, so the manager knows at what locations the web application is
+ deployed.</p>
+</blockquote></td></tr></table><table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="The <Manager>"><!--()--></a><a name="The_<Manager>"><strong>The <Manager></strong></a></font></td></tr><tr><td><blockquote>
+ <p>The <code><Manager></code> element defined inside the
+ <code><Cluster></code> element is the template defined for all web
+ applications that are marked <code><distributable/></code> in their
+ <code>web.xml</code> file. However, you can still override the manager
+ implementation on a per web application basis, by putting the
+ <code><Manager></code> inside the <code><Context></code> element
+ either in the <code><a href="context.html">context.xml</a></code> file or the
+ <code><a href="index.html">server.xml</a></code> file.</p>
+</blockquote></td></tr></table><table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Attributes"><strong>Attributes</strong></a></font></td></tr><tr><td><blockquote>
+ <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Common Attributes"><!--()--></a><a name="Common_Attributes"><strong>Common Attributes</strong></a></font></td></tr><tr><td><blockquote>
+ <table border="1" cellpadding="5"><tr><th width="15%" bgcolor="#023264"><font color="#ffffff">Attribute</font></th><th width="85%" bgcolor="#023264"><font color="#ffffff">Description</font></th></tr><tr><td align="left" valign="center"><strong><code>className</code></strong></td><td align="left" valign="center">
+ </td></tr><tr><td align="left" valign="center"><code>name</code></td><td align="left" valign="center">
+ <b>The name of this cluster manager, the name is used to identify a
+ session manager on a node. The name might get modified by the
+ <code>Cluster</code> element to make it unique in the container.</b>
+ </td></tr><tr><td align="left" valign="center"><code>defaultMode</code></td><td align="left" valign="center">
+ <b>Deprecated since 6.0.0</b>
+ </td></tr><tr><td align="left" valign="center"><code>notifyListenersOnReplication</code></td><td align="left" valign="center">
+ Set to <code>true</code> if you wish to have session listeners notified
+ when session attributes are being replicated or removed across Tomcat
+ nodes in the cluster.
+ </td></tr><tr><td align="left" valign="center"><code>expireSessionsOnShutdown</code></td><td align="left" valign="center">
+ When a web application is being shutdown, Tomcat issues an expire call
+ to each session to notify all the listeners. If you wish for all
+ sessions to expire on all nodes when a shutdown occurs on one node, set
+ this value to <code>true</code>. Default value is <code>false</code>.
+ </td></tr></table>
+ </blockquote></td></tr></table>
+ <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="org.apache.catalina.ha.session.DeltaManager Attributes"><!--()--></a><a name="org.apache.catalina.ha.session.DeltaManager_Attributes"><strong>org.apache.catalina.ha.session.DeltaManager Attributes</strong></a></font></td></tr><tr><td><blockquote>
+ <table border="1" cellpadding="5"><tr><th width="15%" bgcolor="#023264"><font color="#ffffff">Attribute</font></th><th width="85%" bgcolor="#023264"><font color="#ffffff">Description</font></th></tr><tr><td align="left" valign="center"><code>domainReplication</code></td><td align="left" valign="center">
+ <b>Deprecated since 6.0.0</b><br>
+ If you wish sessions to be replicated only to members that have the
+ same logical domain set, use
+ <code><a href="cluster-interceptor.html">DomainFilterInterceptor </a></code>.
+ </td></tr><tr><td align="left" valign="center"><code>expireSessionsOnShutdown</code></td><td align="left" valign="center">
+ When a web application is being shutdown, Tomcat issues an expire call
+ to each session to notify all the listeners. If you wish for all
+ sessions to expire on all nodes when a shutdown occurs on one node, set
+ this value to <code>true</code>.
+ Default value is <code>false</code>.
+ </td></tr><tr><td align="left" valign="center"><code>maxActiveSessions</code></td><td align="left" valign="center">
+ The maximum number of active sessions that will be created by this
+ Manager, or -1 (the default) for no limit. For this manager, all
+ sessions are counted as active sessions irrespective if whether or not
+ the current node is the primary node for the session.
+ </td></tr><tr><td align="left" valign="center"><code>notifySessionListenersOnReplication</code></td><td align="left" valign="center">
+ Set to <code>true</code> if you wish to have session listeners notified
+ when sessions are created and expired across Tomcat nodes in the
+ cluster.
+ </td></tr><tr><td align="left" valign="center"><code>notifyContainerListenersOnReplication</code></td><td align="left" valign="center">
+ Set to <code>true</code> if you wish to have container listeners notified
+ across Tomcat nodes in the cluster.
+ </td></tr><tr><td align="left" valign="center"><code>stateTransferTimeout</code></td><td align="left" valign="center">
+ The time in seconds to wait for a session state transfer to complete
+ from another node when a node is starting up.
+ Default value is <code>60</code> seconds.
+ </td></tr><tr><td align="left" valign="center"><code>sessionAttributeFilter</code></td><td align="left" valign="center">
+ A regular expression used to filter, which session attributes will
+ be replicated. An attribute will only be replicated, if its name
+ matches this pattern. If the pattern is not set (default), all
+ attributes are eligible for replication. As an example, the value
+ <code>^(userName|sessionHistory)$</code> will only replicate the two
+ session attributes named <code>userName</code> and
+ <code>sessionHistory</code>.
+ </td></tr></table>
+ </blockquote></td></tr></table>
+ <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="org.apache.catalina.ha.session.BackupManager Attributes"><!--()--></a><a name="org.apache.catalina.ha.session.BackupManager_Attributes"><strong>org.apache.catalina.ha.session.BackupManager Attributes</strong></a></font></td></tr><tr><td><blockquote>
+ <table border="1" cellpadding="5"><tr><th width="15%" bgcolor="#023264"><font color="#ffffff">Attribute</font></th><th width="85%" bgcolor="#023264"><font color="#ffffff">Description</font></th></tr><tr><td align="left" valign="center"><code>mapSendOptions</code></td><td align="left" valign="center">
+ The backup manager uses a replicated map, this map is sending and
+ receiving messages. You can setup the flag for how this map is sending
+ messages, the default value is <code>6</code>(synchronous).<br>
+ Note that if you use asynchronous messaging it is possible for update
+ messages for a session to be processed by the receiving node in a
+ different order to the order in which they were sent.
+ </td></tr><tr><td align="left" valign="center"><code>maxActiveSessions</code></td><td align="left" valign="center">
+ The maximum number of active sessions that will be created by this
+ Manager, or -1 (the default) for no limit. For this manager, only
+ sessions where the current node is the primary node for the session are
+ considered active sessions.
+ </td></tr><tr><td align="left" valign="center"><code>rpcTimeout</code></td><td align="left" valign="center">
+ Timeout for RPC message used for broadcast and transfer state from
+ another map.
+ Default value is <code>15000</code> milliseconds.
+ </td></tr></table>
+ </blockquote></td></tr></table>
+</blockquote></td></tr></table></td></tr><!--FOOTER SEPARATOR--><tr><td colspan="2"><hr noshade="noshade" size="1"></td></tr><!--PAGE FOOTER--><tr><td colspan="2"><div align="center"><font color="#525D76" size="-1"><em>
+ Copyright © 1999-2014, Apache Software Foundation
+ </em></font></div></td></tr></table></body></html>
\ No newline at end of file
diff --git a/tomcat-uid/webapps/docs/config/cluster-membership.html b/tomcat-uid/webapps/docs/config/cluster-membership.html
new file mode 100644
index 0000000..8503a0a
--- /dev/null
+++ b/tomcat-uid/webapps/docs/config/cluster-membership.html
@@ -0,0 +1,113 @@
+<html><head><META http-equiv="Content-Type" content="text/html; charset=iso-8859-1"><title>Apache Tomcat Configuration Reference (6.0.39) - The Cluster Membership object</title><meta name="author" content="Filip Hanik"><style type="text/css" media="print">
+ .noPrint {display: none;}
+ td#mainBody {width: 100%;}
+ </style></head><body bgcolor="#ffffff" text="#000000" link="#525D76" alink="#525D76" vlink="#525D76"><table border="0" width="100%" cellspacing="0"><!--PAGE HEADER--><tr><td><!--PROJECT LOGO--><a href="http://tomcat.apache.org/"><img src="../images/tomcat.gif" align="right" alt="
+ The Apache Tomcat Servlet/JSP Container
+ " border="0"></a></td><td><h1><font face="arial,helvetica,sanserif">Apache Tomcat 6.0</font></h1><font face="arial,helvetica,sanserif">Version 6.0.39, Jan 27 2014</font></td><td><!--APACHE LOGO--><a href="http://www.apache.org/"><img src="../images/asf-logo.gif" align="right" alt="Apache Logo" border="0"></a></td></tr></table><table border="0" width="100%" cellspacing="4"><!--HEADER SEPARATOR--><tr><td colspan="2"><hr noshade="noshade" size="1"></td></tr><tr><!--LEFT SIDE NAVIGATION--><td width="20%" valign="top" nowrap="nowrap" class="noPrint"><p><strong>Links</strong></p><ul><li><a href="../index.html">Docs Home</a></li><li><a href="index.html">Config Ref. Home</a></li></ul><p><strong>Top Level Elements</strong></p><ul><li><a href="server.html">Server</a></li><li><a href="service.html">Service</a></li></ul><p><strong>Executors</strong></p><ul><li><a href="executor.html">Executor</a></li></ul><p><strong>Connectors</strong></p><ul><li><a href="http.html">HTTP</a></li><li><a href="ajp.html">AJP</a></li></ul><p><strong>Containers</strong></p><ul><li><a href="context.html">Context</a></li><li><a href="engine.html">Engine</a></li><li><a href="host.html">Host</a></li><li><a href="cluster.html">Cluster</a></li></ul><p><strong>Nested Components</strong></p><ul><li><a href="globalresources.html">Global Resources</a></li><li><a href="listeners.html">Listeners</a></li><li><a href="loader.html">Loader</a></li><li><a href="manager.html">Manager</a></li><li><a href="realm.html">Realm</a></li><li><a href="resources.html">Resources</a></li><li><a href="valve.html">Valve</a></li></ul><p><strong>Cluster Elements</strong></p><ul><li><a href="cluster.html">Cluster</a></li><li><a href="cluster-manager.html">Manager</a></li><li><a href="cluster-channel.html">Channel</a></li><li><a href="cluster-membership.html">Channel/Membership</a></li><li><a href="cluster-sender.html">Channel/Sender</a></li><li><a href="cluster-receiver.html">Channel/Receiver</a></li><li><a href="cluster-interceptor.html">Channel/Interceptor</a></li><li><a href="cluster-valve.html">Valve</a></li><li><a href="cluster-deployer.html">Deployer</a></li><li><a href="cluster-listener.html">ClusterListener</a></li></ul><p><strong>Other</strong></p><ul><li><a href="filter.html">Filter</a></li><li><a href="systemprops.html">System properties</a></li></ul></td><!--RIGHT SIDE MAIN BODY--><td width="80%" valign="top" align="left" id="mainBody"><h1>Apache Tomcat Configuration Reference</h1><h2>The Cluster Membership object</h2><table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Table of Contents"><!--()--></a><a name="Table_of_Contents"><strong>Table of Contents</strong></a></font></td></tr><tr><td><blockquote>
+<ul><li><a href="#Introduction">Introduction</a></li><li><a href="#Default_Implementation">Default Implementation</a></li><li><a href="#Attributes">Attributes</a><ol><li><a href="#Multicast_Attributes">Multicast Attributes</a></li></ol></li></ul>
+</blockquote></td></tr></table><table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Introduction"><strong>Introduction</strong></a></font></td></tr><tr><td><blockquote>
+ <p>
+ The membership component in the Apache Tribes <a href="cluster-channel.html">Channel</a> is responsible
+ for dynamic discovery of other members(nodes) in the cluster.
+ </p>
+</blockquote></td></tr></table><table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Default Implementation"><!--()--></a><a name="Default_Implementation"><strong>Default Implementation</strong></a></font></td></tr><tr><td><blockquote>
+ <p>
+ The default implementation of the cluster group notification is built on top of multicast heartbeats
+ sent using UDP packets to a multicast IP address.
+ Cluster members are grouped together by using the same multicast address/port combination.
+ Each member sends out a heartbeat with a given interval (<code>frequency</code>), and this
+ heartbeat is used for dynamic discovery.
+ In a similar fashion, if a heartbeat has not been received in a timeframe specified by <code>dropTime</code>
+ ms. a member is considered suspect and the channel and any membership listener will be notified.
+ </p>
+</blockquote></td></tr></table><table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Attributes"><strong>Attributes</strong></a></font></td></tr><tr><td><blockquote>
+
+ <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Multicast Attributes"><!--()--></a><a name="Multicast_Attributes"><strong>Multicast Attributes</strong></a></font></td></tr><tr><td><blockquote>
+
+ <table border="1" cellpadding="5"><tr><th width="15%" bgcolor="#023264"><font color="#ffffff">Attribute</font></th><th width="85%" bgcolor="#023264"><font color="#ffffff">Description</font></th></tr><tr><td align="left" valign="center"><strong><code>className</code></strong></td><td align="left" valign="center">
+ <p>
+ The default value is <code>org.apache.catalina.tribes.membership.McastService</code>
+ and is currently the only implementation.
+ This implementation uses multicast heartbeats for member discovery.
+ </p>
+ </td></tr><tr><td align="left" valign="center"><code>address</code></td><td align="left" valign="center">
+ <p>
+ The multicast address that the membership will broadcast its presence and listen
+ for other heartbeats on. The default value is <code>228.0.0.4</code>
+ Make sure your network is enabled for multicast traffic.<br>
+ The multicast address, in conjunction with the <code>port</code> is what
+ creates a cluster group. To divide up your farm into several different group, or to
+ split up QA from production, change the <code>port</code> or the <code>address</code>
+ <br>Previously known as mcastAddr.
+ </p>
+ </td></tr><tr><td align="left" valign="center"><code>port</code></td><td align="left" valign="center">
+ <p>
+ The multicast port, the default value is <code>45564</code><br>
+ The multicast port, in conjunction with the <code>address</code> is what
+ creates a cluster group. To divide up your farm into several different group, or to
+ split up QA from production, change the <code>port</code> or the <code>address</code>
+ </p>
+ </td></tr><tr><td align="left" valign="center"><code>frequency</code></td><td align="left" valign="center">
+ <p>
+ The frequency in milliseconds in which heartbeats are sent out. The default value is <code>500</code> ms.<br>
+ In most cases the default value is sufficient. Changing this value, simply changes the interval in between heartbeats.
+ </p>
+ </td></tr><tr><td align="left" valign="center"><code>dropTime</code></td><td align="left" valign="center">
+ <p>
+ The membership component will time out members and notify the Channel if a member fails to send a heartbeat within
+ a give time. The default value is <code>3000</code> ms. This means, that if a heartbeat is not received from a
+ member in that timeframe, the membership component will notify the cluster of this.<br>
+ On a high latency network you may wish to increase this value, to protect against false positives.<br>
+ Apache Tribes also provides a <a href="cluster-interceptor.html#tcpfailuredetector"><code>TcpFailureDetector</code></a> that will
+ verify a timeout using a TCP connection when a heartbeat timeout has occurred. This protects against false positives.
+ </p>
+ </td></tr><tr><td align="left" valign="center"><code>bind</code></td><td align="left" valign="center">
+ <p>
+ Use this attribute if you wish to bind your multicast traffic to a specific network interface.
+ By default, or when this attribute is unset, it tries to bind to <code>0.0.0.0</code> and sometimes on multihomed hosts
+ this becomes a problem.
+ </p>
+ </td></tr><tr><td align="left" valign="center"><code>ttl</code></td><td align="left" valign="center">
+ <p>
+ The time-to-live setting for the multicast heartbeats.
+ This setting should be a value between 0 and 255. The default value is VM implementation specific.
+ </p>
+ </td></tr><tr><td align="left" valign="center"><code>domain</code></td><td align="left" valign="center">
+ <p>
+ Apache Tribes has the ability to logically group members into domains, by using this domain attribute.
+ The <code>org.apache.catalina.tribes.Member.getDomain()</code> method returns the value specified here.
+ </p>
+ </td></tr><tr><td align="left" valign="center"><code>soTimeout</code></td><td align="left" valign="center">
+ <p>
+ The sending and receiving of heartbeats is done on a single thread, hence to avoid blocking this thread forever,
+ you can control the <code>SO_TIMEOUT</code> value on this socket.<br>
+ If a value smaller or equal to 0 is presented, the code will default this value to frequency
+ </p>
+ </td></tr><tr><td align="left" valign="center"><code>recoveryEnabled</code></td><td align="left" valign="center">
+ <p>
+ In case of a network failure, Java multicast socket don't transparently fail over, instead the socket will continuously
+ throw IOException upon each receive request. When recoveryEnabled is set to true, this will close the multicast socket
+ and open a new socket with the same properties as defined above.<br>
+ The default is <code>true</code>. <br>
+ </p>
+ </td></tr><tr><td align="left" valign="center"><code>recoveryCounter</code></td><td align="left" valign="center">
+ <p>
+ When <code>recoveryEnabled==true</code> this value indicates how many times we will try recovery.
+ The default is <code>10</code>. <br>
+ </p>
+ </td></tr><tr><td align="left" valign="center"><code>recoverySleepTime</code></td><td align="left" valign="center">
+ <p>
+ When <code>recoveryEnabled==true</code> this value indicates how long time (in milliseconds)
+ the system will sleep in between recovery attempts, until we either recovered successfully or we have reached the
+ recoveryCounter limit.
+ The default is <code>5000</code> (5 seconds). <br>
+ </p>
+ </td></tr></table>
+
+
+ </blockquote></td></tr></table>
+
+
+</blockquote></td></tr></table></td></tr><!--FOOTER SEPARATOR--><tr><td colspan="2"><hr noshade="noshade" size="1"></td></tr><!--PAGE FOOTER--><tr><td colspan="2"><div align="center"><font color="#525D76" size="-1"><em>
+ Copyright © 1999-2014, Apache Software Foundation
+ </em></font></div></td></tr></table></body></html>
\ No newline at end of file
diff --git a/tomcat-uid/webapps/docs/config/cluster-receiver.html b/tomcat-uid/webapps/docs/config/cluster-receiver.html
new file mode 100644
index 0000000..2ae65ec
--- /dev/null
+++ b/tomcat-uid/webapps/docs/config/cluster-receiver.html
@@ -0,0 +1,108 @@
+<html><head><META http-equiv="Content-Type" content="text/html; charset=iso-8859-1"><title>Apache Tomcat Configuration Reference (6.0.39) - The Cluster Receiver object</title><meta name="author" content="Filip Hanik"><style type="text/css" media="print">
+ .noPrint {display: none;}
+ td#mainBody {width: 100%;}
+ </style></head><body bgcolor="#ffffff" text="#000000" link="#525D76" alink="#525D76" vlink="#525D76"><table border="0" width="100%" cellspacing="0"><!--PAGE HEADER--><tr><td><!--PROJECT LOGO--><a href="http://tomcat.apache.org/"><img src="../images/tomcat.gif" align="right" alt="
+ The Apache Tomcat Servlet/JSP Container
+ " border="0"></a></td><td><h1><font face="arial,helvetica,sanserif">Apache Tomcat 6.0</font></h1><font face="arial,helvetica,sanserif">Version 6.0.39, Jan 27 2014</font></td><td><!--APACHE LOGO--><a href="http://www.apache.org/"><img src="../images/asf-logo.gif" align="right" alt="Apache Logo" border="0"></a></td></tr></table><table border="0" width="100%" cellspacing="4"><!--HEADER SEPARATOR--><tr><td colspan="2"><hr noshade="noshade" size="1"></td></tr><tr><!--LEFT SIDE NAVIGATION--><td width="20%" valign="top" nowrap="nowrap" class="noPrint"><p><strong>Links</strong></p><ul><li><a href="../index.html">Docs Home</a></li><li><a href="index.html">Config Ref. Home</a></li></ul><p><strong>Top Level Elements</strong></p><ul><li><a href="server.html">Server</a></li><li><a href="service.html">Service</a></li></ul><p><strong>Executors</strong></p><ul><li><a href="executor.html">Executor</a></li></ul><p><strong>Connectors</strong></p><ul><li><a href="http.html">HTTP</a></li><li><a href="ajp.html">AJP</a></li></ul><p><strong>Containers</strong></p><ul><li><a href="context.html">Context</a></li><li><a href="engine.html">Engine</a></li><li><a href="host.html">Host</a></li><li><a href="cluster.html">Cluster</a></li></ul><p><strong>Nested Components</strong></p><ul><li><a href="globalresources.html">Global Resources</a></li><li><a href="listeners.html">Listeners</a></li><li><a href="loader.html">Loader</a></li><li><a href="manager.html">Manager</a></li><li><a href="realm.html">Realm</a></li><li><a href="resources.html">Resources</a></li><li><a href="valve.html">Valve</a></li></ul><p><strong>Cluster Elements</strong></p><ul><li><a href="cluster.html">Cluster</a></li><li><a href="cluster-manager.html">Manager</a></li><li><a href="cluster-channel.html">Channel</a></li><li><a href="cluster-membership.html">Channel/Membership</a></li><li><a href="cluster-sender.html">Channel/Sender</a></li><li><a href="cluster-receiver.html">Channel/Receiver</a></li><li><a href="cluster-interceptor.html">Channel/Interceptor</a></li><li><a href="cluster-valve.html">Valve</a></li><li><a href="cluster-deployer.html">Deployer</a></li><li><a href="cluster-listener.html">ClusterListener</a></li></ul><p><strong>Other</strong></p><ul><li><a href="filter.html">Filter</a></li><li><a href="systemprops.html">System properties</a></li></ul></td><!--RIGHT SIDE MAIN BODY--><td width="80%" valign="top" align="left" id="mainBody"><h1>Apache Tomcat Configuration Reference</h1><h2>The Cluster Receiver object</h2><table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Table of Contents"><!--()--></a><a name="Table_of_Contents"><strong>Table of Contents</strong></a></font></td></tr><tr><td><blockquote>
+<ul><li><a href="#Introduction">Introduction</a></li><li><a href="#Blocking_vs_Non-Blocking_Receiver">Blocking vs Non-Blocking Receiver</a></li><li><a href="#Attributes">Attributes</a><ol><li><a href="#Common_Attributes">Common Attributes</a></li><li><a href="#NioReceiver">NioReceiver</a></li><li><a href="#BioReceiver">BioReceiver</a></li></ol></li></ul>
+</blockquote></td></tr></table><table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Introduction"><strong>Introduction</strong></a></font></td></tr><tr><td><blockquote>
+ <p>
+ The receiver component is responsible for receiving cluster messages.
+ As you might notice through the configuration, is that the receiving of messages
+ and sending of messages are two different components, this is different from many other
+ frameworks, but there is a good reason for it, to decouple the logic for how messages are sent from
+ how messages are received.<br>
+ The receiver is very much like the Tomcat Connector, its the base of the thread pool
+ for incoming cluster messages. The receiver is straight forward, but all the socket settings
+ for incoming traffic are managed here.
+ </p>
+</blockquote></td></tr></table><table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Blocking vs Non-Blocking Receiver"><!--()--></a><a name="Blocking_vs_Non-Blocking_Receiver"><strong>Blocking vs Non-Blocking Receiver</strong></a></font></td></tr><tr><td><blockquote>
+ <p>
+ The receiver supports both a non blocking, <code>org.apache.catalina.tribes.transport.nio.NioReceiver</code>, and a
+ blocking, <code>org.apache.catalina.tribes.transport.bio.BioReceiver</code>. It is preferred to use the non blocking receiver
+ to be able to grow your cluster without running into thread starvation.<br>
+ Using the non blocking receiver allows you to with a very limited thread count to serve a large number of messages.
+ Usually the rule is to use 1 thread per node in the cluster for small clusters, and then depending on your message frequency
+ and your hardware, you'll find an optimal number of threads peak out at a certain number.
+ </p>
+</blockquote></td></tr></table><table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Attributes"><strong>Attributes</strong></a></font></td></tr><tr><td><blockquote>
+ <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Common Attributes"><!--()--></a><a name="Common_Attributes"><strong>Common Attributes</strong></a></font></td></tr><tr><td><blockquote>
+ <table border="1" cellpadding="5"><tr><th width="15%" bgcolor="#023264"><font color="#ffffff">Attribute</font></th><th width="85%" bgcolor="#023264"><font color="#ffffff">Description</font></th></tr><tr><td align="left" valign="center"><strong><code>className</code></strong></td><td align="left" valign="center">
+ The implementation of the receiver component. Two implementations available,
+ <code>org.apache.catalina.tribes.transport.nio.NioReceiver</code> and
+ <code>org.apache.catalina.tribes.transport.bio.BioReceiver</code>.<br>
+ The <code>org.apache.catalina.tribes.transport.nio.NioReceiver</code> is the
+ preferred implementation
+ </td></tr><tr><td align="left" valign="center"><code>address</code></td><td align="left" valign="center">
+ The address (network interface) to listen for incoming traffic.
+ Same as the bind address. The default value is <code>auto</code> and translates to
+ <code>java.net.InetAddress.getLocalHost().getHostAddress()</code>.
+ </td></tr><tr><td align="left" valign="center"><code>direct</code></td><td align="left" valign="center">
+ Possible values are <code>true</code> or <code>false</code>.
+ Set to true if you want the receiver to use direct bytebuffers when reading data
+ from the sockets.
+ </td></tr><tr><td align="left" valign="center"><code>port</code></td><td align="left" valign="center">
+ The listen port for incoming data. The default value is <code>4000</code>.
+ To avoid port conflicts the receiver will automatically bind to a free port within the range of
+ <code> port <= bindPort <= port+autoBind</code>
+ So for example, if port is 4000, and autoBind is set to 10, then the receiver will open up
+ a server socket on the first available port in the range 4000-4100.
+ </td></tr><tr><td align="left" valign="center"><code>autoBind</code></td><td align="left" valign="center">
+ Default value is <code>100</code>.
+ Use this value if you wish to automatically avoid port conflicts the cluster receiver will try to open a
+ server socket on the <code>port</code> attribute port, and then work up <code>autoBind</code> number of times.
+ </td></tr><tr><td align="left" valign="center"><code>securePort</code></td><td align="left" valign="center">
+ The secure listen port. This port is SSL enabled. If this attribute is omitted no SSL port is opened up.
+ There default value is unset, meaning there is no SSL socket available.
+ </td></tr><tr><td align="left" valign="center"><code>selectorTimeout</code></td><td align="left" valign="center">
+ The value in milliseconds for the polling timeout in the <code>NioReceiver</code>. On older versions of the JDK
+ there have been bugs, that should all now be cleared out where the selector never woke up.
+ The default value is a very high <code>5000</code> milliseconds.
+ </td></tr><tr><td align="left" valign="center"><code>maxThreads</code></td><td align="left" valign="center">
+ The maximum number of threads in the receiver thread pool. The default value is <code>6</code>
+ Adjust this value relative to the number of nodes in the cluster, the number of messages being exchanged and
+ the hardware you are running on. A higher value doesn't mean more efficiency, tune this value according to your
+ own test results.
+ </td></tr><tr><td align="left" valign="center"><code>minThreads</code></td><td align="left" valign="center">
+ Minimum number of threads to be created when the receiver is started up. Default value is <code>6</code>
+ </td></tr><tr><td align="left" valign="center"><code>ooBInline</code></td><td align="left" valign="center">
+ Boolean value for the socket OOBINLINE option. Possible values are <code>true</code> or <code>false</code>.
+ </td></tr><tr><td align="left" valign="center"><code>rxBufSize</code></td><td align="left" valign="center">
+ The receiver buffer size on the receiving sockets. Value is in bytes, the default value is <code>43800</code> bytes.
+ </td></tr><tr><td align="left" valign="center"><code>txBufSize</code></td><td align="left" valign="center">
+ The sending buffer size on the receiving sockets. Value is in bytes, the default value is <code>25188</code> bytes.
+ </td></tr><tr><td align="left" valign="center"><code>soKeepAlive</code></td><td align="left" valign="center">
+ Boolean value for the socket SO_KEEPALIVE option. Possible values are <code>true</code> or <code>false</code>.
+ </td></tr><tr><td align="left" valign="center"><code>soLingerOn</code></td><td align="left" valign="center">
+ Boolean value to determine whether to use the SO_LINGER socket option.
+ Possible values are <code>true</code> or <code>false</code>. Default value is <code>true</code>.
+ </td></tr><tr><td align="left" valign="center"><code>soLingerTime</code></td><td align="left" valign="center">
+ Sets the SO_LINGER socket option time value. The value is in seconds.
+ The default value is <code>3</code> seconds.
+ </td></tr><tr><td align="left" valign="center"><code>soReuseAddress</code></td><td align="left" valign="center">
+ Boolean value for the socket SO_REUSEADDR option. Possible values are <code>true</code> or <code>false</code>.
+ </td></tr><tr><td align="left" valign="center"><code>soTrafficClass</code></td><td align="left" valign="center">
+ Sets the traffic class level for the socket, the value is between 0 and 255.
+ Different values are defined in <a href="http://docs.oracle.com/javase/1.5.0/docs/api/java/net/Socket.html#setTrafficClass(int)">
+ java.net.Socket#setTrafficClass(int)</a>.
+ </td></tr><tr><td align="left" valign="center"><code>tcpNoDelay</code></td><td align="left" valign="center">
+ Boolean value for the socket TCP_NODELAY option. Possible values are <code>true</code> or <code>false</code>.
+ The default value is <code>true</code>
+ </td></tr><tr><td align="left" valign="center"><code>timeout</code></td><td align="left" valign="center">
+ Sets the SO_TIMEOUT option on the socket. The value is in milliseconds and the default value is <code>3000</code>
+ milliseconds.
+ </td></tr><tr><td align="left" valign="center"><code>useBufferPool</code></td><td align="left" valign="center">
+ Boolean value whether to use a shared buffer pool of cached <code>org.apache.catalina.tribes.io.XByteBuffer</code>
+ objects. If set to true, the XByteBuffer that is used to pass a message up the channel, will be recycled at the end
+ of the requests. This means that interceptors in the channel must not maintain a reference to the object
+ after the <code>org.apache.catalina.tribes.ChannelInterceptor#messageReceived</code> method has exited.
+ </td></tr></table>
+ </blockquote></td></tr></table>
+ <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="NioReceiver"><strong>NioReceiver</strong></a></font></td></tr><tr><td><blockquote>
+ </blockquote></td></tr></table>
+ <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="BioReceiver"><strong>BioReceiver</strong></a></font></td></tr><tr><td><blockquote>
+ </blockquote></td></tr></table>
+
+</blockquote></td></tr></table></td></tr><!--FOOTER SEPARATOR--><tr><td colspan="2"><hr noshade="noshade" size="1"></td></tr><!--PAGE FOOTER--><tr><td colspan="2"><div align="center"><font color="#525D76" size="-1"><em>
+ Copyright © 1999-2014, Apache Software Foundation
+ </em></font></div></td></tr></table></body></html>
\ No newline at end of file
diff --git a/tomcat-uid/webapps/docs/config/cluster-sender.html b/tomcat-uid/webapps/docs/config/cluster-sender.html
new file mode 100644
index 0000000..87b06dd
--- /dev/null
+++ b/tomcat-uid/webapps/docs/config/cluster-sender.html
@@ -0,0 +1,113 @@
+<html><head><META http-equiv="Content-Type" content="text/html; charset=iso-8859-1"><title>Apache Tomcat Configuration Reference (6.0.39) - The Cluster Sender object</title><meta name="author" content="Filip Hanik"><style type="text/css" media="print">
+ .noPrint {display: none;}
+ td#mainBody {width: 100%;}
+ </style></head><body bgcolor="#ffffff" text="#000000" link="#525D76" alink="#525D76" vlink="#525D76"><table border="0" width="100%" cellspacing="0"><!--PAGE HEADER--><tr><td><!--PROJECT LOGO--><a href="http://tomcat.apache.org/"><img src="../images/tomcat.gif" align="right" alt="
+ The Apache Tomcat Servlet/JSP Container
+ " border="0"></a></td><td><h1><font face="arial,helvetica,sanserif">Apache Tomcat 6.0</font></h1><font face="arial,helvetica,sanserif">Version 6.0.39, Jan 27 2014</font></td><td><!--APACHE LOGO--><a href="http://www.apache.org/"><img src="../images/asf-logo.gif" align="right" alt="Apache Logo" border="0"></a></td></tr></table><table border="0" width="100%" cellspacing="4"><!--HEADER SEPARATOR--><tr><td colspan="2"><hr noshade="noshade" size="1"></td></tr><tr><!--LEFT SIDE NAVIGATION--><td width="20%" valign="top" nowrap="nowrap" class="noPrint"><p><strong>Links</strong></p><ul><li><a href="../index.html">Docs Home</a></li><li><a href="index.html">Config Ref. Home</a></li></ul><p><strong>Top Level Elements</strong></p><ul><li><a href="server.html">Server</a></li><li><a href="service.html">Service</a></li></ul><p><strong>Executors</strong></p><ul><li><a href="executor.html">Executor</a></li></ul><p><strong>Connectors</strong></p><ul><li><a href="http.html">HTTP</a></li><li><a href="ajp.html">AJP</a></li></ul><p><strong>Containers</strong></p><ul><li><a href="context.html">Context</a></li><li><a href="engine.html">Engine</a></li><li><a href="host.html">Host</a></li><li><a href="cluster.html">Cluster</a></li></ul><p><strong>Nested Components</strong></p><ul><li><a href="globalresources.html">Global Resources</a></li><li><a href="listeners.html">Listeners</a></li><li><a href="loader.html">Loader</a></li><li><a href="manager.html">Manager</a></li><li><a href="realm.html">Realm</a></li><li><a href="resources.html">Resources</a></li><li><a href="valve.html">Valve</a></li></ul><p><strong>Cluster Elements</strong></p><ul><li><a href="cluster.html">Cluster</a></li><li><a href="cluster-manager.html">Manager</a></li><li><a href="cluster-channel.html">Channel</a></li><li><a href="cluster-membership.html">Channel/Membership</a></li><li><a href="cluster-sender.html">Channel/Sender</a></li><li><a href="cluster-receiver.html">Channel/Receiver</a></li><li><a href="cluster-interceptor.html">Channel/Interceptor</a></li><li><a href="cluster-valve.html">Valve</a></li><li><a href="cluster-deployer.html">Deployer</a></li><li><a href="cluster-listener.html">ClusterListener</a></li></ul><p><strong>Other</strong></p><ul><li><a href="filter.html">Filter</a></li><li><a href="systemprops.html">System properties</a></li></ul></td><!--RIGHT SIDE MAIN BODY--><td width="80%" valign="top" align="left" id="mainBody"><h1>Apache Tomcat Configuration Reference</h1><h2>The Cluster Sender object</h2><table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Table of Contents"><!--()--></a><a name="Table_of_Contents"><strong>Table of Contents</strong></a></font></td></tr><tr><td><blockquote>
+<ul><li><a href="#Introduction">Introduction</a></li><li><a href="#Concurrent_Parallel_Delivery">Concurrent Parallel Delivery</a></li><li><a href="#Nested_Elements">Nested Elements</a></li><li><a href="#Attributes">Attributes</a><ol><li><a href="#Common_Sender_Attributes">Common Sender Attributes</a></li><li><a href="#Common_Transport_Attributes">Common Transport Attributes</a></li><li><a href="#PooledParallelSender_Attributes">PooledParallelSender Attributes</a></li></ol></li></ul>
+</blockquote></td></tr></table><table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Introduction"><strong>Introduction</strong></a></font></td></tr><tr><td><blockquote>
+ <p>
+ The channel sender component is responsible for delivering outgoing cluster messages over the network.
+ In the default implementation, <code>org.apache.catalina.tribes.transport.ReplicationTransmitter</code>,
+ the sender is a fairly empty shell with not much logic around a fairly complex <code><Transport></code>
+ component the implements the actual delivery mechanism.
+ </p>
+</blockquote></td></tr></table><table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Concurrent Parallel Delivery"><!--()--></a><a name="Concurrent_Parallel_Delivery"><strong>Concurrent Parallel Delivery</strong></a></font></td></tr><tr><td><blockquote>
+ <p>
+ In the default <code>transport</code> implementation, <code>org.apache.catalina.tribes.transport.nio.PooledParallelSender</code>,
+ Apache Tribes implements what we like to call "Concurrent Parallel Delivery".
+ This means that we can send a message to more than one destination at the same time(parallel), and
+ deliver two messages to the same destination at the same time(concurrent). Combine these two and we have
+ "Concurrent Parallel Delivery".
+ </p>
+ <p>
+ When is this useful? The simplest example we can think of is when part of your code is sending a 10MB message,
+ like a war file being deployed, and you need to push through a small 10KB message, say a session being replicated,
+ you don't have to wait for the 10MB message to finish, as a separate thread will push in the small message
+ transmission at the same time. Currently there is no interrupt, pause or priority mechanism available, but check back soon.
+ </p>
+</blockquote></td></tr></table><table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Nested Elements"><!--()--></a><a name="Nested_Elements"><strong>Nested Elements</strong></a></font></td></tr><tr><td><blockquote>
+ <p>
+ The nested element <code><Transport></code> is is not required, by encouraged, as this is where
+ you would set all the socket options for the outgoing messages. Please see its attributes below.
+ There are two implementations, in a similar manner to the <a href="cluster-receiver.html">receiver</a>, one is non-blocking
+ based and the other is built using blocking IO. <br>
+ <code>org.apache.catalina.tribes.transport.bio.PooledMultiSender</code> is the blocking implementation and
+ <code>org.apache.catalina.tribes.transport.nio.PooledParallelSender</code>.
+ Parallel delivery is not available for the blocking implementation due to the fact that it is blocking a thread on sending data.
+ </p>
+</blockquote></td></tr></table><table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Attributes"><strong>Attributes</strong></a></font></td></tr><tr><td><blockquote>
+ <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Common Sender Attributes"><!--()--></a><a name="Common_Sender_Attributes"><strong>Common Sender Attributes</strong></a></font></td></tr><tr><td><blockquote>
+ <table border="1" cellpadding="5"><tr><th width="15%" bgcolor="#023264"><font color="#ffffff">Attribute</font></th><th width="85%" bgcolor="#023264"><font color="#ffffff">Description</font></th></tr><tr><td align="left" valign="center"><strong><code>className</code></strong></td><td align="left" valign="center">
+ Required, only available implementation is <code>org.apache.catalina.tribes.transport.ReplicationTransmitter</code>
+ </td></tr></table>
+ </blockquote></td></tr></table>
+ <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Common Transport Attributes"><!--()--></a><a name="Common_Transport_Attributes"><strong>Common Transport Attributes</strong></a></font></td></tr><tr><td><blockquote>
+ <table border="1" cellpadding="5"><tr><th width="15%" bgcolor="#023264"><font color="#ffffff">Attribute</font></th><th width="85%" bgcolor="#023264"><font color="#ffffff">Description</font></th></tr><tr><td align="left" valign="center"><strong><code>className</code></strong></td><td align="left" valign="center">
+ Required, an implementation of the <code>org.apache.catalina.tribes.transport.MultiPointSender</code>.<br>
+ Non-blocking implementation is <code>org.apache.catalina.tribes.transport.nio.PooledParallelSender</code><br>
+ Blocking implementation is <code>org.apache.catalina.tribes.transport.bio.PooledMultiSender</code>
+ </td></tr><tr><td align="left" valign="center"><code>rxBufSize</code></td><td align="left" valign="center">
+ The receive buffer size on the socket.
+ Default value is <code>25188</code> bytes.
+ </td></tr><tr><td align="left" valign="center"><code>txBufSize</code></td><td align="left" valign="center">
+ The send buffer size on the socket.
+ Default value is <code>43800</code> bytes.
+ </td></tr><tr><td align="left" valign="center"><code>directBuffer</code></td><td align="left" valign="center">
+ Possible values are <code>true</code> or <code>false</code>.
+ Set to true if you want the receiver to use direct bytebuffers when writing data
+ to the sockets. Default value is <code>false</code>
+ </td></tr><tr><td align="left" valign="center"><code>keepAliveCount</code></td><td align="left" valign="center">
+ The number of requests that can go through the socket before the socket is closed, and reopened
+ for the next request. The default value is <code>-1</code>, which is unlimited.
+ </td></tr><tr><td align="left" valign="center"><code>keepAliveTime</code></td><td align="left" valign="center">
+ The number of milliseconds a connection is kept open after its been opened.
+ The default value is <code>-1</code>, which is unlimited.
+ </td></tr><tr><td align="left" valign="center"><code>timeout</code></td><td align="left" valign="center">
+ Sets the SO_TIMEOUT option on the socket. The value is in milliseconds and the default value is <code>3000</code>
+ milliseconds.(3 seconds) This timeout starts when a message send attempt is starting, until the transfer has been completed.
+ For the NIO sockets, this will mean, that the caller can guarantee that we will not attempt sending the message
+ longer than this timeout value. For the blocking IO implementation, this translated directly to the soTimeout.<br>
+ A timeout will not spawn a retry attempt, in order to guarantee the return of the application thread.
+ </td></tr><tr><td align="left" valign="center"><code>maxRetryAttempts</code></td><td align="left" valign="center">
+ How many times do we retry a failed message, that received a IOException at the socket level.
+ The default value is <code>1</code>, meaning we will retry a message that has failed once.
+ In other words, we will attempt a message send no more than twice. One is the original send, and one is the
+ <code>maxRetryAttempts</code>.
+ </td></tr><tr><td align="left" valign="center"><code>ooBInline</code></td><td align="left" valign="center">
+ Boolean value for the socket OOBINLINE option. Possible values are <code>true</code> or <code>false</code>.
+ </td></tr><tr><td align="left" valign="center"><code>soKeepAlive</code></td><td align="left" valign="center">
+ Boolean value for the socket SO_KEEPALIVE option. Possible values are <code>true</code> or <code>false</code>.
+ </td></tr><tr><td align="left" valign="center"><code>soLingerOn</code></td><td align="left" valign="center">
+ Boolean value to determine whether to use the SO_LINGER socket option.
+ Possible values are <code>true</code> or <code>false</code>. Default value is <code>true</code>.
+ </td></tr><tr><td align="left" valign="center"><code>soLingerTime</code></td><td align="left" valign="center">
+ Sets the SO_LINGER socket option time value. The value is in seconds.
+ The default value is <code>3</code> seconds.
+ </td></tr><tr><td align="left" valign="center"><code>soReuseAddress</code></td><td align="left" valign="center">
+ Boolean value for the socket SO_REUSEADDR option. Possible values are <code>true</code> or <code>false</code>.
+ </td></tr><tr><td align="left" valign="center"><code>soTrafficClass</code></td><td align="left" valign="center">
+ Sets the traffic class level for the socket, the value is between 0 and 255.
+ Default value is <code>int soTrafficClass = 0x04 | 0x08 | 0x010;</code>
+ Different values are defined in <a href="http://docs.oracle.com/javase/1.5.0/docs/api/java/net/Socket.html#setTrafficClass(int)">
+ java.net.Socket#setTrafficClass(int)</a>.
+ </td></tr><tr><td align="left" valign="center"><code>tcpNoDelay</code></td><td align="left" valign="center">
+ Boolean value for the socket TCP_NODELAY option. Possible values are <code>true</code> or <code>false</code>.
+ The default value is <code>true</code>
+ </td></tr><tr><td align="left" valign="center"><code>throwOnFailedAck</code></td><td align="left" valign="center">
+ Boolean value, default value is <code>true</code>.
+ If set to true, the sender will throw a <code>org.apache.catalina.tribes.RemoteProcessException</code>
+ when we receive a negative ack from the remote member.
+ Set to false, and Tribes will treat a positive ack the same way as a negative ack, that the message was received.
+ </td></tr></table>
+ </blockquote></td></tr></table>
+ <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="PooledParallelSender Attributes"><!--()--></a><a name="PooledParallelSender_Attributes"><strong>PooledParallelSender Attributes</strong></a></font></td></tr><tr><td><blockquote>
+ <table border="1" cellpadding="5"><tr><th width="15%" bgcolor="#023264"><font color="#ffffff">Attribute</font></th><th width="85%" bgcolor="#023264"><font color="#ffffff">Description</font></th></tr><tr><td align="left" valign="center"><code>poolSize</code></td><td align="left" valign="center">
+ The maximum number of concurrent connections from A to B.
+ The value is based on a per-destination count.
+ The default value is <code>25</code>
+ </td></tr></table>
+ </blockquote></td></tr></table>
+</blockquote></td></tr></table></td></tr><!--FOOTER SEPARATOR--><tr><td colspan="2"><hr noshade="noshade" size="1"></td></tr><!--PAGE FOOTER--><tr><td colspan="2"><div align="center"><font color="#525D76" size="-1"><em>
+ Copyright © 1999-2014, Apache Software Foundation
+ </em></font></div></td></tr></table></body></html>
\ No newline at end of file
diff --git a/tomcat-uid/webapps/docs/config/cluster-valve.html b/tomcat-uid/webapps/docs/config/cluster-valve.html
new file mode 100644
index 0000000..f36d321
--- /dev/null
+++ b/tomcat-uid/webapps/docs/config/cluster-valve.html
@@ -0,0 +1,61 @@
+<html><head><META http-equiv="Content-Type" content="text/html; charset=iso-8859-1"><title>Apache Tomcat Configuration Reference (6.0.39) - The Cluster Valve object</title><meta name="author" content="Filip Hanik"><style type="text/css" media="print">
+ .noPrint {display: none;}
+ td#mainBody {width: 100%;}
+ </style></head><body bgcolor="#ffffff" text="#000000" link="#525D76" alink="#525D76" vlink="#525D76"><table border="0" width="100%" cellspacing="0"><!--PAGE HEADER--><tr><td><!--PROJECT LOGO--><a href="http://tomcat.apache.org/"><img src="../images/tomcat.gif" align="right" alt="
+ The Apache Tomcat Servlet/JSP Container
+ " border="0"></a></td><td><h1><font face="arial,helvetica,sanserif">Apache Tomcat 6.0</font></h1><font face="arial,helvetica,sanserif">Version 6.0.39, Jan 27 2014</font></td><td><!--APACHE LOGO--><a href="http://www.apache.org/"><img src="../images/asf-logo.gif" align="right" alt="Apache Logo" border="0"></a></td></tr></table><table border="0" width="100%" cellspacing="4"><!--HEADER SEPARATOR--><tr><td colspan="2"><hr noshade="noshade" size="1"></td></tr><tr><!--LEFT SIDE NAVIGATION--><td width="20%" valign="top" nowrap="nowrap" class="noPrint"><p><strong>Links</strong></p><ul><li><a href="../index.html">Docs Home</a></li><li><a href="index.html">Config Ref. Home</a></li></ul><p><strong>Top Level Elements</strong></p><ul><li><a href="server.html">Server</a></li><li><a href="service.html">Service</a></li></ul><p><strong>Executors</strong></p><ul><li><a href="executor.html">Executor</a></li></ul><p><strong>Connectors</strong></p><ul><li><a href="http.html">HTTP</a></li><li><a href="ajp.html">AJP</a></li></ul><p><strong>Containers</strong></p><ul><li><a href="context.html">Context</a></li><li><a href="engine.html">Engine</a></li><li><a href="host.html">Host</a></li><li><a href="cluster.html">Cluster</a></li></ul><p><strong>Nested Components</strong></p><ul><li><a href="globalresources.html">Global Resources</a></li><li><a href="listeners.html">Listeners</a></li><li><a href="loader.html">Loader</a></li><li><a href="manager.html">Manager</a></li><li><a href="realm.html">Realm</a></li><li><a href="resources.html">Resources</a></li><li><a href="valve.html">Valve</a></li></ul><p><strong>Cluster Elements</strong></p><ul><li><a href="cluster.html">Cluster</a></li><li><a href="cluster-manager.html">Manager</a></li><li><a href="cluster-channel.html">Channel</a></li><li><a href="cluster-membership.html">Channel/Membership</a></li><li><a href="cluster-sender.html">Channel/Sender</a></li><li><a href="cluster-receiver.html">Channel/Receiver</a></li><li><a href="cluster-interceptor.html">Channel/Interceptor</a></li><li><a href="cluster-valve.html">Valve</a></li><li><a href="cluster-deployer.html">Deployer</a></li><li><a href="cluster-listener.html">ClusterListener</a></li></ul><p><strong>Other</strong></p><ul><li><a href="filter.html">Filter</a></li><li><a href="systemprops.html">System properties</a></li></ul></td><!--RIGHT SIDE MAIN BODY--><td width="80%" valign="top" align="left" id="mainBody"><h1>Apache Tomcat Configuration Reference</h1><h2>The Cluster Valve object</h2><table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Table of Contents"><!--()--></a><a name="Table_of_Contents"><strong>Table of Contents</strong></a></font></td></tr><tr><td><blockquote>
+<ul><li><a href="#Introduction">Introduction</a></li><li><a href="#org.apache.catalina.ha.tcp.ReplicationValve">org.apache.catalina.ha.tcp.ReplicationValve</a><ol><li><a href="#org.apache.catalina.ha.tcp.ReplicationValve/Attributes">Attributes</a></li></ol></li><li><a href="#org.apache.catalina.ha.session.JvmRouteBinderValve">org.apache.catalina.ha.session.JvmRouteBinderValve</a><ol><li><a href="#org.apache.catalina.ha.session.JvmRouteBinderValve/Attributes">Attributes</a></li></ol></li></ul>
+</blockquote></td></tr></table><table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Introduction"><strong>Introduction</strong></a></font></td></tr><tr><td><blockquote>
+ <p>
+ A cluster valve is no different from any other <a href="valve.html">Tomcat <code>Valve</code></a>.
+ The cluster valves are interceptors in the invocation chain for HTTP requests, and the clustering implementation
+ uses these valves to make intelligent decision around data and when data should be replicated.
+ </p>
+ <p>
+ A cluster valve must implement the <code>org.apache.catalina.ha.ClusterValve</code> interface.
+ This is a simple interface that extends the <code>org.apache.catalina.Valve</code> interface.
+ </p>
+</blockquote></td></tr></table><table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="org.apache.catalina.ha.tcp.ReplicationValve"><strong>org.apache.catalina.ha.tcp.ReplicationValve</strong></a></font></td></tr><tr><td><blockquote>
+ The <code>ReplicationValve</code> will notify the cluster at the end of a HTTP request
+ so that the cluster can make a decision whether there is data to be replicated or not.
+ <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="org.apache.catalina.ha.tcp.ReplicationValve/Attributes"><strong>Attributes</strong></a></font></td></tr><tr><td><blockquote>
+ <table border="1" cellpadding="5"><tr><th width="15%" bgcolor="#023264"><font color="#ffffff">Attribute</font></th><th width="85%" bgcolor="#023264"><font color="#ffffff">Description</font></th></tr><tr><td align="left" valign="center"><strong><code>className</code></strong></td><td align="left" valign="center">
+ Set value to <code>org.apache.catalina.ha.tcp.ReplicationValve</code>
+ </td></tr><tr><td align="left" valign="center"><code>filter</code></td><td align="left" valign="center">
+ For known file extensions or urls, you can use a filter to
+ notify the cluster that the session has not been modified during this
+ request and the cluster doesn't have to probe the session managers for changes.
+ If there is a filter match, the cluster assumes there has been no session change.
+ An example filter would look like <code>filter=".*\.gif;.*\.js;.*\.jpg;.*\.png;.*\.htm;.*\.html;.*\.css;.*\.txt;"</code>
+ The filter uses regular expressions and each filter is delimited by a semi colon.
+ <code>Pattern#compile(java.lang.String)</code>
+ </td></tr><tr><td align="left" valign="center"><code>primaryIndicator</code></td><td align="left" valign="center">
+ Boolean value, so to true, and the replication valve will insert a request attribute with the name
+ defined by the <code>primaryIndicatorName</code> attribute.
+ The value inserted into the request attribute is either <code>Boolean.TRUE</code> or
+ <code>Boolean.FALSE</code>
+ </td></tr><tr><td align="left" valign="center"><code>primaryIndicatorName</code></td><td align="left" valign="center">
+ Default value is <code>org.apache.catalina.ha.tcp.isPrimarySession</code>
+ The value defined here is the name of the request attribute that contains the boolean value
+ if the session is primary on this server or not.
+ </td></tr><tr><td align="left" valign="center"><code>statistics</code></td><td align="left" valign="center">
+ Boolean value. Set to <code>true</code> if you want the valve to collect request statistics.
+ Default value is <code>false</code>
+ </td></tr></table>
+ </blockquote></td></tr></table>
+</blockquote></td></tr></table><table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="org.apache.catalina.ha.session.JvmRouteBinderValve"><strong>org.apache.catalina.ha.session.JvmRouteBinderValve</strong></a></font></td></tr><tr><td><blockquote>
+ In case of a mod_jk failover, the <code>JvmRouteBinderValve</code> will replace the
+ <code>jvmWorker</code> attribute in the session Id, to make future requests stick to this
+ node. If you want failback capability, don't enable this valve, but if you want your failover to stick,
+ and for mod_jk not to have to keep probing the node that went down, you use this valve.
+ <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="org.apache.catalina.ha.session.JvmRouteBinderValve/Attributes"><strong>Attributes</strong></a></font></td></tr><tr><td><blockquote>
+ <table border="1" cellpadding="5"><tr><th width="15%" bgcolor="#023264"><font color="#ffffff">Attribute</font></th><th width="85%" bgcolor="#023264"><font color="#ffffff">Description</font></th></tr><tr><td align="left" valign="center"><strong><code>className</code></strong></td><td align="left" valign="center">
+ <code>org.apache.catalina.ha.session.JvmRouteBinderValve</code>
+ </td></tr><tr><td align="left" valign="center"><code>enabled</code></td><td align="left" valign="center">
+ Default value is <code>true</code>
+ Runtime attribute to turn on and off turn over of the session's jvmRoute value.
+ </td></tr></table>
+ </blockquote></td></tr></table>
+</blockquote></td></tr></table></td></tr><!--FOOTER SEPARATOR--><tr><td colspan="2"><hr noshade="noshade" size="1"></td></tr><!--PAGE FOOTER--><tr><td colspan="2"><div align="center"><font color="#525D76" size="-1"><em>
+ Copyright © 1999-2014, Apache Software Foundation
+ </em></font></div></td></tr></table></body></html>
\ No newline at end of file
diff --git a/tomcat-uid/webapps/docs/config/cluster.html b/tomcat-uid/webapps/docs/config/cluster.html
new file mode 100644
index 0000000..b88eab4
--- /dev/null
+++ b/tomcat-uid/webapps/docs/config/cluster.html
@@ -0,0 +1,130 @@
+<html><head><META http-equiv="Content-Type" content="text/html; charset=iso-8859-1"><title>Apache Tomcat Configuration Reference (6.0.39) - The Cluster object</title><meta name="author" content="Filip Hanik"><style type="text/css" media="print">
+ .noPrint {display: none;}
+ td#mainBody {width: 100%;}
+ </style></head><body bgcolor="#ffffff" text="#000000" link="#525D76" alink="#525D76" vlink="#525D76"><table border="0" width="100%" cellspacing="0"><!--PAGE HEADER--><tr><td><!--PROJECT LOGO--><a href="http://tomcat.apache.org/"><img src="../images/tomcat.gif" align="right" alt="
+ The Apache Tomcat Servlet/JSP Container
+ " border="0"></a></td><td><h1><font face="arial,helvetica,sanserif">Apache Tomcat 6.0</font></h1><font face="arial,helvetica,sanserif">Version 6.0.39, Jan 27 2014</font></td><td><!--APACHE LOGO--><a href="http://www.apache.org/"><img src="../images/asf-logo.gif" align="right" alt="Apache Logo" border="0"></a></td></tr></table><table border="0" width="100%" cellspacing="4"><!--HEADER SEPARATOR--><tr><td colspan="2"><hr noshade="noshade" size="1"></td></tr><tr><!--LEFT SIDE NAVIGATION--><td width="20%" valign="top" nowrap="nowrap" class="noPrint"><p><strong>Links</strong></p><ul><li><a href="../index.html">Docs Home</a></li><li><a href="index.html">Config Ref. Home</a></li></ul><p><strong>Top Level Elements</strong></p><ul><li><a href="server.html">Server</a></li><li><a href="service.html">Service</a></li></ul><p><strong>Executors</strong></p><ul><li><a href="executor.html">Executor</a></li></ul><p><strong>Connectors</strong></p><ul><li><a href="http.html">HTTP</a></li><li><a href="ajp.html">AJP</a></li></ul><p><strong>Containers</strong></p><ul><li><a href="context.html">Context</a></li><li><a href="engine.html">Engine</a></li><li><a href="host.html">Host</a></li><li><a href="cluster.html">Cluster</a></li></ul><p><strong>Nested Components</strong></p><ul><li><a href="globalresources.html">Global Resources</a></li><li><a href="listeners.html">Listeners</a></li><li><a href="loader.html">Loader</a></li><li><a href="manager.html">Manager</a></li><li><a href="realm.html">Realm</a></li><li><a href="resources.html">Resources</a></li><li><a href="valve.html">Valve</a></li></ul><p><strong>Cluster Elements</strong></p><ul><li><a href="cluster.html">Cluster</a></li><li><a href="cluster-manager.html">Manager</a></li><li><a href="cluster-channel.html">Channel</a></li><li><a href="cluster-membership.html">Channel/Membership</a></li><li><a href="cluster-sender.html">Channel/Sender</a></li><li><a href="cluster-receiver.html">Channel/Receiver</a></li><li><a href="cluster-interceptor.html">Channel/Interceptor</a></li><li><a href="cluster-valve.html">Valve</a></li><li><a href="cluster-deployer.html">Deployer</a></li><li><a href="cluster-listener.html">ClusterListener</a></li></ul><p><strong>Other</strong></p><ul><li><a href="filter.html">Filter</a></li><li><a href="systemprops.html">System properties</a></li></ul></td><!--RIGHT SIDE MAIN BODY--><td width="80%" valign="top" align="left" id="mainBody"><h1>Apache Tomcat Configuration Reference</h1><h2>The Cluster object</h2><table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Table of Contents"><!--()--></a><a name="Table_of_Contents"><strong>Table of Contents</strong></a></font></td></tr><tr><td><blockquote>
+<ul><li><a href="#Introduction">Introduction</a></li><li><a href="#Engine_vs_Host_placement">Engine vs Host placement</a></li><li><a href="#Context_Attribute_Replication">Context Attribute Replication</a></li><li><a href="#Nested_Components">Nested Components</a></li><li><a href="#Deprecated_configuration_options">Deprecated configuration options</a></li><li><a href="#Attributes">Attributes</a><ol><li><a href="#SimpleTcpCluster_Attributes">SimpleTcpCluster Attributes</a></li></ol></li></ul>
+</blockquote></td></tr></table><table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Introduction"><strong>Introduction</strong></a></font></td></tr><tr><td><blockquote>
+ <p>
+ The tomcat cluster implementation provides session replication, context attribute replication and
+ cluster wide WAR file deployment.
+ While the <code>Cluster</code> configuration is fairly complex, the default configuration will work
+ for most people out of the box. </p><p>
+ The Tomcat Cluster implementation is very extensible, and hence we have exposed a myriad of options,
+ making the configuration seem like a lot, but don't lose faith, instead you have a tremendous control
+ over what is going on.</p>
+</blockquote></td></tr></table><table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Engine vs Host placement"><!--()--></a><a name="Engine_vs_Host_placement"><strong>Engine vs Host placement</strong></a></font></td></tr><tr><td><blockquote>
+ <p>
+ You can place the <code><Cluster></code> element inside either the <code><Engine></code>
+ container or the <code><Host></code> container.<br>
+ Placing it in the engine, means that you will support clustering in all virtual hosts of Tomcat,
+ and share the messaging component. When you place the <code><Cluster></code> inside the <code><Engine></code>
+ element, the cluster will append the host name of each session manager to the managers name so that two contexts with
+ the same name but sitting inside two different hosts will be distinguishable.
+ </p>
+</blockquote></td></tr></table><table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Context Attribute Replication"><!--()--></a><a name="Context_Attribute_Replication"><strong>Context Attribute Replication</strong></a></font></td></tr><tr><td><blockquote>
+ <p>To configure context attribute replication, simply do this by swapping out the context implementation
+ used for your application context.
+ <div align="left"><table cellspacing="4" cellpadding="0" border="0"><tr><td bgcolor="#023264" width="1" height="1"><img src="../images/void.gif" alt="" width="1" height="1" vspace="0" hspace="0" border="0"></td><td bgcolor="#023264" height="1"><img src="../images/void.gif" alt="" width="1" height="1" vspace="0" hspace="0" border="0"></td><td bgcolor="#023264" width="1" height="1"><img src="../images/void.gif" alt="" width="1" height="1" vspace="0" hspace="0" border="0"></td></tr><tr><td bgcolor="#023264" width="1"><img src="../images/void.gif" alt="" width="1" height="1" vspace="0" hspace="0" border="0"></td><td bgcolor="#ffffff" height="1"><pre><Context className="org.apache.catalina.ha.context.ReplicatedContext"/></pre></td><td bgcolor="#023264" width="1"><img src="../images/void.gif" alt="" width="1" height="1" vspace="0" hspace="0" border="0"></td></tr><tr><td bgcolor="#023264" width="1" height="1"><img src="../images/void.gif" alt="" width="1" height="1" vspace="0" hspace="0" border="0"></td><td bgcolor="#023264" height="1"><img src="../images/void.gif" alt="" width="1" height="1" vspace="0" hspace="0" border="0"></td><td bgcolor="#023264" width="1" height="1"><img src="../images/void.gif" alt="" width="1" height="1" vspace="0" hspace="0" border="0"></td></tr></table></div>
+ This context extends the Tomcat <code><a href="context.html">StandardContext</a></code>
+ so all the options from the <a href="context.html">base implementation</a> are valid.
+ </p>
+</blockquote></td></tr></table><table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Nested Components"><!--()--></a><a name="Nested_Components"><strong>Nested Components</strong></a></font></td></tr><tr><td><blockquote>
+ <p><b><a href="cluster-manager.html">Manager</a>:</b> <br>
+ The session manager element identifies what kind of session manager is used in this cluster implementation.
+ This manager configuration is identical to the one you would use in a regular <code><a href="context.html#Nested%20xComponents"><Context></a></code> configuration.
+ <br>The default value is the <code>org.apache.catalina.ha.session.DeltaManager</code> that is closely coupled with
+ the <code>SimpleTcpCluster</code> implementation. Other managers like the <code>org.apache.catalina.ha.session.BackupManager</code>
+ are/could be loosely coupled and don't rely on the <code>SimpleTcpCluster</code> for its data replication.
+ </p>
+ <p><b><a href="cluster-channel.html">Channel</a>:</b> <br>
+ The Channel and its sub components are all part of the IO layer
+ for the cluster group, and is a module in it's own that we have nick named "Tribes"
+ <br>
+ Any configuring and tuning of the network layer, the messaging and the membership logic
+ will be done in the channel and its nested components.
+ You can always find out more about <a href="../tribes/introduction.html">Apache Tribes</a>
+ </p>
+ <p><b><a href="cluster-valve.html">Valve</a>:</b> <br>
+ The Tomcat Cluster implementation uses <code>Tomcat <a href="valve.html">Valves</a></code> to
+ track when requests enter and exit the servlet container. It uses these valves to be able to make
+ intelligent decisions on when to replicate data, which is always at the end of a request.
+ </p>
+ <p><b><a href="cluster-deployer.html">Deployer</a>:</b> <br>
+ The Deployer component is the Tomcat Farm Deployer. It allows you to deploy and undeploy applications
+ cluster wide.
+ </p>
+ <p><b><a href="cluster-listener.html">ClusterListener</a>:</b> <br>
+ ClusterListener's are used to track messages sent and received using the <code>SimpleTcpCluster</code>.
+ If you wish to track messages, you can add a listener here, or you can add a valve to the channel object.
+ </p>
+</blockquote></td></tr></table><table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Deprecated configuration options"><!--()--></a><a name="Deprecated_configuration_options"><strong>Deprecated configuration options</strong></a></font></td></tr><tr><td><blockquote>
+ <p>
+ <b>Deprecated settings:</b> In the previous version of Tomcat you were able to control session
+ manager settings using manager.<property>=value.
+ This has been discontinued, as the way it was written interferes with
+ the ability to support multiple different manager classes under one cluster implementation,
+ as the same properties might have the different effect on different managers.
+ </p>
+</blockquote></td></tr></table><table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Attributes"><strong>Attributes</strong></a></font></td></tr><tr><td><blockquote>
+ <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="SimpleTcpCluster Attributes"><!--()--></a><a name="SimpleTcpCluster_Attributes"><strong>SimpleTcpCluster Attributes</strong></a></font></td></tr><tr><td><blockquote>
+ <table border="1" cellpadding="5"><tr><th width="15%" bgcolor="#023264"><font color="#ffffff">Attribute</font></th><th width="85%" bgcolor="#023264"><font color="#ffffff">Description</font></th></tr><tr><td align="left" valign="center"><strong><code>className</code></strong></td><td align="left" valign="center">
+ <p>The main cluster class, currently only one is available,
+ <code>org.apache.catalina.ha.tcp.SimpleTcpCluster</code>
+ </p>
+ </td></tr><tr><td align="left" valign="center"><strong><code>channelSendOptions</code></strong></td><td align="left" valign="center">
+ <p>The Tribes channel send options, default is <code>8</code>.<br>
+ This option is used to set the flag that all messages sent through the
+ SimpleTcpCluster uses. The flag decides how the messages are sent, and is a simple logical OR.<br>
+
+ <div align="left"><table cellspacing="4" cellpadding="0" border="0"><tr><td bgcolor="#023264" width="1" height="1"><img src="../images/void.gif" alt="" width="1" height="1" vspace="0" hspace="0" border="0"></td><td bgcolor="#023264" height="1"><img src="../images/void.gif" alt="" width="1" height="1" vspace="0" hspace="0" border="0"></td><td bgcolor="#023264" width="1" height="1"><img src="../images/void.gif" alt="" width="1" height="1" vspace="0" hspace="0" border="0"></td></tr><tr><td bgcolor="#023264" width="1"><img src="../images/void.gif" alt="" width="1" height="1" vspace="0" hspace="0" border="0"></td><td bgcolor="#ffffff" height="1"><pre>
+ int options= Channel.SEND_OPTIONS_ASYNCHRONOUS |
+ Channel.SEND_OPTIONS_SYNCHRONIZED_ACK |
+ Channel.SEND_OPTIONS_USE_ACK;
+ </pre></td><td bgcolor="#023264" width="1"><img src="../images/void.gif" alt="" width="1" height="1" vspace="0" hspace="0" border="0"></td></tr><tr><td bgcolor="#023264" width="1" height="1"><img src="../images/void.gif" alt="" width="1" height="1" vspace="0" hspace="0" border="0"></td><td bgcolor="#023264" height="1"><img src="../images/void.gif" alt="" width="1" height="1" vspace="0" hspace="0" border="0"></td><td bgcolor="#023264" width="1" height="1"><img src="../images/void.gif" alt="" width="1" height="1" vspace="0" hspace="0" border="0"></td></tr></table></div>
+ Some of the values are:<br>
+ <code>Channel.SEND_OPTIONS_SYNCHRONIZED_ACK = 0x0004</code><br>
+ <code>Channel.SEND_OPTIONS_ASYNCHRONOUS = 0x0008</code><br>
+ <code>Channel.SEND_OPTIONS_USE_ACK = 0x0002</code><br>
+ So to use ACK and ASYNC messaging, the flag would be <code>10 (8+2) or 0x000B</code><br>
+ Note that if you use ASYNC messaging it is possible for update messages
+ for a session to be processed by the receiving nodes in a different order
+ to the order in which they were sent.
+ </p>
+ </td></tr><tr><td align="left" valign="center"><code>channelStartOptions</code></td><td align="left" valign="center">
+ <p>Sets the start and stop flags for the <Channel> object used by the cluster.
+ The default is <code>Channel.DEFAULT</code> which starts all the channel services, such as
+ sender, receiver, multicast sender and multicast receiver.
+ The following flags are available today:
+ <div align="left"><table cellspacing="4" cellpadding="0" border="0"><tr><td bgcolor="#023264" width="1" height="1"><img src="../images/void.gif" alt="" width="1" height="1" vspace="0" hspace="0" border="0"></td><td bgcolor="#023264" height="1"><img src="../images/void.gif" alt="" width="1" height="1" vspace="0" hspace="0" border="0"></td><td bgcolor="#023264" width="1" height="1"><img src="../images/void.gif" alt="" width="1" height="1" vspace="0" hspace="0" border="0"></td></tr><tr><td bgcolor="#023264" width="1"><img src="../images/void.gif" alt="" width="1" height="1" vspace="0" hspace="0" border="0"></td><td bgcolor="#ffffff" height="1"><pre>
+ Channel.DEFAULT = Channel.SND_RX_SEQ (1)| Channel.SND_TX_SEQ (2)| Channel.MBR_RX_SEQ (4)| Channel.MBR_TX_SEQ (8);
+ </pre></td><td bgcolor="#023264" width="1"><img src="../images/void.gif" alt="" width="1" height="1" vspace="0" hspace="0" border="0"></td></tr><tr><td bgcolor="#023264" width="1" height="1"><img src="../images/void.gif" alt="" width="1" height="1" vspace="0" hspace="0" border="0"></td><td bgcolor="#023264" height="1"><img src="../images/void.gif" alt="" width="1" height="1" vspace="0" hspace="0" border="0"></td><td bgcolor="#023264" width="1" height="1"><img src="../images/void.gif" alt="" width="1" height="1" vspace="0" hspace="0" border="0"></td></tr></table></div>
+ To start a channel without multicasting, you would want to use the value <code>Channel.SND_RX_SEQ | Channel.SND_TX_SEQ</code>
+ that equals to <code>3</code>.
+ </p>
+ </td></tr><tr><td align="left" valign="center"><code>heartbeatBackgroundEnabled</code></td><td align="left" valign="center">
+ <p>Flag whether invoke channel heartbeat at container background thread. Default value is false.
+ Enable this flag don't forget to disable the channel heartbeat thread.
+ </p>
+ </td></tr><tr><td align="left" valign="center"><code>notifyLifecycleListenerOnFailure</code></td><td align="left" valign="center">
+ <p>Flag whether notify LifecycleListeners if all ClusterListener couldn't accept channel message.
+ Default value is false.
+ </p>
+ </td></tr><tr><td align="left" valign="center"><code>doClusterLog</code></td><td align="left" valign="center">
+ <p><b>Deprecated since 6.0.0</b></p>
+ <p>Possible values are <code>true</code> or <code>false</code><br>
+ Value is inherited from Tomcat 5.5 and has no official meaning.
+ to configure logging, use the standard tomcat logging configuration.
+ </p>
+ </td></tr><tr><td align="left" valign="center"><code>clusterLogName</code></td><td align="left" valign="center">
+ <p><b>Deprecated since 6.0.0</b></p>
+ <p>
+ Value is inherited from Tomcat 5.5 and has no official meaning.
+ to configure logging, use the standard tomcat logging configuration.
+ </p>
+ </td></tr></table>
+ </blockquote></td></tr></table>
+</blockquote></td></tr></table></td></tr><!--FOOTER SEPARATOR--><tr><td colspan="2"><hr noshade="noshade" size="1"></td></tr><!--PAGE FOOTER--><tr><td colspan="2"><div align="center"><font color="#525D76" size="-1"><em>
+ Copyright © 1999-2014, Apache Software Foundation
+ </em></font></div></td></tr></table></body></html>
\ No newline at end of file
diff --git a/tomcat-uid/webapps/docs/config/context.html b/tomcat-uid/webapps/docs/config/context.html
new file mode 100644
index 0000000..d9a3f8c
--- /dev/null
+++ b/tomcat-uid/webapps/docs/config/context.html
@@ -0,0 +1,938 @@
+<html><head><META http-equiv="Content-Type" content="text/html; charset=iso-8859-1"><title>Apache Tomcat Configuration Reference (6.0.39) - The Context Container</title><meta name="author" content="Craig R. McClanahan"><style type="text/css" media="print">
+ .noPrint {display: none;}
+ td#mainBody {width: 100%;}
+ </style></head><body bgcolor="#ffffff" text="#000000" link="#525D76" alink="#525D76" vlink="#525D76"><table border="0" width="100%" cellspacing="0"><!--PAGE HEADER--><tr><td><!--PROJECT LOGO--><a href="http://tomcat.apache.org/"><img src="../images/tomcat.gif" align="right" alt="
+ The Apache Tomcat Servlet/JSP Container
+ " border="0"></a></td><td><h1><font face="arial,helvetica,sanserif">Apache Tomcat 6.0</font></h1><font face="arial,helvetica,sanserif">Version 6.0.39, Jan 27 2014</font></td><td><!--APACHE LOGO--><a href="http://www.apache.org/"><img src="../images/asf-logo.gif" align="right" alt="Apache Logo" border="0"></a></td></tr></table><table border="0" width="100%" cellspacing="4"><!--HEADER SEPARATOR--><tr><td colspan="2"><hr noshade="noshade" size="1"></td></tr><tr><!--LEFT SIDE NAVIGATION--><td width="20%" valign="top" nowrap="nowrap" class="noPrint"><p><strong>Links</strong></p><ul><li><a href="../index.html">Docs Home</a></li><li><a href="index.html">Config Ref. Home</a></li></ul><p><strong>Top Level Elements</strong></p><ul><li><a href="server.html">Server</a></li><li><a href="service.html">Service</a></li></ul><p><strong>Executors</strong></p><ul><li><a href="executor.html">Executor</a></li></ul><p><strong>Connectors</strong></p><ul><li><a href="http.html">HTTP</a></li><li><a href="ajp.html">AJP</a></li></ul><p><strong>Containers</strong></p><ul><li><a href="context.html">Context</a></li><li><a href="engine.html">Engine</a></li><li><a href="host.html">Host</a></li><li><a href="cluster.html">Cluster</a></li></ul><p><strong>Nested Components</strong></p><ul><li><a href="globalresources.html">Global Resources</a></li><li><a href="listeners.html">Listeners</a></li><li><a href="loader.html">Loader</a></li><li><a href="manager.html">Manager</a></li><li><a href="realm.html">Realm</a></li><li><a href="resources.html">Resources</a></li><li><a href="valve.html">Valve</a></li></ul><p><strong>Cluster Elements</strong></p><ul><li><a href="cluster.html">Cluster</a></li><li><a href="cluster-manager.html">Manager</a></li><li><a href="cluster-channel.html">Channel</a></li><li><a href="cluster-membership.html">Channel/Membership</a></li><li><a href="cluster-sender.html">Channel/Sender</a></li><li><a href="cluster-receiver.html">Channel/Receiver</a></li><li><a href="cluster-interceptor.html">Channel/Interceptor</a></li><li><a href="cluster-valve.html">Valve</a></li><li><a href="cluster-deployer.html">Deployer</a></li><li><a href="cluster-listener.html">ClusterListener</a></li></ul><p><strong>Other</strong></p><ul><li><a href="filter.html">Filter</a></li><li><a href="systemprops.html">System properties</a></li></ul></td><!--RIGHT SIDE MAIN BODY--><td width="80%" valign="top" align="left" id="mainBody"><h1>Apache Tomcat Configuration Reference</h1><h2>The Context Container</h2><table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Table of Contents"><!--()--></a><a name="Table_of_Contents"><strong>Table of Contents</strong></a></font></td></tr><tr><td><blockquote>
+<ul><li><a href="#Introduction">Introduction</a><ol><li><a href="#Naming">Naming</a></li><li><a href="#Defining_a_context">Defining a context</a></li></ol></li><li><a href="#Attributes">Attributes</a><ol><li><a href="#Common_Attributes">Common Attributes</a></li><li><a href="#Standard_Implementation">Standard Implementation</a></li></ol></li><li><a href="#Nested_Components">Nested Components</a></li><li><a href="#Special_Features">Special Features</a><ol><li><a href="#Logging">Logging</a></li><li><a href="#Access_Logs">Access Logs</a></li><li><a href="#Automatic_Context_Configuration">Automatic Context Configuration</a></li><li><a href="#Context_Parameters">Context Parameters</a></li><li><a href="#Environment_Entries">Environment Entries</a></li><li><a href="#Lifecycle_Listeners">Lifecycle Listeners</a></li><li><a href="#Request_Filters">Request Filters</a></li><li><a href="#Resource_Definitions">Resource Definitions</a></li><li><a href="#Resource_Links">Resource Links</a></li><li><a href="#Transaction">Transaction</a></li></ol></li></ul>
+</blockquote></td></tr></table><table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Introduction"><strong>Introduction</strong></a></font></td></tr><tr><td><blockquote>
+
+ <blockquote><em>
+ <p>The description below uses the variable name $CATALINA_BASE to refer the
+ base directory against which most relative paths are resolved. If you have
+ not configured Tomcat 6 for multiple instances by setting a CATALINA_BASE
+ directory, then $CATALINA_BASE will be set to the value of $CATALINA_HOME,
+ the directory into which you have installed Tomcat 6.</p>
+ </em></blockquote>
+
+ <p>The <strong>Context</strong> element represents a <em>web
+ application</em>, which is run within a particular virtual host.
+ Each web application is based on a <em>Web Application Archive</em>
+ (WAR) file, or a corresponding directory containing the corresponding
+ unpacked contents, as described in the Servlet Specification (version
+ 2.2 or later). For more information about web application archives,
+ you can download the
+ <a href="http://wiki.apache.org/tomcat/Specifications">Servlet
+ Specification</a>, and review the Tomcat
+ <a href="../appdev/index.html">Application Developer's Guide</a>.</p>
+
+ <p>The web application used to process each HTTP request is selected
+ by Catalina based on matching the longest possible prefix of the
+ Request URI against the <em>context path</em> of each defined Context.
+ Once selected, that Context will select an appropriate servlet to
+ process the incoming request, according to the servlet mappings defined
+ in the <em>web application deployment descriptor</em> file (which MUST
+ be located at <code>/WEB-INF/web.xml</code> within the web app's
+ directory hierarchy).</p>
+
+ <p>You may define as many <strong>Context</strong> elements as you
+ wish. Each such Context MUST have a unique context path within a virtual
+ host. In
+ addition, a Context must be present with a context path equal to
+ a zero-length string. This Context becomes the <em>default</em>
+ web application for this virtual host, and is used to process all
+ requests that do not match any other Context's context path.</p>
+
+ <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Naming"><strong>Naming</strong></a></font></td></tr><tr><td><blockquote>
+ <p>When <code>autoDeploy</code> or <code>deployOnStartup</code> operations
+ are performed by a Host, the web application is specified by a context XML
+ file in <a href="host.html">Host</a>'s <code>xmlBase</code>
+ directory or by a WAR file or a directory file in Host's
+ <code>appBase</code> directory.
+ In this case the context path is derived from the name of the file that
+ is being deployed. Consequently, the context path <strong>may not</strong>
+ be defined in a <code>META-INF/context.xml</code> embedded in
+ the application. There is, therefore, a close relationship between the
+ <em>context path</em> and
+ the <em>base file name</em> (the name minus <code>.war</code> or
+ <code>.xml</code> extension) of the file.</p>
+
+ <p>Let us assume that you want to deploy your application to respond to
+ requests to URIs starting with certain context path. According to the
+ Servlet specification, the context path may be an empty string, or a
+ string starting with '/'. The rules to define the names for this context
+ path are the following:</p>
+
+ <ul>
+ <li>If the context path is a zero length string, the <em>base name</em> is
+ <code>"ROOT"</code> (uppercase)</li>
+ <li>If the context path is not a zero length string, the <em>base
+ name</em> is the context path with the leading '/' removed and any
+ remaining '/' characters in the path replaced with '#'.</li>
+ </ul>
+
+ <p>To help clarify these rules, some examples are given in the following
+ table.</p>
+
+ <table class="detail-table">
+ <tr>
+ <td bgcolor="#039acc" valign="top"><font color="#000000" size="-1" face="arial,helvetica,sanserif">Context Path</font></td>
+ <td bgcolor="#039acc" valign="top"><font color="#000000" size="-1" face="arial,helvetica,sanserif">Base File Name</font></td>
+ </tr>
+ <tr><td bgcolor="#a0ddf0" valign="top" align="left"><font color="#000000" size="-1" face="arial,helvetica,sanserif">/foo</font></td><td bgcolor="#a0ddf0" valign="top" align="left"><font color="#000000" size="-1" face="arial,helvetica,sanserif">foo</font></td></tr>
+ <tr>
+ <td bgcolor="#a0ddf0" valign="top" align="left"><font color="#000000" size="-1" face="arial,helvetica,sanserif">/foo/bar</font></td><td bgcolor="#a0ddf0" valign="top" align="left"><font color="#000000" size="-1" face="arial,helvetica,sanserif">foo#bar</font></td>
+ </tr>
+ <tr>
+ <td bgcolor="#a0ddf0" valign="top" align="left"><font color="#000000" size="-1" face="arial,helvetica,sanserif"><i>Empty String</i></font></td>
+ <td bgcolor="#a0ddf0" valign="top" align="left"><font color="#000000" size="-1" face="arial,helvetica,sanserif">ROOT</font></td>
+ </tr>
+ </table>
+
+ <p>If you want to deploy a WAR file or a directory using a context path that
+ is not related to the base file name then one of the following options must
+ be used to prevent double-deployment:
+ </p>
+ <ul>
+ <li>Disable autoDeploy and deployOnStartup and define all
+ <strong>Context</strong>s in server.xml</li>
+ <li>Locate the WAR and/or directory outside of the Host's appBase and use
+ a context.xml file with a docBase attribute to define it.</li>
+ </ul>
+ </blockquote></td></tr></table>
+
+ <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Defining a context"><!--()--></a><a name="Defining_a_context"><strong>Defining a context</strong></a></font></td></tr><tr><td><blockquote>
+ <p><b>It is NOT recommended to place
+ <Context> elements directly in the server.xml file.</b> This
+ is because it makes modifying the <strong>Context</strong> configuration
+ more invasive since the main <code>conf/server.xml</code> file cannot be
+ reloaded without restarting Tomcat.</p>
+
+ <p>Individual <strong>Context</strong> elements may be explicitly defined:
+ </p>
+ <ul>
+ <li>In an individual file at <code>/META-INF/context.xml</code> inside the
+ application files. In Tomcat 6 this file is automatically copied to
+ <code>$CATALINA_BASE/conf/[enginename]/[hostname]/</code> and renamed to
+ application's base file name plus a ".xml" extension.
+ (This automated copying became optional in Tomcat 7).
+ </li>
+ <li>In individual files (with a ".xml" extension) in the
+ <code>$CATALINA_BASE/conf/[enginename]/[hostname]/</code> directory.
+ The context path will be derived from the base name of the file
+ (the file name less the .xml extension). This file will always take precedence
+ over any context.xml file packaged in the web application's META-INF
+ directory.</li>
+ <li>Inside a <a href="host.html">Host</a> element in the main
+ <code>conf/server.xml</code>.</li>
+ </ul>
+
+ <p>Default <strong>Context</strong> elements may be defined that apply to
+ multiple web applications. Configuration for an individual web application
+ will override anything configured in one of these defaults. Any nested
+ elements, e.g. <Resource> elements, that are defined in a default
+ <strong>Context</strong> will be created once for each
+ <strong>Context</strong> to which the default applies. They will <b>not</b> be
+ shared between <strong>Context</strong> elements.
+ </p>
+ <ul>
+ <li>In the <code>$CATALINA_BASE/conf/context.xml</code> file:
+ the Context element information will be loaded by all web applications.</li>
+ <li>In the
+ <code>$CATALINA_BASE/conf/[enginename]/[hostname]/context.xml.default</code>
+ file: the Context element information will be loaded by all web applications
+ of that host.</li>
+ </ul>
+
+ <p>With the exception of server.xml, files that define <strong>Context
+ </strong> elements may only define a single <strong>Context</strong> element.
+ </p>
+
+ <p>In addition to explicitly specified Context elements, there are
+ several techniques by which Context elements can be created automatically
+ for you. See <a href="host.html#Automatic_Application_Deployment">
+ Automatic Application Deployment</a> and
+ <a href="host.html#User_Web_Applications">User Web Applications</a>
+ for more information.</p>
+
+ <p>To define multiple contexts that use a single WAR file or directory,
+ use one of the options described in the <a href="#Naming">Naming</a>
+ section above for creating a <strong>Context</strong> that has a path
+ that is not related to the base file name.</p>
+ </blockquote></td></tr></table>
+
+</blockquote></td></tr></table><table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Attributes"><strong>Attributes</strong></a></font></td></tr><tr><td><blockquote>
+
+ <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Common Attributes"><!--()--></a><a name="Common_Attributes"><strong>Common Attributes</strong></a></font></td></tr><tr><td><blockquote>
+
+ <p>All implementations of <strong>Context</strong>
+ support the following attributes:</p>
+
+ <table border="1" cellpadding="5"><tr><th width="15%" bgcolor="#023264"><font color="#ffffff">Attribute</font></th><th width="85%" bgcolor="#023264"><font color="#ffffff">Description</font></th></tr><tr><td align="left" valign="center"><code>backgroundProcessorDelay</code></td><td align="left" valign="center">
+ <p>This value represents the delay in seconds between the
+ invocation of the backgroundProcess method on this context and
+ its child containers, including all wrappers.
+ Child containers will not be invoked if their delay value is not
+ negative (which would mean they are using their own processing
+ thread). Setting this to a positive value will cause
+ a thread to be spawn. After waiting the specified amount of time,
+ the thread will invoke the backgroundProcess method on this host
+ and all its child containers. A context will use background
+ processing to perform session expiration and class monitoring for
+ reloading. If not specified, the default value for this attribute is
+ -1, which means the context will rely on the background processing
+ thread of its parent host.</p>
+ </td></tr><tr><td align="left" valign="center"><code>className</code></td><td align="left" valign="center">
+ <p>Java class name of the implementation to use. This class must
+ implement the <code>org.apache.catalina.Context</code> interface.
+ If not specified, the standard value (defined below) will be used.</p>
+ </td></tr><tr><td align="left" valign="center"><code>cookies</code></td><td align="left" valign="center">
+ <p>Set to <code>true</code> if you want cookies to be used for
+ session identifier communication if supported by the client (this
+ is the default). Set to <code>false</code> if you want to disable
+ the use of cookies for session identifier communication, and rely
+ only on URL rewriting by the application.</p>
+ </td></tr><tr><td align="left" valign="center"><code>crossContext</code></td><td align="left" valign="center">
+ <p>Set to <code>true</code> if you want calls within this application
+ to <code>ServletContext.getContext()</code> to successfully return a
+ request dispatcher for other web applications running on this virtual
+ host. Set to <code>false</code> (the default) in security
+ conscious environments, to make <code>getContext()</code> always
+ return <code>null</code>.</p>
+ </td></tr><tr><td align="left" valign="center"><code>disableURLRewriting</code></td><td align="left" valign="center">
+ <p>Set to <code>true</code> to disable support for using URL rewriting
+ to track session IDs for clients of this Context. URL rewriting is an
+ optional component of the servlet 2.5 specification but disabling URL
+ rewriting will result in non-compliant behaviour since the specification
+ requires that there <em>must</em> be a way to retain sessions if the
+ client doesn't allow session cookies. If not specified, the
+ specification compliant default value of <code>false</code> will be
+ used.</p>
+ </td></tr><tr><td align="left" valign="center"><strong><code>docBase</code></strong></td><td align="left" valign="center">
+ <p>The <em>Document Base</em> (also known as the <em>Context
+ Root</em>) directory for this web application, or the pathname
+ to the web application archive file (if this web application is
+ being executed directly from the WAR file). You may specify
+ an absolute pathname for this directory or WAR file, or a pathname
+ that is relative to the <code>appBase</code> directory of the
+ owning <a href="host.html">Host</a>.</p>
+ <p>The value of this field must not be set unless the Context element is
+ defined in server.xml or the <code>docBase</code> is not located under
+ the <a href="host.html">Host</a>'s <code>appBase</code>.</p>
+ <p>If a symbolic link is used for docBase then changes to the
+ symbolic link will only be effective after a Tomcat restart or
+ by undeploying and redeploying the context. A context reload is not
+ sufficient.</p>
+ </td></tr><tr><td align="left" valign="center"><code>override</code></td><td align="left" valign="center">
+ <p>Set to <code>true</code> to have explicit settings in this
+ Context element override any corresponding settings in either the global
+ or <a href="host.html">Host</a> default contexts. By default, settings
+ from a default context will be used.</p>
+ </td></tr><tr><td align="left" valign="center"><code>privileged</code></td><td align="left" valign="center">
+ <p>Set to <code>true</code> to allow this context to use container
+ servlets, like the manager servlet. Use of the <code>privileged</code>
+ attribute will change the context's parent class loader to be the
+ <em>Server</em> class loader rather than the <em>Shared</em> class
+ loader. Note that in a default installation, the <em>Common</em> class
+ loader is used for both the <em>Server</em> and the <em>Shared</em>
+ class loaders.</p>
+ </td></tr><tr><td align="left" valign="center"><code>path</code></td><td align="left" valign="center">
+ <p>The <em>context path</em> of this web application, which is
+ matched against the beginning of each request URI to select the
+ appropriate web application for processing. All of the context paths
+ within a particular <a href="host.html">Host</a> must be unique.
+ If you specify a context path of an empty string (""), you are
+ defining the <em>default</em> web application for this Host, which
+ will process all requests not assigned to other Contexts.</p>
+ <p>This attribute must only be used when statically defining a Context
+ in server.xml. In all other circumstances, the path will be inferred
+ from the filenames used for either the .xml context file or the docBase.
+ </p>
+ <p>Even when statically defining a Context in server.xml, this attribute
+ must not be set unless either the docBase is not located under the
+ <a href="host.html">Host</a>'s <code>appBase</code> or both
+ <code>deployOnStartup</code> and <code>autoDeploy</code> are false. If
+ this rule is not followed, double deployment is likely to result.</p>
+ </td></tr><tr><td align="left" valign="center"><code>reloadable</code></td><td align="left" valign="center">
+ <p>Set to <code>true</code> if you want Catalina to monitor classes in
+ <code>/WEB-INF/classes/</code> and <code>/WEB-INF/lib</code> for
+ changes, and automatically reload the web application if a change
+ is detected. This feature is very useful during application
+ development, but it requires significant runtime overhead and is
+ not recommended for use on deployed production applications. That's
+ why the default setting for this attribute is <i>false</i>. You
+ can use the <a href="../manager-howto.html">Manager</a> web
+ application, however, to trigger reloads of deployed applications
+ on demand.</p>
+ </td></tr><tr><td align="left" valign="center"><code>sessionCookieDomain</code></td><td align="left" valign="center">
+ <p>The domain to be used for all session cookies created for this
+ Context. If not set, no domain will be specified for session cookies.
+ </p>
+ </td></tr><tr><td align="left" valign="center"><code>sessionCookieName</code></td><td align="left" valign="center">
+ <p>The name to be used for all session cookies created for this
+ Context. If not set, the default of JSESSIONID will be used. Note that
+ this default will be overridden by the
+ <strong>org.apache.catalina.SESSION_COOKIE_NAME</strong> system
+ property.</p>
+ </td></tr><tr><td align="left" valign="center"><code>sessionCookiePath</code></td><td align="left" valign="center">
+ <p>The path to be used for all session cookies created for this
+ Context. If not set, the context path will be used. Note that this will
+ be overridden by the <strong>emptySessionPath</strong> attribute on the
+ connector used to access this Context.</p>
+ </td></tr><tr><td align="left" valign="center"><code>tldValidation</code></td><td align="left" valign="center">
+ <p>If the value of this flag is <code>true</code>, the TLD files
+ will be XML validated on context startup. If the
+ <code>org.apache.catalina.STRICT_SERVLET_COMPLIANCE</code>
+ <a href="systemprops.html">system property</a> is set to
+ <code>true</code>, the default value of this attribute will be
+ <code>true</code>, else the default value will be <code>false</code>.
+ Setting this attribute to <code>true</code> will incur a performance
+ penalty.</p>
+ </td></tr><tr><td align="left" valign="center"><code>useHttpOnly</code></td><td align="left" valign="center">
+ <p>Should the HttpOnly flag be set on session cookies to prevent client
+ side script from accessing the session ID? Defaults to
+ <code>false</code>.</p>
+ </td></tr><tr><td align="left" valign="center"><code>wrapperClass</code></td><td align="left" valign="center">
+ <p>Java class name of the <code>org.apache.catalina.Wrapper</code>
+ implementation class that will be used for servlets managed by this
+ Context. If not specified, a standard default value will be used.</p>
+ </td></tr><tr><td align="left" valign="center"><code>xmlBlockExternal</code></td><td align="left" valign="center">
+ <p>If the value of this flag is <code>true</code>, the parsing of
+ <code>web.xml</code>, <code>web-fragment.xml</code>, <code>*.tld</code>,
+ <code>*.jspx</code>, <code>*.tagx</code> and <code>tagPlugins.xml</code>
+ files for this web application will not permit external entities to be
+ loaded. If a <code>SecurityManager</code> is configured then the default
+ value of this attribute will be <code>true</code>, else the default
+ value will be <code>false</code>.</p>
+ </td></tr><tr><td align="left" valign="center"><code>xmlNamespaceAware</code></td><td align="left" valign="center">
+ <p>If the value of this flag is <code>true</code>, the parsing of the
+ <code>web.xml</code> file for this web application will be
+ namespace-aware. Note that <code>*.tld</code>, <code>*.jspx</code> and
+ <code>*.tagx</code> files are always parsed using a namespace-aware
+ parser and that the <code>tagPlugins.xml</code> file (if any) is never
+ parsed using a namespace-aware parser. Note also that if you turn this
+ flag on, you should probably also turn <code>xmlValidation</code> on. If
+ the <code>org.apache.catalina.STRICT_SERVLET_COMPLIANCE</code>
+ <a href="systemprops.html">system property</a> is set to
+ <code>true</code>, the default value of this attribute will be
+ <code>true</code>, else the default value will be <code>false</code>.
+ Setting this attribute to <code>true</code> will incur a performance
+ penalty.</p>
+ </td></tr><tr><td align="left" valign="center"><code>xmlValidation</code></td><td align="left" valign="center">
+ <p>If the value of this flag is <code>true</code>, the parsing of the
+ <code>web.xml</code> file for this web application will use a validating
+ parser. If the
+ <code>org.apache.catalina.STRICT_SERVLET_COMPLIANCE</code>
+ <a href="systemprops.html">system property</a> is set to
+ <code>true</code>, the default value of this attribute will be
+ <code>true</code>, else the default value will be <code>false</code>.
+ Setting this attribute to <code>true</code> will incur a performance
+ penalty.</p>
+ </td></tr></table>
+
+ </blockquote></td></tr></table>
+
+
+ <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Standard Implementation"><!--()--></a><a name="Standard_Implementation"><strong>Standard Implementation</strong></a></font></td></tr><tr><td><blockquote>
+
+ <p>The standard implementation of <strong>Context</strong> is
+ <strong>org.apache.catalina.core.StandardContext</strong>.
+ It supports the following additional attributes (in addition to the
+ common attributes listed above):</p>
+
+ <table border="1" cellpadding="5"><tr><th width="15%" bgcolor="#023264"><font color="#ffffff">Attribute</font></th><th width="85%" bgcolor="#023264"><font color="#ffffff">Description</font></th></tr><tr><td align="left" valign="center"><code>allowLinking</code></td><td align="left" valign="center">
+ <p>If the value of this flag is <code>true</code>, symlinks will be
+ allowed inside the web application, pointing to resources outside the
+ web application base path. If not specified, the default value
+ of the flag is <code>false</code>.</p>
+ <p><b>NOTE: This flag MUST NOT be set to true on the Windows platform
+ (or any other OS which does not have a case sensitive filesystem),
+ as it will disable case sensitivity checks, allowing JSP source code
+ disclosure, among other security problems.</b></p>
+ </td></tr><tr><td align="left" valign="center"><code>antiJARLocking</code></td><td align="left" valign="center">
+ <p>If true, the Tomcat classloader will take extra measures to avoid
+ JAR file locking when resources are accessed inside JARs through URLs.
+ This will impact startup time of applications, but could prove to be
+ useful on platforms or configurations where file locking can occur.
+ If not specified, the default value is <code>false</code>.</p>
+
+ <p><code>antiJARLocking</code> is a subset of
+ <code>antiResourceLocking</code> and therefore, to prevent duplicate
+ work and possible issues, only one of these attributes should be set
+ to <code>true</code> at any one time.</p>
+ </td></tr><tr><td align="left" valign="center"><code>antiResourceLocking</code></td><td align="left" valign="center">
+ <p>If true, Tomcat will prevent any file locking.
+ This will significantly impact startup time of applications,
+ but allows full webapp hot deploy and undeploy on platforms
+ or configurations where file locking can occur.
+ If not specified, the default value is <code>false</code>.</p>
+
+ <p><code>antiJARLocking</code> is a subset of
+ <code>antiResourceLocking</code> and therefore, to prevent duplicate
+ work and possible issues, only one of these attributes should be set
+ to <code>true</code> at any one time.</p>
+
+ <p>Please note that setting this to <code>true</code> has some side
+ effects, including the disabling of JSP reloading in a running server:
+ see <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=37668">
+ Bugzilla 37668</a>.</p>
+
+ <p>Please note that setting this flag to true in applications that are
+ outside the appBase for the Host (the <code>webapps</code> directory
+ by default) will cause the application to be <strong>deleted</strong> on
+ Tomcat shutdown. You probably don't want to do this, so think twice
+ before setting antiResourceLocking=true on a webapp that's outside the
+ appBase for its Host.</p>
+ </td></tr><tr><td align="left" valign="center"><code>cacheMaxSize</code></td><td align="left" valign="center">
+ <p>Maximum size of the static resource cache in kilobytes.
+ If not specified, the default value is <code>10240</code>
+ (10 megabytes).</p>
+ </td></tr><tr><td align="left" valign="center"><code>cacheObjectMaxSize</code></td><td align="left" valign="center">
+ <p>Maximum size of the static resource that will be placed in the cache.
+ If not specified, the default value is <code>512</code>
+ (512 kilobytes). If this value is greater than
+ <code>cacheMaxSize/20</code> it will be reduced to
+ <code>cacheMaxSize/20</code>.</p>
+ </td></tr><tr><td align="left" valign="center"><code>cacheTTL</code></td><td align="left" valign="center">
+ <p>Amount of time in milliseconds between cache entries revalidation.
+ If not specified, the default value is <code>5000</code>
+ (5 seconds).</p>
+ </td></tr><tr><td align="left" valign="center"><code>cachingAllowed</code></td><td align="left" valign="center">
+ <p>If the value of this flag is <code>true</code>, the cache for static
+ resources will be used. If not specified, the default value
+ of the flag is <code>true</code>.</p>
+ </td></tr><tr><td align="left" valign="center"><code>caseSensitive</code></td><td align="left" valign="center">
+ <p><strong>Deprecated.</strong> This option is removed in Tomcat 7
+ onwards where the default of <code>true</code> is always used.</p>
+ <p>If the value of this flag is <code>false</code>, all case sensitivity
+ checks will be disabled. If not
+ specified, the default value of the flag is <code>true</code>.</p>
+ <p><b>NOTE: This flag MUST NOT be set to false on the Windows platform
+ (or any other OS which does not have a case sensitive filesystem),
+ as it will disable case sensitivity checks, allowing JSP source code
+ disclosure, among other security problems.</b></p>
+ </td></tr><tr><td align="left" valign="center"><code>clearReferencesHttpClientKeepAliveThread</code></td><td align="left" valign="center">
+ <p>If <code>true</code> and an <code>sun.net.www.http.HttpClient</code>
+ keep-alive timer thread has been started by this web application and is
+ still running, Tomcat will change the context class loader for that
+ thread from the current <code>WebappClassLoader</code> to
+ <code>WebappClassLoader#parent</code> to prevent a memory leak. Note
+ that the keep-alive timer thread will stop on its own once the
+ keep-alives all expire however, on a busy system that might not happen
+ for some time. If not specified, the default value of
+ <code>true</code> will be used.</p>
+ </td></tr><tr><td align="left" valign="center"><code>clearReferencesStopThreads</code></td><td align="left" valign="center">
+ <p>If <code>true</code>, Tomcat attempts to terminate threads that have
+ been started by the web application. Stopping threads is performed via
+ the deprecated (for good reason) <code>Thread.stop()</code> method and
+ is likely to result in instability. As such, enabling this should be
+ viewed as an option of last resort in a development environment and is
+ not recommended in a production environment. If not specified, the
+ default value of <code>false</code> will be used.</p>
+ </td></tr><tr><td align="left" valign="center"><code>clearReferencesStopTimerThreads</code></td><td align="left" valign="center">
+ <p>If <code>true</code>, Tomcat attempts to terminate
+ <code>java.util.Timer</code> threads that have been started by the web
+ application. Unlike standard threads, timer threads can be stopped
+ safely although there may still be side-effects for the application. If
+ not specified, the default value of <code>false</code> will be used.</p>
+ </td></tr><tr><td align="left" valign="center"><code>clearReferencesThreadLocals</code></td><td align="left" valign="center">
+ <p>If <code>true</code>, Tomcat attempts to clear any ThreadLocal
+ objects that are instances of classes loaded by this class loader.
+ Failure to remove any such objects will result in a memory leak on web
+ application stop, undeploy or reload. If not specified, the default
+ value of <code>false</code> will be used since the clearing of the
+ ThreadLocal objects is not performed in a thread-safe manner.</p>
+ </td></tr><tr><td align="left" valign="center"><code>processTlds</code></td><td align="left" valign="center">
+ <p>Whether the context should process TLDs on startup. The default
+ is true. The false setting is intended for special cases
+ that know in advance TLDs are not part of the webapp.</p>
+ </td></tr><tr><td align="left" valign="center"><code>swallowOutput</code></td><td align="left" valign="center">
+ <p>If the value of this flag is <code>true</code>, the bytes output to
+ System.out and System.err by the web application will be redirected to
+ the web application logger. If not specified, the default value
+ of the flag is <code>false</code>.</p>
+ </td></tr><tr><td align="left" valign="center"><code>unloadDelay</code></td><td align="left" valign="center">
+ <p>Number of ms that the container will wait for servlets to unload.
+ If not specified, the default value is <code>2000</code> ms.</p>
+ </td></tr><tr><td align="left" valign="center"><code>unpackWAR</code></td><td align="left" valign="center">
+ <p>If true, Tomcat will unpack all compressed web applications before
+ running them.
+ If not specified, the default value is <code>true</code>.</p>
+ </td></tr><tr><td align="left" valign="center"><code>useNaming</code></td><td align="left" valign="center">
+ <p>Set to <code>true</code> (the default) to have Catalina enable a
+ JNDI <code>InitialContext</code> for this web application that is
+ compatible with Java2 Enterprise Edition (J2EE) platform
+ conventions.</p>
+ </td></tr><tr><td align="left" valign="center"><code>workDir</code></td><td align="left" valign="center">
+ <p>Pathname to a scratch directory to be provided by this Context
+ for temporary read-write use by servlets within the associated web
+ application. This directory will be made visible to servlets in the
+ web application by a servlet context attribute (of type
+ <code>java.io.File</code>) named
+ <code>javax.servlet.context.tempdir</code> as described in the
+ Servlet Specification. If not specified, a suitable directory
+ underneath <code>$CATALINA_BASE/work</code> will be provided.</p>
+ </td></tr></table>
+
+ </blockquote></td></tr></table>
+
+
+</blockquote></td></tr></table><table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Nested Components"><!--()--></a><a name="Nested_Components"><strong>Nested Components</strong></a></font></td></tr><tr><td><blockquote>
+
+ <p>You can nest at most one instance of the following utility components
+ by nesting a corresponding element inside your <strong>Context</strong>
+ element:</p>
+ <ul>
+ <li><a href="loader.html"><strong>Loader</strong></a> -
+ Configure the web application class loader that will be used to load
+ servlet and bean classes for this web application. Normally, the
+ default configuration of the class loader will be sufficient.</li>
+ <li><a href="manager.html"><strong>Manager</strong></a> -
+ Configure the session manager that will be used to create, destroy,
+ and persist HTTP sessions for this web application. Normally, the
+ default configuration of the session manager will be sufficient.</li>
+ <li><a href="realm.html"><strong>Realm</strong></a> -
+ Configure a realm that will allow its
+ database of users, and their associated roles, to be utilized solely
+ for this particular web application. If not specified, this web
+ application will utilize the Realm associated with the owning
+ <a href="host.html">Host</a> or <a href="engine.html">Engine</a>.</li>
+ <li><a href="resources.html"><strong>Resources</strong></a> -
+ Configure the resource manager that will be used to access the static
+ resources associated with this web application. Normally, the
+ default configuration of the resource manager will be sufficient.</li>
+ <li><strong>WatchedResource</strong> - The auto deployer will monitor the
+ specified static resource of the web application for updates, and will
+ reload the web application if is is updated. The content of this element
+ must be a string.</li>
+ </ul>
+
+</blockquote></td></tr></table><table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Special Features"><!--()--></a><a name="Special_Features"><strong>Special Features</strong></a></font></td></tr><tr><td><blockquote>
+
+
+ <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Logging"><strong>Logging</strong></a></font></td></tr><tr><td><blockquote>
+
+ <p>A context is associated with the
+ <code>org.apache.catalina.core.ContainerBase.[enginename].[hostname].[path]</code>
+ log category. Note that the brackets are actually part of the name, don't omit them.</p>
+
+ </blockquote></td></tr></table>
+
+
+ <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Access Logs"><!--()--></a><a name="Access_Logs"><strong>Access Logs</strong></a></font></td></tr><tr><td><blockquote>
+
+ <p>When you run a web server, one of the output files normally generated
+ is an <em>access log</em>, which generates one line of information for
+ each request processed by the server, in a standard format. Catalina
+ includes an optional <a href="valve.html">Valve</a> implementation that
+ can create access logs in the same standard format created by web servers,
+ or in any number of custom formats.</p>
+
+ <p>You can ask Catalina to create an access log for all requests
+ processed by an <a href="engine.html">Engine</a>,
+ <a href="host.html">Host</a>, or <a href="context.html">Context</a>
+ by nesting a <a href="valve.html">Valve</a> element like this:</p>
+
+<div align="left"><table cellspacing="4" cellpadding="0" border="0"><tr><td bgcolor="#023264" width="1" height="1"><img src="../images/void.gif" alt="" width="1" height="1" vspace="0" hspace="0" border="0"></td><td bgcolor="#023264" height="1"><img src="../images/void.gif" alt="" width="1" height="1" vspace="0" hspace="0" border="0"></td><td bgcolor="#023264" width="1" height="1"><img src="../images/void.gif" alt="" width="1" height="1" vspace="0" hspace="0" border="0"></td></tr><tr><td bgcolor="#023264" width="1"><img src="../images/void.gif" alt="" width="1" height="1" vspace="0" hspace="0" border="0"></td><td bgcolor="#ffffff" height="1"><pre>
+<Context>
+ ...
+ <Valve className="org.apache.catalina.valves.AccessLogValve"
+ prefix="localhost_access_log." suffix=".txt"
+ pattern="common"/>
+ ...
+</Context>
+</pre></td><td bgcolor="#023264" width="1"><img src="../images/void.gif" alt="" width="1" height="1" vspace="0" hspace="0" border="0"></td></tr><tr><td bgcolor="#023264" width="1" height="1"><img src="../images/void.gif" alt="" width="1" height="1" vspace="0" hspace="0" border="0"></td><td bgcolor="#023264" height="1"><img src="../images/void.gif" alt="" width="1" height="1" vspace="0" hspace="0" border="0"></td><td bgcolor="#023264" width="1" height="1"><img src="../images/void.gif" alt="" width="1" height="1" vspace="0" hspace="0" border="0"></td></tr></table></div>
+
+ <p>See <a href="valve.html#Access Log Valve">Access Log Valve</a>
+ for more information on the configuration attributes that are
+ supported.</p>
+
+ </blockquote></td></tr></table>
+
+
+ <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Automatic Context Configuration"><!--()--></a><a name="Automatic_Context_Configuration"><strong>Automatic Context Configuration</strong></a></font></td></tr><tr><td><blockquote>
+
+ <p>If you use the standard <strong>Context</strong> implementation,
+ the following configuration steps occur automatically when Catalina
+ is started, or whenever this web application is reloaded. No special
+ configuration is required to enable this feature.</p>
+
+ <ul>
+ <li>If you have not declared your own <a href="loader.html">Loader</a>
+ element, a standard web application class loader will be configured.
+ </li>
+ <li>If you have not declared your own <a href="manager.html">Manager</a>
+ element, a standard session manager will be configured.</li>
+ <li>If you have not declared your own <a href="resources.html">Resources</a>
+ element, a standard resources manager will be configured.</li>
+ <li>The web application properties listed in <code>conf/web.xml</code>
+ will be processed as defaults for this web application. This is used
+ to establish default mappings (such as mapping the <code>*.jsp</code>
+ extension to the corresponding JSP servlet), and other standard
+ features that apply to all web applications.</li>
+ <li>The web application properties listed in the
+ <code>/WEB-INF/web.xml</code> resource for this web application
+ will be processed (if this resource exists).</li>
+ <li>If your web application has specified security constraints that might
+ require user authentication, an appropriate Authenticator that
+ implements the login method you have selected will be configured.</li>
+ </ul>
+
+ </blockquote></td></tr></table>
+
+
+ <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Context Parameters"><!--()--></a><a name="Context_Parameters"><strong>Context Parameters</strong></a></font></td></tr><tr><td><blockquote>
+
+ <p>You can configure named values that will be made visible to the
+ web application as servlet context initialization parameters by nesting
+ <code><Parameter></code> elements inside this element. For
+ example, you can create an initialization parameter like this:</p>
+<div align="left"><table cellspacing="4" cellpadding="0" border="0"><tr><td bgcolor="#023264" width="1" height="1"><img src="../images/void.gif" alt="" width="1" height="1" vspace="0" hspace="0" border="0"></td><td bgcolor="#023264" height="1"><img src="../images/void.gif" alt="" width="1" height="1" vspace="0" hspace="0" border="0"></td><td bgcolor="#023264" width="1" height="1"><img src="../images/void.gif" alt="" width="1" height="1" vspace="0" hspace="0" border="0"></td></tr><tr><td bgcolor="#023264" width="1"><img src="../images/void.gif" alt="" width="1" height="1" vspace="0" hspace="0" border="0"></td><td bgcolor="#ffffff" height="1"><pre>
+<Context>
+ ...
+ <Parameter name="companyName" value="My Company, Incorporated"
+ override="false"/>
+ ...
+</Context>
+</pre></td><td bgcolor="#023264" width="1"><img src="../images/void.gif" alt="" width="1" height="1" vspace="0" hspace="0" border="0"></td></tr><tr><td bgcolor="#023264" width="1" height="1"><img src="../images/void.gif" alt="" width="1" height="1" vspace="0" hspace="0" border="0"></td><td bgcolor="#023264" height="1"><img src="../images/void.gif" alt="" width="1" height="1" vspace="0" hspace="0" border="0"></td><td bgcolor="#023264" width="1" height="1"><img src="../images/void.gif" alt="" width="1" height="1" vspace="0" hspace="0" border="0"></td></tr></table></div>
+
+ <p>This is equivalent to the inclusion of the following element in the
+ web application deployment descriptor (<code>/WEB-INF/web.xml</code>):
+ </p>
+<div align="left"><table cellspacing="4" cellpadding="0" border="0"><tr><td bgcolor="#023264" width="1" height="1"><img src="../images/void.gif" alt="" width="1" height="1" vspace="0" hspace="0" border="0"></td><td bgcolor="#023264" height="1"><img src="../images/void.gif" alt="" width="1" height="1" vspace="0" hspace="0" border="0"></td><td bgcolor="#023264" width="1" height="1"><img src="../images/void.gif" alt="" width="1" height="1" vspace="0" hspace="0" border="0"></td></tr><tr><td bgcolor="#023264" width="1"><img src="../images/void.gif" alt="" width="1" height="1" vspace="0" hspace="0" border="0"></td><td bgcolor="#ffffff" height="1"><pre>
+<context-param>
+ <param-name>companyName</param-name>
+ <param-value>My Company, Incorporated</param-value>
+</context-param>
+</pre></td><td bgcolor="#023264" width="1"><img src="../images/void.gif" alt="" width="1" height="1" vspace="0" hspace="0" border="0"></td></tr><tr><td bgcolor="#023264" width="1" height="1"><img src="../images/void.gif" alt="" width="1" height="1" vspace="0" hspace="0" border="0"></td><td bgcolor="#023264" height="1"><img src="../images/void.gif" alt="" width="1" height="1" vspace="0" hspace="0" border="0"></td><td bgcolor="#023264" width="1" height="1"><img src="../images/void.gif" alt="" width="1" height="1" vspace="0" hspace="0" border="0"></td></tr></table></div>
+ <p>but does <em>not</em> require modification of the deployment descriptor
+ to customize this value.</p>
+
+ <p>The valid attributes for a <code><Parameter></code> element
+ are as follows:</p>
+
+ <table border="1" cellpadding="5"><tr><th width="15%" bgcolor="#023264"><font color="#ffffff">Attribute</font></th><th width="85%" bgcolor="#023264"><font color="#ffffff">Description</font></th></tr><tr><td align="left" valign="center"><code>description</code></td><td align="left" valign="center">
+ <p>Optional, human-readable description of this context
+ initialization parameter.</p>
+ </td></tr><tr><td align="left" valign="center"><strong><code>name</code></strong></td><td align="left" valign="center">
+ <p>The name of the context initialization parameter to be created.</p>
+ </td></tr><tr><td align="left" valign="center"><code>override</code></td><td align="left" valign="center">
+ <p>Set this to <code>false</code> if you do <strong>not</strong> want
+ a <code><context-param></code> for the same parameter name,
+ found in the web application deployment descriptor, to override the
+ value specified here. By default, overrides are allowed.</p>
+ </td></tr><tr><td align="left" valign="center"><strong><code>value</code></strong></td><td align="left" valign="center">
+ <p>The parameter value that will be presented to the application
+ when requested by calling
+ <code>ServletContext.getInitParameter()</code>.</p>
+ </td></tr></table>
+
+ </blockquote></td></tr></table>
+
+
+ <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Environment Entries"><!--()--></a><a name="Environment_Entries"><strong>Environment Entries</strong></a></font></td></tr><tr><td><blockquote>
+
+ <p>You can configure named values that will be made visible to the
+ web application as environment entry resources, by nesting
+ <code><Environment></code> entries inside this element. For
+ example, you can create an environment entry like this:</p>
+<div align="left"><table cellspacing="4" cellpadding="0" border="0"><tr><td bgcolor="#023264" width="1" height="1"><img src="../images/void.gif" alt="" width="1" height="1" vspace="0" hspace="0" border="0"></td><td bgcolor="#023264" height="1"><img src="../images/void.gif" alt="" width="1" height="1" vspace="0" hspace="0" border="0"></td><td bgcolor="#023264" width="1" height="1"><img src="../images/void.gif" alt="" width="1" height="1" vspace="0" hspace="0" border="0"></td></tr><tr><td bgcolor="#023264" width="1"><img src="../images/void.gif" alt="" width="1" height="1" vspace="0" hspace="0" border="0"></td><td bgcolor="#ffffff" height="1"><pre>
+<Context>
+ ...
+ <Environment name="maxExemptions" value="10"
+ type="java.lang.Integer" override="false"/>
+ ...
+</Context>
+</pre></td><td bgcolor="#023264" width="1"><img src="../images/void.gif" alt="" width="1" height="1" vspace="0" hspace="0" border="0"></td></tr><tr><td bgcolor="#023264" width="1" height="1"><img src="../images/void.gif" alt="" width="1" height="1" vspace="0" hspace="0" border="0"></td><td bgcolor="#023264" height="1"><img src="../images/void.gif" alt="" width="1" height="1" vspace="0" hspace="0" border="0"></td><td bgcolor="#023264" width="1" height="1"><img src="../images/void.gif" alt="" width="1" height="1" vspace="0" hspace="0" border="0"></td></tr></table></div>
+
+ <p>This is equivalent to the inclusion of the following element in the
+ web application deployment descriptor (<code>/WEB-INF/web.xml</code>):
+ </p>
+<div align="left"><table cellspacing="4" cellpadding="0" border="0"><tr><td bgcolor="#023264" width="1" height="1"><img src="../images/void.gif" alt="" width="1" height="1" vspace="0" hspace="0" border="0"></td><td bgcolor="#023264" height="1"><img src="../images/void.gif" alt="" width="1" height="1" vspace="0" hspace="0" border="0"></td><td bgcolor="#023264" width="1" height="1"><img src="../images/void.gif" alt="" width="1" height="1" vspace="0" hspace="0" border="0"></td></tr><tr><td bgcolor="#023264" width="1"><img src="../images/void.gif" alt="" width="1" height="1" vspace="0" hspace="0" border="0"></td><td bgcolor="#ffffff" height="1"><pre>
+<env-entry>
+ <env-entry-name>maxExemptions</env-entry-name>
+ <env-entry-value>10</env-entry-value>
+ <env-entry-type>java.lang.Integer</env-entry-type>
+</env-entry>
+</pre></td><td bgcolor="#023264" width="1"><img src="../images/void.gif" alt="" width="1" height="1" vspace="0" hspace="0" border="0"></td></tr><tr><td bgcolor="#023264" width="1" height="1"><img src="../images/void.gif" alt="" width="1" height="1" vspace="0" hspace="0" border="0"></td><td bgcolor="#023264" height="1"><img src="../images/void.gif" alt="" width="1" height="1" vspace="0" hspace="0" border="0"></td><td bgcolor="#023264" width="1" height="1"><img src="../images/void.gif" alt="" width="1" height="1" vspace="0" hspace="0" border="0"></td></tr></table></div>
+ <p>but does <em>not</em> require modification of the deployment descriptor
+ to customize this value.</p>
+
+ <p>The valid attributes for an <code><Environment></code> element
+ are as follows:</p>
+
+ <table border="1" cellpadding="5"><tr><th width="15%" bgcolor="#023264"><font color="#ffffff">Attribute</font></th><th width="85%" bgcolor="#023264"><font color="#ffffff">Description</font></th></tr><tr><td align="left" valign="center"><code>description</code></td><td align="left" valign="center">
+ <p>Optional, human-readable description of this environment entry.</p>
+ </td></tr><tr><td align="left" valign="center"><strong><code>name</code></strong></td><td align="left" valign="center">
+ <p>The name of the environment entry to be created, relative to the
+ <code>java:comp/env</code> context.</p>
+ </td></tr><tr><td align="left" valign="center"><code>override</code></td><td align="left" valign="center">
+ <p>Set this to <code>false</code> if you do <strong>not</strong> want
+ an <code><env-entry></code> for the same environment entry name,
+ found in the web application deployment descriptor, to override the
+ value specified here. By default, overrides are allowed.</p>
+ </td></tr><tr><td align="left" valign="center"><strong><code>type</code></strong></td><td align="left" valign="center">
+ <p>The fully qualified Java class name expected by the web application
+ for this environment entry. Must be one of the legal values for
+ <code><env-entry-type></code> in the web application deployment
+ descriptor: <code>java.lang.Boolean</code>,
+ <code>java.lang.Byte</code>, <code>java.lang.Character</code>,
+ <code>java.lang.Double</code>, <code>java.lang.Float</code>,
+ <code>java.lang.Integer</code>, <code>java.lang.Long</code>,
+ <code>java.lang.Short</code>, or <code>java.lang.String</code>.</p>
+ </td></tr><tr><td align="left" valign="center"><strong><code>value</code></strong></td><td align="left" valign="center">
+ <p>The parameter value that will be presented to the application
+ when requested from the JNDI context. This value must be convertable
+ to the Java type defined by the <code>type</code> attribute.</p>
+ </td></tr></table>
+
+ </blockquote></td></tr></table>
+
+
+ <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Lifecycle Listeners"><!--()--></a><a name="Lifecycle_Listeners"><strong>Lifecycle Listeners</strong></a></font></td></tr><tr><td><blockquote>
+
+ <p>If you have implemented a Java object that needs to know when this
+ <strong>Context</strong> is started or stopped, you can declare it by
+ nesting a <strong>Listener</strong> element inside this element. The
+ class name you specify must implement the
+ <code>org.apache.catalina.LifecycleListener</code> interface, and
+ the class must be packaged in a jar and placed in the
+ <code>$CATALINA_HOME/lib</code> directory.
+ It will be notified about the occurrence of the corresponding
+ lifecycle events. Configuration of such a listener looks like this:</p>
+
+<div align="left"><table cellspacing="4" cellpadding="0" border="0"><tr><td bgcolor="#023264" width="1" height="1"><img src="../images/void.gif" alt="" width="1" height="1" vspace="0" hspace="0" border="0"></td><td bgcolor="#023264" height="1"><img src="../images/void.gif" alt="" width="1" height="1" vspace="0" hspace="0" border="0"></td><td bgcolor="#023264" width="1" height="1"><img src="../images/void.gif" alt="" width="1" height="1" vspace="0" hspace="0" border="0"></td></tr><tr><td bgcolor="#023264" width="1"><img src="../images/void.gif" alt="" width="1" height="1" vspace="0" hspace="0" border="0"></td><td bgcolor="#ffffff" height="1"><pre>
+<Context>
+ ...
+ <Listener className="com.mycompany.mypackage.MyListener" ... >
+ ...
+</Context>
+</pre></td><td bgcolor="#023264" width="1"><img src="../images/void.gif" alt="" width="1" height="1" vspace="0" hspace="0" border="0"></td></tr><tr><td bgcolor="#023264" width="1" height="1"><img src="../images/void.gif" alt="" width="1" height="1" vspace="0" hspace="0" border="0"></td><td bgcolor="#023264" height="1"><img src="../images/void.gif" alt="" width="1" height="1" vspace="0" hspace="0" border="0"></td><td bgcolor="#023264" width="1" height="1"><img src="../images/void.gif" alt="" width="1" height="1" vspace="0" hspace="0" border="0"></td></tr></table></div>
+
+ <p>Note that a Listener can have any number of additional properties
+ that may be configured from this element. Attribute names are matched
+ to corresponding JavaBean property names using the standard property
+ method naming patterns.</p>
+
+ </blockquote></td></tr></table>
+
+
+ <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Request Filters"><!--()--></a><a name="Request_Filters"><strong>Request Filters</strong></a></font></td></tr><tr><td><blockquote>
+
+ <p>You can ask Catalina to check the IP address, or host name, on every
+ incoming request directed to the surrounding
+ <a href="engine.html">Engine</a>, <a href="host.html">Host</a>, or
+ <a href="context.html">Context</a> element. The remote address or name
+ will be checked against a configured list of "accept" and/or "deny"
+ filters, which are defined using <code>java.util.regex</code> Regular
+ Expression syntax. Requests that come from locations that are
+ not accepted will be rejected with an HTTP "Forbidden" error.
+ Example filter declarations:</p>
+
+<div align="left"><table cellspacing="4" cellpadding="0" border="0"><tr><td bgcolor="#023264" width="1" height="1"><img src="../images/void.gif" alt="" width="1" height="1" vspace="0" hspace="0" border="0"></td><td bgcolor="#023264" height="1"><img src="../images/void.gif" alt="" width="1" height="1" vspace="0" hspace="0" border="0"></td><td bgcolor="#023264" width="1" height="1"><img src="../images/void.gif" alt="" width="1" height="1" vspace="0" hspace="0" border="0"></td></tr><tr><td bgcolor="#023264" width="1"><img src="../images/void.gif" alt="" width="1" height="1" vspace="0" hspace="0" border="0"></td><td bgcolor="#ffffff" height="1"><pre>
+<Context>
+ ...
+ <Valve className="org.apache.catalina.valves.RemoteHostValve"
+ allow=".*\.mycompany\.com|www\.yourcompany\.com"/>
+ <Valve className="org.apache.catalina.valves.RemoteAddrValve"
+ deny="192\.168\.1\.\d+"/>
+ ...
+</Context>
+</pre></td><td bgcolor="#023264" width="1"><img src="../images/void.gif" alt="" width="1" height="1" vspace="0" hspace="0" border="0"></td></tr><tr><td bgcolor="#023264" width="1" height="1"><img src="../images/void.gif" alt="" width="1" height="1" vspace="0" hspace="0" border="0"></td><td bgcolor="#023264" height="1"><img src="../images/void.gif" alt="" width="1" height="1" vspace="0" hspace="0" border="0"></td><td bgcolor="#023264" width="1" height="1"><img src="../images/void.gif" alt="" width="1" height="1" vspace="0" hspace="0" border="0"></td></tr></table></div>
+
+ <p>See <a href="valve.html#Remote Address Filter">Remote Address Filter</a>
+ and <a href="valve.html#Remote Host Filter">Remote Host Filter</a> for
+ more information about the configuration options that are supported.</p>
+
+ </blockquote></td></tr></table>
+
+
+ <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Resource Definitions"><!--()--></a><a name="Resource_Definitions"><strong>Resource Definitions</strong></a></font></td></tr><tr><td><blockquote>
+
+ <p>You can declare the characteristics of the resource
+ to be returned for JNDI lookups of <code><resource-ref></code> and
+ <code><resource-env-ref></code> elements in the web application
+ deployment descriptor. You <strong>MUST</strong> also define
+ the needed resource parameters as attributes of the <code>Resource</code>
+ element, to configure the object factory to be used (if not known to Tomcat
+ already), and the properties used to configure that object factory.</p>
+
+ <p>For example, you can create a resource definition like this:</p>
+<div align="left"><table cellspacing="4" cellpadding="0" border="0"><tr><td bgcolor="#023264" width="1" height="1"><img src="../images/void.gif" alt="" width="1" height="1" vspace="0" hspace="0" border="0"></td><td bgcolor="#023264" height="1"><img src="../images/void.gif" alt="" width="1" height="1" vspace="0" hspace="0" border="0"></td><td bgcolor="#023264" width="1" height="1"><img src="../images/void.gif" alt="" width="1" height="1" vspace="0" hspace="0" border="0"></td></tr><tr><td bgcolor="#023264" width="1"><img src="../images/void.gif" alt="" width="1" height="1" vspace="0" hspace="0" border="0"></td><td bgcolor="#ffffff" height="1"><pre>
+<Context>
+ ...
+ <Resource name="jdbc/EmployeeDB" auth="Container"
+ type="javax.sql.DataSource"
+ description="Employees Database for HR Applications"/>
+ ...
+</Context>
+</pre></td><td bgcolor="#023264" width="1"><img src="../images/void.gif" alt="" width="1" height="1" vspace="0" hspace="0" border="0"></td></tr><tr><td bgcolor="#023264" width="1" height="1"><img src="../images/void.gif" alt="" width="1" height="1" vspace="0" hspace="0" border="0"></td><td bgcolor="#023264" height="1"><img src="../images/void.gif" alt="" width="1" height="1" vspace="0" hspace="0" border="0"></td><td bgcolor="#023264" width="1" height="1"><img src="../images/void.gif" alt="" width="1" height="1" vspace="0" hspace="0" border="0"></td></tr></table></div>
+
+ <p>This is equivalent to the inclusion of the following element in the
+ web application deployment descriptor (<code>/WEB-INF/web.xml</code>):</p>
+<div align="left"><table cellspacing="4" cellpadding="0" border="0"><tr><td bgcolor="#023264" width="1" height="1"><img src="../images/void.gif" alt="" width="1" height="1" vspace="0" hspace="0" border="0"></td><td bgcolor="#023264" height="1"><img src="../images/void.gif" alt="" width="1" height="1" vspace="0" hspace="0" border="0"></td><td bgcolor="#023264" width="1" height="1"><img src="../images/void.gif" alt="" width="1" height="1" vspace="0" hspace="0" border="0"></td></tr><tr><td bgcolor="#023264" width="1"><img src="../images/void.gif" alt="" width="1" height="1" vspace="0" hspace="0" border="0"></td><td bgcolor="#ffffff" height="1"><pre>
+<resource-ref>
+ <description>Employees Database for HR Applications</description>
+ <res-ref-name>jdbc/EmployeeDB</res-ref-name>
+ <res-ref-type>javax.sql.DataSource</res-ref-type>
+ <res-auth>Container</res-auth>
+</resource-ref>
+</pre></td><td bgcolor="#023264" width="1"><img src="../images/void.gif" alt="" width="1" height="1" vspace="0" hspace="0" border="0"></td></tr><tr><td bgcolor="#023264" width="1" height="1"><img src="../images/void.gif" alt="" width="1" height="1" vspace="0" hspace="0" border="0"></td><td bgcolor="#023264" height="1"><img src="../images/void.gif" alt="" width="1" height="1" vspace="0" hspace="0" border="0"></td><td bgcolor="#023264" width="1" height="1"><img src="../images/void.gif" alt="" width="1" height="1" vspace="0" hspace="0" border="0"></td></tr></table></div>
+
+ <p>but does <em>not</em> require modification of the deployment
+ descriptor to customize this value.</p>
+
+ <p>The valid attributes for a <code><Resource></code> element
+ are as follows:</p>
+
+ <table border="1" cellpadding="5"><tr><th width="15%" bgcolor="#023264"><font color="#ffffff">Attribute</font></th><th width="85%" bgcolor="#023264"><font color="#ffffff">Description</font></th></tr><tr><td align="left" valign="center"><code>auth</code></td><td align="left" valign="center">
+ <p>Specify whether the web Application code signs on to the
+ corresponding resource manager programatically, or whether the
+ Container will sign on to the resource manager on behalf of the
+ application. The value of this attribute must be
+ <code>Application</code> or <code>Container</code>. This
+ attribute is <strong>required</strong> if the web application
+ will use a <code><resource-ref></code> element in the web
+ application deployment descriptor, but is optional if the
+ application uses a <code><resource-env-ref></code> instead.</p>
+ </td></tr><tr><td align="left" valign="center"><code>description</code></td><td align="left" valign="center">
+ <p>Optional, human-readable description of this resource.</p>
+ </td></tr><tr><td align="left" valign="center"><strong><code>name</code></strong></td><td align="left" valign="center">
+ <p>The name of the resource to be created, relative to the
+ <code>java:comp/env</code> context.</p>
+ </td></tr><tr><td align="left" valign="center"><code>scope</code></td><td align="left" valign="center">
+ <p>Specify whether connections obtained through this resource
+ manager can be shared. The value of this attribute must be
+ <code>Shareable</code> or <code>Unshareable</code>. By default,
+ connections are assumed to be shareable.</p>
+ </td></tr><tr><td align="left" valign="center"><strong><code>type</code></strong></td><td align="left" valign="center">
+ <p>The fully qualified Java class name expected by the web
+ application when it performs a lookup for this resource.</p>
+ </td></tr></table>
+
+
+ </blockquote></td></tr></table>
+
+
+ <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Resource Links"><!--()--></a><a name="Resource_Links"><strong>Resource Links</strong></a></font></td></tr><tr><td><blockquote>
+
+ <p>This element is used to create a link to a global JNDI resource. Doing
+ a JNDI lookup on the link name will then return the linked global
+ resource.</p>
+
+ <p>For example, you can create a resource link like this:</p>
+<div align="left"><table cellspacing="4" cellpadding="0" border="0"><tr><td bgcolor="#023264" width="1" height="1"><img src="../images/void.gif" alt="" width="1" height="1" vspace="0" hspace="0" border="0"></td><td bgcolor="#023264" height="1"><img src="../images/void.gif" alt="" width="1" height="1" vspace="0" hspace="0" border="0"></td><td bgcolor="#023264" width="1" height="1"><img src="../images/void.gif" alt="" width="1" height="1" vspace="0" hspace="0" border="0"></td></tr><tr><td bgcolor="#023264" width="1"><img src="../images/void.gif" alt="" width="1" height="1" vspace="0" hspace="0" border="0"></td><td bgcolor="#ffffff" height="1"><pre>
+<Context>
+ ...
+ <ResourceLink name="linkToGlobalResource"
+ global="simpleValue"
+ type="java.lang.Integer"
+ ...
+</Context>
+</pre></td><td bgcolor="#023264" width="1"><img src="../images/void.gif" alt="" width="1" height="1" vspace="0" hspace="0" border="0"></td></tr><tr><td bgcolor="#023264" width="1" height="1"><img src="../images/void.gif" alt="" width="1" height="1" vspace="0" hspace="0" border="0"></td><td bgcolor="#023264" height="1"><img src="../images/void.gif" alt="" width="1" height="1" vspace="0" hspace="0" border="0"></td><td bgcolor="#023264" width="1" height="1"><img src="../images/void.gif" alt="" width="1" height="1" vspace="0" hspace="0" border="0"></td></tr></table></div>
+
+ <p>The valid attributes for a <code><ResourceLink></code> element
+ are as follows:</p>
+
+ <table border="1" cellpadding="5"><tr><th width="15%" bgcolor="#023264"><font color="#ffffff">Attribute</font></th><th width="85%" bgcolor="#023264"><font color="#ffffff">Description</font></th></tr><tr><td align="left" valign="center"><strong><code>global</code></strong></td><td align="left" valign="center">
+ <p>The name of the linked global resource in the
+ global JNDI context.</p>
+ </td></tr><tr><td align="left" valign="center"><strong><code>name</code></strong></td><td align="left" valign="center">
+ <p>The name of the resource link to be created, relative to the
+ <code>java:comp/env</code> context.</p>
+ </td></tr><tr><td align="left" valign="center"><strong><code>type</code></strong></td><td align="left" valign="center">
+ <p>The fully qualified Java class name expected by the web
+ application when it performs a lookup for this resource link.</p>
+ </td></tr><tr><td align="left" valign="center"><code>factory</code></td><td align="left" valign="center">
+ <p>The fully qualified Java class name for the class creating these objects.
+ This class should implement the <code>javax.naming.spi.ObjectFactory</code> interface.</p>
+ </td></tr></table>
+
+ <p>When the attribute <code>factory="org.apache.naming.factory.DataSourceLinkFactory"</code> the resource link can be used with
+ two additional attributes to allow a shared data source to be used with different credentials.
+ When these two additional attributes are used in combination with the <code>javax.sql.DataSource</code>
+ type, different contexts can share a global data source with different credentials.
+ Under the hood, what happens is that a call to <a href="http://docs.oracle.com/javase/6/docs/api/javax/sql/DataSource.html#getConnection()"><code>getConnection()</code></a>
+ is simply translated to a call <a href="http://docs.oracle.com/javase/6/docs/api/javax/sql/DataSource.html#getConnection(java.lang.String,%20java.lang.String)">
+ <code>getConnection(username, password)</code></a> on the global data source. This is an easy way to get code to be transparent to what schemas are being used,
+ yet be able to control connections (or pools) in the global configuration.
+ </p>
+ <table border="1" cellpadding="5"><tr><th width="15%" bgcolor="#023264"><font color="#ffffff">Attribute</font></th><th width="85%" bgcolor="#023264"><font color="#ffffff">Description</font></th></tr><tr><td align="left" valign="center"><code>username</code></td><td align="left" valign="center">
+ <p><code>username</code> value for the <code>getConnection(username, password)</code>
+ call on the linked global DataSource.
+ </p>
+ </td></tr><tr><td align="left" valign="center"><code>password</code></td><td align="left" valign="center">
+ <p><code>password</code> value for the <code>getConnection(username, password)</code>
+ call on the linked global DataSource.
+ </p>
+ </td></tr></table>
+ <p>Shared Data Source Example:</p>
+ <p><strong>Warning:</strong> This feature works only if the global DataSource
+supports <code>getConnection(username, password)</code> method.
+<a href="http://commons.apache.org/dbcp/">Apache Commons DBCP</a> pool that
+Tomcat uses by default does not support it. See its Javadoc for
+<code>BasicDataSource</code> class.
+<a href="http://tomcat.apache.org/tomcat-7.0-doc/jdbc-pool.html">Apache Tomcat JDBC pool</a>
+(included with Tomcat 7 and later) does support it,
+but by default this support is disabled and can be enabled by
+<code>alternateUsernameAllowed</code> attribute. See its documentation
+for details. The example below uses Apache Tomcat JDBC pool.</p>
+<div align="left"><table cellspacing="4" cellpadding="0" border="0"><tr><td bgcolor="#023264" width="1" height="1"><img src="../images/void.gif" alt="" width="1" height="1" vspace="0" hspace="0" border="0"></td><td bgcolor="#023264" height="1"><img src="../images/void.gif" alt="" width="1" height="1" vspace="0" hspace="0" border="0"></td><td bgcolor="#023264" width="1" height="1"><img src="../images/void.gif" alt="" width="1" height="1" vspace="0" hspace="0" border="0"></td></tr><tr><td bgcolor="#023264" width="1"><img src="../images/void.gif" alt="" width="1" height="1" vspace="0" hspace="0" border="0"></td><td bgcolor="#ffffff" height="1"><pre>
+<GlobalNamingResources>
+ ...
+ <Resource name="sharedDataSource"
+ global="sharedDataSource"
+ type="javax.sql.DataSource"
+ factory="org.apache.tomcat.jdbc.pool.DataSourceFactory"
+ alternateUsernameAllowed="true"
+ username="bar"
+ password="barpass"
+ ...
+ ...
+</GlobalNamingResources>
+
+<Context path="/foo"...>
+ ...
+ <ResourceLink
+ name="appDataSource"
+ global="sharedDataSource"
+ type="javax.sql.DataSource"
+ factory="org.apache.naming.factory.DataSourceLinkFactory"
+ username="foo"
+ password="foopass"
+ ...
+</Context>
+<Context path="/bar"...>
+ ...
+ <ResourceLink
+ name="appDataSource"
+ global="sharedDataSource"
+ type="javax.sql.DataSource"
+ ...
+</Context>
+</pre></td><td bgcolor="#023264" width="1"><img src="../images/void.gif" alt="" width="1" height="1" vspace="0" hspace="0" border="0"></td></tr><tr><td bgcolor="#023264" width="1" height="1"><img src="../images/void.gif" alt="" width="1" height="1" vspace="0" hspace="0" border="0"></td><td bgcolor="#023264" height="1"><img src="../images/void.gif" alt="" width="1" height="1" vspace="0" hspace="0" border="0"></td><td bgcolor="#023264" width="1" height="1"><img src="../images/void.gif" alt="" width="1" height="1" vspace="0" hspace="0" border="0"></td></tr></table></div>
+ <p>When a request for <code>getConnection()</code> is made in the <code>/foo</code> context, the request is translated into
+ <code>getConnection("foo","foopass")</code>, while a request in the <code>/bar</code> gets passed straight through.</p>
+ </blockquote></td></tr></table>
+
+ <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Transaction"><strong>Transaction</strong></a></font></td></tr><tr><td><blockquote>
+
+ <p>You can declare the characteristics of the UserTransaction
+ to be returned for JNDI lookup for <code>java:comp/UserTransaction</code>.
+ You <strong>MUST</strong> define an object factory class to instantiate
+ this object as well as the needed resource parameters as attributes of the
+ <code>Transaction</code>
+ element, and the properties used to configure that object factory.</p>
+
+ <p>The valid attributes for the <code><Transaction></code> element
+ are as follows:</p>
+
+ <table border="1" cellpadding="5"><tr><th width="15%" bgcolor="#023264"><font color="#ffffff">Attribute</font></th><th width="85%" bgcolor="#023264"><font color="#ffffff">Description</font></th></tr><tr><td align="left" valign="center"><strong><code>factory</code></strong></td><td align="left" valign="center">
+ <p>The class name for the JNDI object factory.</p>
+ </td></tr></table>
+
+ </blockquote></td></tr></table>
+
+</blockquote></td></tr></table></td></tr><!--FOOTER SEPARATOR--><tr><td colspan="2"><hr noshade="noshade" size="1"></td></tr><!--PAGE FOOTER--><tr><td colspan="2"><div align="center"><font color="#525D76" size="-1"><em>
+ Copyright © 1999-2014, Apache Software Foundation
+ </em></font></div></td></tr></table></body></html>
\ No newline at end of file
diff --git a/tomcat-uid/webapps/docs/config/engine.html b/tomcat-uid/webapps/docs/config/engine.html
new file mode 100644
index 0000000..8197380
--- /dev/null
+++ b/tomcat-uid/webapps/docs/config/engine.html
@@ -0,0 +1,202 @@
+<html><head><META http-equiv="Content-Type" content="text/html; charset=iso-8859-1"><title>Apache Tomcat Configuration Reference (6.0.39) - The Engine Container</title><meta name="author" content="Craig R. McClanahan"><style type="text/css" media="print">
+ .noPrint {display: none;}
+ td#mainBody {width: 100%;}
+ </style></head><body bgcolor="#ffffff" text="#000000" link="#525D76" alink="#525D76" vlink="#525D76"><table border="0" width="100%" cellspacing="0"><!--PAGE HEADER--><tr><td><!--PROJECT LOGO--><a href="http://tomcat.apache.org/"><img src="../images/tomcat.gif" align="right" alt="
+ The Apache Tomcat Servlet/JSP Container
+ " border="0"></a></td><td><h1><font face="arial,helvetica,sanserif">Apache Tomcat 6.0</font></h1><font face="arial,helvetica,sanserif">Version 6.0.39, Jan 27 2014</font></td><td><!--APACHE LOGO--><a href="http://www.apache.org/"><img src="../images/asf-logo.gif" align="right" alt="Apache Logo" border="0"></a></td></tr></table><table border="0" width="100%" cellspacing="4"><!--HEADER SEPARATOR--><tr><td colspan="2"><hr noshade="noshade" size="1"></td></tr><tr><!--LEFT SIDE NAVIGATION--><td width="20%" valign="top" nowrap="nowrap" class="noPrint"><p><strong>Links</strong></p><ul><li><a href="../index.html">Docs Home</a></li><li><a href="index.html">Config Ref. Home</a></li></ul><p><strong>Top Level Elements</strong></p><ul><li><a href="server.html">Server</a></li><li><a href="service.html">Service</a></li></ul><p><strong>Executors</strong></p><ul><li><a href="executor.html">Executor</a></li></ul><p><strong>Connectors</strong></p><ul><li><a href="http.html">HTTP</a></li><li><a href="ajp.html">AJP</a></li></ul><p><strong>Containers</strong></p><ul><li><a href="context.html">Context</a></li><li><a href="engine.html">Engine</a></li><li><a href="host.html">Host</a></li><li><a href="cluster.html">Cluster</a></li></ul><p><strong>Nested Components</strong></p><ul><li><a href="globalresources.html">Global Resources</a></li><li><a href="listeners.html">Listeners</a></li><li><a href="loader.html">Loader</a></li><li><a href="manager.html">Manager</a></li><li><a href="realm.html">Realm</a></li><li><a href="resources.html">Resources</a></li><li><a href="valve.html">Valve</a></li></ul><p><strong>Cluster Elements</strong></p><ul><li><a href="cluster.html">Cluster</a></li><li><a href="cluster-manager.html">Manager</a></li><li><a href="cluster-channel.html">Channel</a></li><li><a href="cluster-membership.html">Channel/Membership</a></li><li><a href="cluster-sender.html">Channel/Sender</a></li><li><a href="cluster-receiver.html">Channel/Receiver</a></li><li><a href="cluster-interceptor.html">Channel/Interceptor</a></li><li><a href="cluster-valve.html">Valve</a></li><li><a href="cluster-deployer.html">Deployer</a></li><li><a href="cluster-listener.html">ClusterListener</a></li></ul><p><strong>Other</strong></p><ul><li><a href="filter.html">Filter</a></li><li><a href="systemprops.html">System properties</a></li></ul></td><!--RIGHT SIDE MAIN BODY--><td width="80%" valign="top" align="left" id="mainBody"><h1>Apache Tomcat Configuration Reference</h1><h2>The Engine Container</h2><table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Table of Contents"><!--()--></a><a name="Table_of_Contents"><strong>Table of Contents</strong></a></font></td></tr><tr><td><blockquote>
+<ul><li><a href="#Introduction">Introduction</a></li><li><a href="#Attributes">Attributes</a><ol><li><a href="#Common_Attributes">Common Attributes</a></li><li><a href="#Standard_Implementation">Standard Implementation</a></li></ol></li><li><a href="#Nested_Components">Nested Components</a></li><li><a href="#Special_Features">Special Features</a><ol><li><a href="#Logging">Logging</a></li><li><a href="#Access_Logs">Access Logs</a></li><li><a href="#Lifecycle_Listeners">Lifecycle Listeners</a></li><li><a href="#Request_Filters">Request Filters</a></li></ol></li></ul>
+</blockquote></td></tr></table><table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Introduction"><strong>Introduction</strong></a></font></td></tr><tr><td><blockquote>
+
+ <p>The <strong>Engine</strong> element represents the entire request
+ processing machinery associated with a particular Catalina
+ <a href="service.html">Service</a>. It receives and processes
+ <em>all</em> requests from one or more <strong>Connectors</strong>,
+ and returns the completed response to the Connector for ultimate
+ transmission back to the client.</p>
+
+ <p>Exactly one <strong>Engine</strong> element MUST be nested inside
+ a <a href="service.html">Service</a> element, following all of the
+ corresponding Connector elements associated with this Service.</p>
+
+</blockquote></td></tr></table><table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Attributes"><strong>Attributes</strong></a></font></td></tr><tr><td><blockquote>
+
+ <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Common Attributes"><!--()--></a><a name="Common_Attributes"><strong>Common Attributes</strong></a></font></td></tr><tr><td><blockquote>
+
+ <p>All implementations of <strong>Engine</strong>
+ support the following attributes:</p>
+
+ <table border="1" cellpadding="5"><tr><th width="15%" bgcolor="#023264"><font color="#ffffff">Attribute</font></th><th width="85%" bgcolor="#023264"><font color="#ffffff">Description</font></th></tr><tr><td align="left" valign="center"><code>backgroundProcessorDelay</code></td><td align="left" valign="center">
+ <p>This value represents the delay in seconds between the
+ invocation of the backgroundProcess method on this engine and
+ its child containers, including all hosts and contexts.
+ Child containers will not be invoked if their delay value is not
+ negative (which would mean they are using their own processing
+ thread). Setting this to a positive value will cause
+ a thread to be spawn. After waiting the specified amount of time,
+ the thread will invoke the backgroundProcess method on this engine
+ and all its child containers. If not specified, the default value for
+ this attribute is 10, which represent a 10 seconds delay.</p>
+ </td></tr><tr><td align="left" valign="center"><code>className</code></td><td align="left" valign="center">
+ <p>Java class name of the implementation to use. This class must
+ implement the <code>org.apache.catalina.Engine</code> interface.
+ If not specified, the standard value (defined below) will be used.</p>
+ </td></tr><tr><td align="left" valign="center"><strong><code>defaultHost</code></strong></td><td align="left" valign="center">
+ <p>The default host name, which identifies the
+ <a href="host.html">Host</a> that will process requests directed
+ to host names on this server, but which are not configured in
+ this configuration file. This name MUST match the <code>name</code>
+ attributes of one of the <a href="host.html">Host</a> elements
+ nested immediately inside.</p>
+ </td></tr><tr><td align="left" valign="center"><code>jvmRoute</code></td><td align="left" valign="center">
+ <p>Identifier which must be used in load balancing scenarios to enable
+ session affinity. The identifier, which must be unique across all
+ Tomcat 6 servers which participate in the cluster, will be appended to
+ the generated session identifier, therefore allowing the front end
+ proxy to always forward a particular session to the same Tomcat 6
+ instance.</p>
+ </td></tr><tr><td align="left" valign="center"><strong><code>name</code></strong></td><td align="left" valign="center">
+ <p>Logical name of this Engine, used in log and error messages. <em>When
+ using multiple <a href="service.html">Service</a> elements in the same
+ <a href="server.html">Server</a>, each Engine MUST be assigned a unique
+ name.</em></p>
+ </td></tr></table>
+
+ </blockquote></td></tr></table>
+
+
+ <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Standard Implementation"><!--()--></a><a name="Standard_Implementation"><strong>Standard Implementation</strong></a></font></td></tr><tr><td><blockquote>
+
+ <p>The standard implementation of <strong>Engine</strong> is
+ <strong>org.apache.catalina.core.StandardEngine</strong>.
+ It supports the following additional attributes (in addition to the
+ common attributes listed above):</p>
+
+ <table border="1" cellpadding="5"><tr><th width="15%" bgcolor="#023264"><font color="#ffffff">Attribute</font></th><th width="85%" bgcolor="#023264"><font color="#ffffff">Description</font></th></tr></table>
+
+ </blockquote></td></tr></table>
+
+
+</blockquote></td></tr></table><table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Nested Components"><!--()--></a><a name="Nested_Components"><strong>Nested Components</strong></a></font></td></tr><tr><td><blockquote>
+
+ <p>You can nest one or more <a href="host.html">Host</a> elements inside
+ this <strong>Engine</strong> element, each representing a different virtual
+ host associated with this server. At least one <a href="host.html">Host</a>
+ is required, and one of the nested <a href="host.html">Hosts</a> MUST
+ have a name that matches the name specified for the
+ <code>defaultHost</code> attribute, listed above.</p>
+
+ <p>You can nest at most one instance of the following utility components
+ by nesting a corresponding element inside your <strong>Engine</strong>
+ element:</p>
+ <ul>
+ <li><a href="realm.html"><strong>Realm</strong></a> -
+ Configure a realm that will allow its
+ database of users, and their associated roles, to be shared across all
+ <a href="host.html">Hosts</a> and <a href="context.html">Contexts</a>
+ nested inside this Engine, unless overridden by a
+ <a href="realm.html">Realm</a> configuration at a lower level.</li>
+ </ul>
+
+</blockquote></td></tr></table><table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Special Features"><!--()--></a><a name="Special_Features"><strong>Special Features</strong></a></font></td></tr><tr><td><blockquote>
+
+
+ <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Logging"><strong>Logging</strong></a></font></td></tr><tr><td><blockquote>
+
+ <p>An engine is associated with the
+ <code>org.apache.catalina.core.ContainerBase.[enginename]</code>
+ log category. Note that the brackets are actually part of the name,
+ don't omit them.</p>
+
+ </blockquote></td></tr></table>
+
+
+ <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Access Logs"><!--()--></a><a name="Access_Logs"><strong>Access Logs</strong></a></font></td></tr><tr><td><blockquote>
+
+ <p>When you run a web server, one of the output files normally generated
+ is an <em>access log</em>, which generates one line of information for
+ each request processed by the server, in a standard format. Catalina
+ includes an optional <a href="valve.html">Valve</a> implementation that
+ can create access logs in the same standard format created by web servers,
+ or in any number of custom formats.</p>
+
+ <p>You can ask Catalina to create an access log for all requests
+ processed by an <a href="engine.html">Engine</a>,
+ <a href="host.html">Host</a>, or <a href="context.html">Context</a>
+ by nesting a <a href="valve.html">Valve</a> element like this:</p>
+
+<div align="left"><table cellspacing="4" cellpadding="0" border="0"><tr><td bgcolor="#023264" width="1" height="1"><img src="../images/void.gif" alt="" width="1" height="1" vspace="0" hspace="0" border="0"></td><td bgcolor="#023264" height="1"><img src="../images/void.gif" alt="" width="1" height="1" vspace="0" hspace="0" border="0"></td><td bgcolor="#023264" width="1" height="1"><img src="../images/void.gif" alt="" width="1" height="1" vspace="0" hspace="0" border="0"></td></tr><tr><td bgcolor="#023264" width="1"><img src="../images/void.gif" alt="" width="1" height="1" vspace="0" hspace="0" border="0"></td><td bgcolor="#ffffff" height="1"><pre>
+<Engine name="Standalone" ...>
+ ...
+ <Valve className="org.apache.catalina.valves.AccessLogValve"
+ prefix="catalina_access_log." suffix=".txt"
+ pattern="common"/>
+ ...
+</Engine>
+</pre></td><td bgcolor="#023264" width="1"><img src="../images/void.gif" alt="" width="1" height="1" vspace="0" hspace="0" border="0"></td></tr><tr><td bgcolor="#023264" width="1" height="1"><img src="../images/void.gif" alt="" width="1" height="1" vspace="0" hspace="0" border="0"></td><td bgcolor="#023264" height="1"><img src="../images/void.gif" alt="" width="1" height="1" vspace="0" hspace="0" border="0"></td><td bgcolor="#023264" width="1" height="1"><img src="../images/void.gif" alt="" width="1" height="1" vspace="0" hspace="0" border="0"></td></tr></table></div>
+
+ <p>See <a href="valve.html#Access Log Valve">Access Log Valve</a>
+ for more information on the configuration attributes that are
+ supported.</p>
+
+ </blockquote></td></tr></table>
+
+
+ <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Lifecycle Listeners"><!--()--></a><a name="Lifecycle_Listeners"><strong>Lifecycle Listeners</strong></a></font></td></tr><tr><td><blockquote>
+
+ <p>If you have implemented a Java object that needs to know when this
+ <strong>Engine</strong> is started or stopped, you can declare it by
+ nesting a <strong>Listener</strong> element inside this element. The
+ class name you specify must implement the
+ <code>org.apache.catalina.LifecycleListener</code> interface, and
+ it will be notified about the occurrence of the corresponding
+ lifecycle events. Configuration of such a listener looks like this:</p>
+
+<div align="left"><table cellspacing="4" cellpadding="0" border="0"><tr><td bgcolor="#023264" width="1" height="1"><img src="../images/void.gif" alt="" width="1" height="1" vspace="0" hspace="0" border="0"></td><td bgcolor="#023264" height="1"><img src="../images/void.gif" alt="" width="1" height="1" vspace="0" hspace="0" border="0"></td><td bgcolor="#023264" width="1" height="1"><img src="../images/void.gif" alt="" width="1" height="1" vspace="0" hspace="0" border="0"></td></tr><tr><td bgcolor="#023264" width="1"><img src="../images/void.gif" alt="" width="1" height="1" vspace="0" hspace="0" border="0"></td><td bgcolor="#ffffff" height="1"><pre>
+<Engine name="Standalone" ...>
+ ...
+ <Listener className="com.mycompany.mypackage.MyListener" ... >
+ ...
+</Engine>
+</pre></td><td bgcolor="#023264" width="1"><img src="../images/void.gif" alt="" width="1" height="1" vspace="0" hspace="0" border="0"></td></tr><tr><td bgcolor="#023264" width="1" height="1"><img src="../images/void.gif" alt="" width="1" height="1" vspace="0" hspace="0" border="0"></td><td bgcolor="#023264" height="1"><img src="../images/void.gif" alt="" width="1" height="1" vspace="0" hspace="0" border="0"></td><td bgcolor="#023264" width="1" height="1"><img src="../images/void.gif" alt="" width="1" height="1" vspace="0" hspace="0" border="0"></td></tr></table></div>
+
+ <p>Note that a Listener can have any number of additional properties
+ that may be configured from this element. Attribute names are matched
+ to corresponding JavaBean property names using the standard property
+ method naming patterns.</p>
+
+ </blockquote></td></tr></table>
+
+
+ <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Request Filters"><!--()--></a><a name="Request_Filters"><strong>Request Filters</strong></a></font></td></tr><tr><td><blockquote>
+
+ <p>You can ask Catalina to check the IP address, or host name, on every
+ incoming request directed to the surrounding
+ <a href="engine.html">Engine</a>, <a href="host.html">Host</a>, or
+ <a href="context.html">Context</a> element. The remote address or name
+ will be checked against a configured list of "accept" and/or "deny"
+ filters, which are defined using <code>java.util.regex</code> Regular
+ Expression syntax. Requests that come from locations that are
+ not accepted will be rejected with an HTTP "Forbidden" error.
+ Example filter declarations:</p>
+
+<div align="left"><table cellspacing="4" cellpadding="0" border="0"><tr><td bgcolor="#023264" width="1" height="1"><img src="../images/void.gif" alt="" width="1" height="1" vspace="0" hspace="0" border="0"></td><td bgcolor="#023264" height="1"><img src="../images/void.gif" alt="" width="1" height="1" vspace="0" hspace="0" border="0"></td><td bgcolor="#023264" width="1" height="1"><img src="../images/void.gif" alt="" width="1" height="1" vspace="0" hspace="0" border="0"></td></tr><tr><td bgcolor="#023264" width="1"><img src="../images/void.gif" alt="" width="1" height="1" vspace="0" hspace="0" border="0"></td><td bgcolor="#ffffff" height="1"><pre>
+<Engine name="Standalone" ...>
+ ...
+ <Valve className="org.apache.catalina.valves.RemoteHostValve"
+ allow=".*\.mycompany\.com|www\.yourcompany\.com"/>
+ <Valve className="org.apache.catalina.valves.RemoteAddrValve"
+ deny="192\.168\.1\.\d+"/>
+ ...
+</Engine>
+</pre></td><td bgcolor="#023264" width="1"><img src="../images/void.gif" alt="" width="1" height="1" vspace="0" hspace="0" border="0"></td></tr><tr><td bgcolor="#023264" width="1" height="1"><img src="../images/void.gif" alt="" width="1" height="1" vspace="0" hspace="0" border="0"></td><td bgcolor="#023264" height="1"><img src="../images/void.gif" alt="" width="1" height="1" vspace="0" hspace="0" border="0"></td><td bgcolor="#023264" width="1" height="1"><img src="../images/void.gif" alt="" width="1" height="1" vspace="0" hspace="0" border="0"></td></tr></table></div>
+
+ <p>See <a href="valve.html#Remote Address Filter">Remote Address Filter</a>
+ and <a href="valve.html#Remote Host Filter">Remote Host Filter</a> for
+ more information about the configuration options that are supported.</p>
+
+ </blockquote></td></tr></table>
+
+
+</blockquote></td></tr></table></td></tr><!--FOOTER SEPARATOR--><tr><td colspan="2"><hr noshade="noshade" size="1"></td></tr><!--PAGE FOOTER--><tr><td colspan="2"><div align="center"><font color="#525D76" size="-1"><em>
+ Copyright © 1999-2014, Apache Software Foundation
+ </em></font></div></td></tr></table></body></html>
\ No newline at end of file
diff --git a/tomcat-uid/webapps/docs/config/executor.html b/tomcat-uid/webapps/docs/config/executor.html
new file mode 100644
index 0000000..5a51f08
--- /dev/null
+++ b/tomcat-uid/webapps/docs/config/executor.html
@@ -0,0 +1,70 @@
+<html><head><META http-equiv="Content-Type" content="text/html; charset=iso-8859-1"><title>Apache Tomcat Configuration Reference (6.0.39) - The Executor (thread pool)</title><meta name="author" content="Filip Hanik"><style type="text/css" media="print">
+ .noPrint {display: none;}
+ td#mainBody {width: 100%;}
+ </style></head><body bgcolor="#ffffff" text="#000000" link="#525D76" alink="#525D76" vlink="#525D76"><table border="0" width="100%" cellspacing="0"><!--PAGE HEADER--><tr><td><!--PROJECT LOGO--><a href="http://tomcat.apache.org/"><img src="../images/tomcat.gif" align="right" alt="
+ The Apache Tomcat Servlet/JSP Container
+ " border="0"></a></td><td><h1><font face="arial,helvetica,sanserif">Apache Tomcat 6.0</font></h1><font face="arial,helvetica,sanserif">Version 6.0.39, Jan 27 2014</font></td><td><!--APACHE LOGO--><a href="http://www.apache.org/"><img src="../images/asf-logo.gif" align="right" alt="Apache Logo" border="0"></a></td></tr></table><table border="0" width="100%" cellspacing="4"><!--HEADER SEPARATOR--><tr><td colspan="2"><hr noshade="noshade" size="1"></td></tr><tr><!--LEFT SIDE NAVIGATION--><td width="20%" valign="top" nowrap="nowrap" class="noPrint"><p><strong>Links</strong></p><ul><li><a href="../index.html">Docs Home</a></li><li><a href="index.html">Config Ref. Home</a></li></ul><p><strong>Top Level Elements</strong></p><ul><li><a href="server.html">Server</a></li><li><a href="service.html">Service</a></li></ul><p><strong>Executors</strong></p><ul><li><a href="executor.html">Executor</a></li></ul><p><strong>Connectors</strong></p><ul><li><a href="http.html">HTTP</a></li><li><a href="ajp.html">AJP</a></li></ul><p><strong>Containers</strong></p><ul><li><a href="context.html">Context</a></li><li><a href="engine.html">Engine</a></li><li><a href="host.html">Host</a></li><li><a href="cluster.html">Cluster</a></li></ul><p><strong>Nested Components</strong></p><ul><li><a href="globalresources.html">Global Resources</a></li><li><a href="listeners.html">Listeners</a></li><li><a href="loader.html">Loader</a></li><li><a href="manager.html">Manager</a></li><li><a href="realm.html">Realm</a></li><li><a href="resources.html">Resources</a></li><li><a href="valve.html">Valve</a></li></ul><p><strong>Cluster Elements</strong></p><ul><li><a href="cluster.html">Cluster</a></li><li><a href="cluster-manager.html">Manager</a></li><li><a href="cluster-channel.html">Channel</a></li><li><a href="cluster-membership.html">Channel/Membership</a></li><li><a href="cluster-sender.html">Channel/Sender</a></li><li><a href="cluster-receiver.html">Channel/Receiver</a></li><li><a href="cluster-interceptor.html">Channel/Interceptor</a></li><li><a href="cluster-valve.html">Valve</a></li><li><a href="cluster-deployer.html">Deployer</a></li><li><a href="cluster-listener.html">ClusterListener</a></li></ul><p><strong>Other</strong></p><ul><li><a href="filter.html">Filter</a></li><li><a href="systemprops.html">System properties</a></li></ul></td><!--RIGHT SIDE MAIN BODY--><td width="80%" valign="top" align="left" id="mainBody"><h1>Apache Tomcat Configuration Reference</h1><h2>The Executor (thread pool)</h2><table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Table of Contents"><!--()--></a><a name="Table_of_Contents"><strong>Table of Contents</strong></a></font></td></tr><tr><td><blockquote>
+<ul><li><a href="#Introduction">Introduction</a></li><li><a href="#Attributes">Attributes</a><ol><li><a href="#Common_Attributes">Common Attributes</a></li><li><a href="#Standard_Implementation">Standard Implementation</a></li></ol></li></ul>
+</blockquote></td></tr></table><table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Introduction"><strong>Introduction</strong></a></font></td></tr><tr><td><blockquote>
+
+ <p>The <strong>Executor</strong> represents a thread pool that can be shared
+ between components in Tomcat. Historically there has been a thread pool per
+ connector created but this allows you to share a thread pool, between (primarly) connector
+ but also other components when those get configured to support executors</p>
+
+
+ <p>The executor has to implement the <code>org.apache.catalina.Executor</code> interface.</p>
+
+ <p>The executor is a nested element to the <a href="service.html">Service</a> element.
+ And in order for it to be picked up by the connectors, the Executor element has to appear
+ prior to the Connector element in server.xml</p>
+</blockquote></td></tr></table><table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Attributes"><strong>Attributes</strong></a></font></td></tr><tr><td><blockquote>
+
+ <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Common Attributes"><!--()--></a><a name="Common_Attributes"><strong>Common Attributes</strong></a></font></td></tr><tr><td><blockquote>
+
+ <p>All implementations of <strong>Executor</strong>
+ support the following attributes:</p>
+
+ <table border="1" cellpadding="5"><tr><th width="15%" bgcolor="#023264"><font color="#ffffff">Attribute</font></th><th width="85%" bgcolor="#023264"><font color="#ffffff">Description</font></th></tr><tr><td align="left" valign="center"><code>className</code></td><td align="left" valign="center">
+ <p>The class of the implementation. The implementation has to implement the
+ <code>org.apache.catalina.Executor</code> interface.
+ This interface ensures that the object can be referenced through its <code>name</code> attribute
+ and that implements Lifecycle, so that it can be started and stopped with the container.
+ The default value for the className is <code>org.apache.catalina.core.StandardThreadExecutor</code></p>
+ </td></tr><tr><td align="left" valign="center"><strong><code>name</code></strong></td><td align="left" valign="center">
+ <p>The name used to reference this pool in other places in server.xml.
+ The name is required and must be unique.</p>
+ </td></tr></table>
+
+ </blockquote></td></tr></table>
+
+ <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Standard Implementation"><!--()--></a><a name="Standard_Implementation"><strong>Standard Implementation</strong></a></font></td></tr><tr><td><blockquote>
+
+ <p>
+ The default implementation supports the following attributes:</p>
+
+ <table border="1" cellpadding="5"><tr><th width="15%" bgcolor="#023264"><font color="#ffffff">Attribute</font></th><th width="85%" bgcolor="#023264"><font color="#ffffff">Description</font></th></tr><tr><td align="left" valign="center"><code>threadPriority</code></td><td align="left" valign="center">
+ <p>(int) The thread priority for threads in the executor, the default is
+ <code>5</code> (the value of the <code>Thread.NORM_PRIORITY</code> constant)</p>
+ </td></tr><tr><td align="left" valign="center"><code>daemon</code></td><td align="left" valign="center">
+ <p>(boolean) Whether the threads should be daemon threads or not, the default is <code>true</code></p>
+ </td></tr><tr><td align="left" valign="center"><code>namePrefix</code></td><td align="left" valign="center">
+ <p>(String) The name prefix for each thread created by the executor.
+ The thread name for an individual thread will be <code>namePrefix+threadNumber</code></p>
+ </td></tr><tr><td align="left" valign="center"><code>maxThreads</code></td><td align="left" valign="center">
+ <p>(int) The max number of active threads in this pool, default is <code>200</code></p>
+ </td></tr><tr><td align="left" valign="center"><code>minSpareThreads</code></td><td align="left" valign="center">
+ <p>(int) The minimum number of threads always kept alive, default is <code>25</code></p>
+ </td></tr><tr><td align="left" valign="center"><code>maxIdleTime</code></td><td align="left" valign="center">
+ <p>(int) The number of milliseconds before an idle thread shutsdown, unless the number of active threads are less
+ or equal to minSpareThreads. Default value is <code>60000</code>(1 minute)</p>
+ </td></tr><tr><td align="left" valign="center"><code>maxQueueSize</code></td><td align="left" valign="center">
+ <p>(int) The maximum number of runnable tasks that can queue up awaiting
+ execution before we reject them. Default value is <code>Integer.MAX_VALUE</code></p>
+ </td></tr></table>
+
+
+ </blockquote></td></tr></table>
+</blockquote></td></tr></table></td></tr><!--FOOTER SEPARATOR--><tr><td colspan="2"><hr noshade="noshade" size="1"></td></tr><!--PAGE FOOTER--><tr><td colspan="2"><div align="center"><font color="#525D76" size="-1"><em>
+ Copyright © 1999-2014, Apache Software Foundation
+ </em></font></div></td></tr></table></body></html>
\ No newline at end of file
diff --git a/tomcat-uid/webapps/docs/config/filter.html b/tomcat-uid/webapps/docs/config/filter.html
new file mode 100644
index 0000000..118fb51
--- /dev/null
+++ b/tomcat-uid/webapps/docs/config/filter.html
@@ -0,0 +1,159 @@
+<html><head><META http-equiv="Content-Type" content="text/html; charset=iso-8859-1"><title>Apache Tomcat Configuration Reference (6.0.39) - Container Provided Filters</title><style type="text/css" media="print">
+ .noPrint {display: none;}
+ td#mainBody {width: 100%;}
+ </style></head><body bgcolor="#ffffff" text="#000000" link="#525D76" alink="#525D76" vlink="#525D76"><table border="0" width="100%" cellspacing="0"><!--PAGE HEADER--><tr><td><!--PROJECT LOGO--><a href="http://tomcat.apache.org/"><img src="../images/tomcat.gif" align="right" alt="
+ The Apache Tomcat Servlet/JSP Container
+ " border="0"></a></td><td><h1><font face="arial,helvetica,sanserif">Apache Tomcat 6.0</font></h1><font face="arial,helvetica,sanserif">Version 6.0.39, Jan 27 2014</font></td><td><!--APACHE LOGO--><a href="http://www.apache.org/"><img src="../images/asf-logo.gif" align="right" alt="Apache Logo" border="0"></a></td></tr></table><table border="0" width="100%" cellspacing="4"><!--HEADER SEPARATOR--><tr><td colspan="2"><hr noshade="noshade" size="1"></td></tr><tr><!--LEFT SIDE NAVIGATION--><td width="20%" valign="top" nowrap="nowrap" class="noPrint"><p><strong>Links</strong></p><ul><li><a href="../index.html">Docs Home</a></li><li><a href="index.html">Config Ref. Home</a></li></ul><p><strong>Top Level Elements</strong></p><ul><li><a href="server.html">Server</a></li><li><a href="service.html">Service</a></li></ul><p><strong>Executors</strong></p><ul><li><a href="executor.html">Executor</a></li></ul><p><strong>Connectors</strong></p><ul><li><a href="http.html">HTTP</a></li><li><a href="ajp.html">AJP</a></li></ul><p><strong>Containers</strong></p><ul><li><a href="context.html">Context</a></li><li><a href="engine.html">Engine</a></li><li><a href="host.html">Host</a></li><li><a href="cluster.html">Cluster</a></li></ul><p><strong>Nested Components</strong></p><ul><li><a href="globalresources.html">Global Resources</a></li><li><a href="listeners.html">Listeners</a></li><li><a href="loader.html">Loader</a></li><li><a href="manager.html">Manager</a></li><li><a href="realm.html">Realm</a></li><li><a href="resources.html">Resources</a></li><li><a href="valve.html">Valve</a></li></ul><p><strong>Cluster Elements</strong></p><ul><li><a href="cluster.html">Cluster</a></li><li><a href="cluster-manager.html">Manager</a></li><li><a href="cluster-channel.html">Channel</a></li><li><a href="cluster-membership.html">Channel/Membership</a></li><li><a href="cluster-sender.html">Channel/Sender</a></li><li><a href="cluster-receiver.html">Channel/Receiver</a></li><li><a href="cluster-interceptor.html">Channel/Interceptor</a></li><li><a href="cluster-valve.html">Valve</a></li><li><a href="cluster-deployer.html">Deployer</a></li><li><a href="cluster-listener.html">ClusterListener</a></li></ul><p><strong>Other</strong></p><ul><li><a href="filter.html">Filter</a></li><li><a href="systemprops.html">System properties</a></li></ul></td><!--RIGHT SIDE MAIN BODY--><td width="80%" valign="top" align="left" id="mainBody"><h1>Apache Tomcat Configuration Reference</h1><h2>Container Provided Filters</h2><table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Table of Contents"><!--()--></a><a name="Table_of_Contents"><strong>Table of Contents</strong></a></font></td></tr><tr><td><blockquote>
+<ul><li><a href="#Introduction">Introduction</a></li><li><a href="#CSRF_Prevention_Filter">CSRF Prevention Filter</a><ol><li><a href="#CSRF_Prevention_Filter/Introduction">Introduction</a></li><li><a href="#CSRF_Prevention_Filter/Filter_Class_Name">Filter Class Name</a></li><li><a href="#CSRF_Prevention_Filter/Initialisation_parameters">Initialisation parameters</a></li></ol></li><li><a href="#Set_Character_Encoding_Filter">Set Character Encoding Filter</a><ol><li><a href="#Set_Character_Encoding_Filter/Introduction">Introduction</a></li><li><a href="#Set_Character_Encoding_Filter/Filter_Class_Name">Filter Class Name</a></li><li><a href="#Set_Character_Encoding_Filter/Initialisation_parameters">Initialisation parameters</a></li></ol></li><li><a href="#Failed_Request_Filter">Failed Request Filter</a><ol><li><a href="#Failed_Request_Filter/Introduction">Introduction</a></li><li><a href="#Failed_Request_Filter/Filter_Class_Name">Filter Class Name</a></li><li><a href="#Failed_Request_Filter/Initialisation_parameters">Initialisation parameters</a></li></ol></li></ul>
+</blockquote></td></tr></table><table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Introduction"><strong>Introduction</strong></a></font></td></tr><tr><td><blockquote>
+
+ <p>Tomcat provides a number of <strong>Filters</strong> which may be
+ configured for use with all web applications using
+ <code>$CATALINA_BASE/conf/web.xml</code> or may be configured for individual
+ web applications by configuring them in the application's
+ <code>WEB-INF/web.xml</code>. Each filter is described below.</p>
+
+ <blockquote><em>
+ <p>This description uses the variable name $CATALINA_BASE to refer the
+ base directory against which most relative paths are resolved. If you have
+ not configured Tomcat for multiple instances by setting a CATALINA_BASE
+ directory, then $CATALINA_BASE will be set to the value of $CATALINA_HOME,
+ the directory into which you have installed Tomcat.</p>
+ </em></blockquote>
+
+</blockquote></td></tr></table><table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="CSRF Prevention Filter"><!--()--></a><a name="CSRF_Prevention_Filter"><strong>CSRF Prevention Filter</strong></a></font></td></tr><tr><td><blockquote>
+
+ <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="CSRF Prevention Filter/Introduction"><!--()--></a><a name="CSRF_Prevention_Filter/Introduction"><strong>Introduction</strong></a></font></td></tr><tr><td><blockquote>
+
+ <p>This filter provides basic CSRF protection for a web application. The
+ filter assumes that it is mapped to <code>/*</code> and that all URLs
+ returned to the client are encoded via a call to
+ <code>HttpServletResponse#encodeRedirectURL(String)</code> or
+ <code>HttpServletResponse#encodeURL(String)</code>.</p>
+
+ <p>This filter prevents CSRF by generating a nonce and storing it in the
+ session. URLs are also encoded with the same nonce. When the next request is
+ received the nonce in the request is compared to the nonce in the session
+ and only if they are the same is the request allowed to continue.</p>
+
+ </blockquote></td></tr></table>
+
+ <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="CSRF Prevention Filter/Filter Class Name"><!--()--></a><a name="CSRF_Prevention_Filter/Filter_Class_Name"><strong>Filter Class Name</strong></a></font></td></tr><tr><td><blockquote>
+
+ <p>The filter class name for the CSRF Prevention Filter is
+ <strong><code>org.apache.catalina.filters.CsrfPreventionFilter</code>
+ </strong>.</p>
+
+ </blockquote></td></tr></table>
+
+ <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="CSRF Prevention Filter/Initialisation parameters"><!--()--></a><a name="CSRF_Prevention_Filter/Initialisation_parameters"><strong>Initialisation parameters</strong></a></font></td></tr><tr><td><blockquote>
+
+ <p>The CSRF Prevention Filter supports the following initialisation
+ parameters:</p>
+
+ <table border="1" cellpadding="5"><tr><th width="15%" bgcolor="#023264"><font color="#ffffff">Attribute</font></th><th width="85%" bgcolor="#023264"><font color="#ffffff">Description</font></th></tr><tr><td align="left" valign="center"><code>entryPoints</code></td><td align="left" valign="center">
+ <p>A comma separated list of URLs that will not be tested for the
+ presence of a valid nonce. They are used to provide a way to navigate
+ back to a protected application after having navigated away from it.
+ Entry points will be limited to HTTP GET requests and should not trigger
+ any security sensitive actions.</p>
+ </td></tr><tr><td align="left" valign="center"><code>nonceCacheSize</code></td><td align="left" valign="center">
+ <p>The number of previously issued nonces that will be cached on a LRU
+ basis to support parallel requests, limited use of the refresh and back
+ in the browser and similar behaviors that may result in the submission
+ of a previous nonce rather than the current one. If not set, the default
+ value of 5 will be used.</p>
+ </td></tr><tr><td align="left" valign="center"><code>randomClass</code></td><td align="left" valign="center">
+ <p>The name of the class to use to generate nonces. The class must be an
+ instance of <code>java.util.Random</code>. If not set, the default value
+ of <code>java.security.SecureRandom</code> will be used.</p>
+ </td></tr></table>
+
+ </blockquote></td></tr></table>
+
+</blockquote></td></tr></table><table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Set Character Encoding Filter"><!--()--></a><a name="Set_Character_Encoding_Filter"><strong>Set Character Encoding Filter</strong></a></font></td></tr><tr><td><blockquote>
+
+ <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Set Character Encoding Filter/Introduction"><!--()--></a><a name="Set_Character_Encoding_Filter/Introduction"><strong>Introduction</strong></a></font></td></tr><tr><td><blockquote>
+
+ <p>User agents don't always include character encoding information in
+ requests. Depending on the how the request is processed, usually the
+ default encoding of ISO-8859-1 is used. This is not always
+ desirable. This filter provides options for setting that encoding or
+ forcing it to a particular value. Essentially this filter calls
+ <code>ServletRequest.setCharacterEncoding()</code> method.</p>
+
+ <p>Effectively the value set by this filter is used when parsing parameters
+ in a POST request, if parameter parsing occurs later than this filter. Thus
+ the order of filter mappings is important. Note that the encoding for GET
+ requests is not set here, but on a <strong>Connector</strong>. See
+ CharacterEncoding page in the FAQ for details.</p>
+
+ </blockquote></td></tr></table>
+
+ <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Set Character Encoding Filter/Filter Class Name"><!--()--></a><a name="Set_Character_Encoding_Filter/Filter_Class_Name"><strong>Filter Class Name</strong></a></font></td></tr><tr><td><blockquote>
+
+ <p>The filter class name for the Set Character Encoding Filter is
+ <strong><code>org.apache.catalina.filters.SetCharacterEncodingFilter</code></strong>.</p>
+
+ </blockquote></td></tr></table>
+
+ <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Set Character Encoding Filter/Initialisation parameters"><!--()--></a><a name="Set_Character_Encoding_Filter/Initialisation_parameters"><strong>Initialisation parameters</strong></a></font></td></tr><tr><td><blockquote>
+
+ <p>The Set Character Encoding Filter supports the following initialization
+ parameters:</p>
+
+ <table border="1" cellpadding="5"><tr><th width="15%" bgcolor="#023264"><font color="#ffffff">Attribute</font></th><th width="85%" bgcolor="#023264"><font color="#ffffff">Description</font></th></tr><tr><td align="left" valign="center"><strong><code>encoding</code></strong></td><td align="left" valign="center">
+ <p>Name of the character encoding which should be set.</p>
+ </td></tr><tr><td align="left" valign="center"><code>ignore</code></td><td align="left" valign="center">
+ <p>Determines if any character encoding specified by the user agent is
+ ignored. If this attribute is <code>true</code>, any value provided by
+ the user agent is ignored. If <code>false</code>, the encoding is only
+ set if the user agent did not specify an encoding. The default value
+ is <code>false</code>.</p>
+ </td></tr></table>
+
+ </blockquote></td></tr></table>
+
+</blockquote></td></tr></table><table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Failed Request Filter"><!--()--></a><a name="Failed_Request_Filter"><strong>Failed Request Filter</strong></a></font></td></tr><tr><td><blockquote>
+
+ <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Failed Request Filter/Introduction"><!--()--></a><a name="Failed_Request_Filter/Introduction"><strong>Introduction</strong></a></font></td></tr><tr><td><blockquote>
+
+ <p>This filter triggers parameters parsing in a request and rejects the
+ request if some parameters were skipped during parameter parsing because
+ of parsing errors or request size limitations (such as
+ <code>maxParameterCount</code> attribute in a
+ <a href="http.html">Connector</a>).
+ This filter can be used to ensure that none parameter values submitted by
+ client are lost.</p>
+
+ <p>Note that parameter parsing may consume the body of an HTTP request, so
+ caution is needed if the servlet protected by this filter uses
+ <code>request.getInputStream()</code> or <code>request.getReader()</code>
+ calls. In general the risk of breaking a web application by adding this
+ filter is not so high, because parameter parsing does check content type
+ of the request before consuming the request body.</p>
+
+ <p>Note, that for the POST requests to be parsed correctly, a
+ <code>SetCharacterEncodingFilter</code> filter must be configured above
+ this one. See CharacterEncoding page in the FAQ for details.</p>
+
+ <p>The request is rejected with HTTP status code 400 (Bad Request).</p>
+
+ </blockquote></td></tr></table>
+
+ <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Failed Request Filter/Filter Class Name"><!--()--></a><a name="Failed_Request_Filter/Filter_Class_Name"><strong>Filter Class Name</strong></a></font></td></tr><tr><td><blockquote>
+
+ <p>The filter class name for the Failed Request Filter is
+ <strong><code>org.apache.catalina.filters.FailedRequestFilter</code></strong>.</p>
+
+ </blockquote></td></tr></table>
+
+ <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Failed Request Filter/Initialisation parameters"><!--()--></a><a name="Failed_Request_Filter/Initialisation_parameters"><strong>Initialisation parameters</strong></a></font></td></tr><tr><td><blockquote>
+
+ <p>The Failed Request Filter does not support any initialization parameters.</p>
+
+ </blockquote></td></tr></table>
+
+</blockquote></td></tr></table></td></tr><!--FOOTER SEPARATOR--><tr><td colspan="2"><hr noshade="noshade" size="1"></td></tr><!--PAGE FOOTER--><tr><td colspan="2"><div align="center"><font color="#525D76" size="-1"><em>
+ Copyright © 1999-2014, Apache Software Foundation
+ </em></font></div></td></tr></table></body></html>
\ No newline at end of file
diff --git a/tomcat-uid/webapps/docs/config/globalresources.html b/tomcat-uid/webapps/docs/config/globalresources.html
new file mode 100644
index 0000000..1e29141
--- /dev/null
+++ b/tomcat-uid/webapps/docs/config/globalresources.html
@@ -0,0 +1,202 @@
+<html><head><META http-equiv="Content-Type" content="text/html; charset=iso-8859-1"><title>Apache Tomcat Configuration Reference (6.0.39) - The GlobalNamingResources Component</title><meta name="author" content="Remy Maucherat"><meta name="author" content="Yoav Shapira"><style type="text/css" media="print">
+ .noPrint {display: none;}
+ td#mainBody {width: 100%;}
+ </style></head><body bgcolor="#ffffff" text="#000000" link="#525D76" alink="#525D76" vlink="#525D76"><table border="0" width="100%" cellspacing="0"><!--PAGE HEADER--><tr><td><!--PROJECT LOGO--><a href="http://tomcat.apache.org/"><img src="../images/tomcat.gif" align="right" alt="
+ The Apache Tomcat Servlet/JSP Container
+ " border="0"></a></td><td><h1><font face="arial,helvetica,sanserif">Apache Tomcat 6.0</font></h1><font face="arial,helvetica,sanserif">Version 6.0.39, Jan 27 2014</font></td><td><!--APACHE LOGO--><a href="http://www.apache.org/"><img src="../images/asf-logo.gif" align="right" alt="Apache Logo" border="0"></a></td></tr></table><table border="0" width="100%" cellspacing="4"><!--HEADER SEPARATOR--><tr><td colspan="2"><hr noshade="noshade" size="1"></td></tr><tr><!--LEFT SIDE NAVIGATION--><td width="20%" valign="top" nowrap="nowrap" class="noPrint"><p><strong>Links</strong></p><ul><li><a href="../index.html">Docs Home</a></li><li><a href="index.html">Config Ref. Home</a></li></ul><p><strong>Top Level Elements</strong></p><ul><li><a href="server.html">Server</a></li><li><a href="service.html">Service</a></li></ul><p><strong>Executors</strong></p><ul><li><a href="executor.html">Executor</a></li></ul><p><strong>Connectors</strong></p><ul><li><a href="http.html">HTTP</a></li><li><a href="ajp.html">AJP</a></li></ul><p><strong>Containers</strong></p><ul><li><a href="context.html">Context</a></li><li><a href="engine.html">Engine</a></li><li><a href="host.html">Host</a></li><li><a href="cluster.html">Cluster</a></li></ul><p><strong>Nested Components</strong></p><ul><li><a href="globalresources.html">Global Resources</a></li><li><a href="listeners.html">Listeners</a></li><li><a href="loader.html">Loader</a></li><li><a href="manager.html">Manager</a></li><li><a href="realm.html">Realm</a></li><li><a href="resources.html">Resources</a></li><li><a href="valve.html">Valve</a></li></ul><p><strong>Cluster Elements</strong></p><ul><li><a href="cluster.html">Cluster</a></li><li><a href="cluster-manager.html">Manager</a></li><li><a href="cluster-channel.html">Channel</a></li><li><a href="cluster-membership.html">Channel/Membership</a></li><li><a href="cluster-sender.html">Channel/Sender</a></li><li><a href="cluster-receiver.html">Channel/Receiver</a></li><li><a href="cluster-interceptor.html">Channel/Interceptor</a></li><li><a href="cluster-valve.html">Valve</a></li><li><a href="cluster-deployer.html">Deployer</a></li><li><a href="cluster-listener.html">ClusterListener</a></li></ul><p><strong>Other</strong></p><ul><li><a href="filter.html">Filter</a></li><li><a href="systemprops.html">System properties</a></li></ul></td><!--RIGHT SIDE MAIN BODY--><td width="80%" valign="top" align="left" id="mainBody"><h1>Apache Tomcat Configuration Reference</h1><h2>The GlobalNamingResources Component</h2><table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Table of Contents"><!--()--></a><a name="Table_of_Contents"><strong>Table of Contents</strong></a></font></td></tr><tr><td><blockquote>
+<ul><li><a href="#Introduction">Introduction</a></li><li><a href="#Attributes">Attributes</a></li><li><a href="#Nested_Components">Nested Components</a></li><li><a href="#Special_Features">Special Features</a><ol><li><a href="#Environment_Entries">Environment Entries</a></li><li><a href="#Resource_Definitions">Resource Definitions</a></li><li><a href="#Resource_Links">Resource Links</a></li><li><a href="#Transaction">Transaction</a></li></ol></li></ul>
+</blockquote></td></tr></table><table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Introduction"><strong>Introduction</strong></a></font></td></tr><tr><td><blockquote>
+
+ <p>The <strong>GlobalNamingResources</strong> element defines the global
+ JNDI resources for the <a href="server.html">Server</a>.</p>
+
+ <p>These resources are listed in the server's global JNDI resource context.
+ This context is distinct from the per-web-application JNDI contexts
+ described in
+ the <a href="../jndi-resources-howto.html">JNDI Resources HOW-TO</a>.
+ The resources defined in this element are <strong>not</strong> visible in
+ the per-web-application contexts unless you explicitly link them with
+ <a href="context.html#Resource Links"><ResourceLink></a> elements.
+ </p>
+
+</blockquote></td></tr></table><table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Attributes"><strong>Attributes</strong></a></font></td></tr><tr><td><blockquote>
+
+</blockquote></td></tr></table><table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Nested Components"><!--()--></a><a name="Nested_Components"><strong>Nested Components</strong></a></font></td></tr><tr><td><blockquote>
+
+</blockquote></td></tr></table><table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Special Features"><!--()--></a><a name="Special_Features"><strong>Special Features</strong></a></font></td></tr><tr><td><blockquote>
+
+
+ <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Environment Entries"><!--()--></a><a name="Environment_Entries"><strong>Environment Entries</strong></a></font></td></tr><tr><td><blockquote>
+
+ <p>You can configure named values that will be made visible to all
+ web applications as environment entry resources by nesting
+ <code><Environment></code> entries inside this element. For
+ example, you can create an environment entry like this:</p>
+<div align="left"><table cellspacing="4" cellpadding="0" border="0"><tr><td bgcolor="#023264" width="1" height="1"><img src="../images/void.gif" alt="" width="1" height="1" vspace="0" hspace="0" border="0"></td><td bgcolor="#023264" height="1"><img src="../images/void.gif" alt="" width="1" height="1" vspace="0" hspace="0" border="0"></td><td bgcolor="#023264" width="1" height="1"><img src="../images/void.gif" alt="" width="1" height="1" vspace="0" hspace="0" border="0"></td></tr><tr><td bgcolor="#023264" width="1"><img src="../images/void.gif" alt="" width="1" height="1" vspace="0" hspace="0" border="0"></td><td bgcolor="#ffffff" height="1"><pre>
+<GlobalNamingResources ...>
+ ...
+ <Environment name="maxExemptions" value="10"
+ type="java.lang.Integer" override="false"/>
+ ...
+</GlobalNamingResources>
+</pre></td><td bgcolor="#023264" width="1"><img src="../images/void.gif" alt="" width="1" height="1" vspace="0" hspace="0" border="0"></td></tr><tr><td bgcolor="#023264" width="1" height="1"><img src="../images/void.gif" alt="" width="1" height="1" vspace="0" hspace="0" border="0"></td><td bgcolor="#023264" height="1"><img src="../images/void.gif" alt="" width="1" height="1" vspace="0" hspace="0" border="0"></td><td bgcolor="#023264" width="1" height="1"><img src="../images/void.gif" alt="" width="1" height="1" vspace="0" hspace="0" border="0"></td></tr></table></div>
+
+ <p>This is equivalent to the inclusion of the following element in the
+ web application deployment descriptor (<code>/WEB-INF/web.xml</code>):
+ </p>
+<div align="left"><table cellspacing="4" cellpadding="0" border="0"><tr><td bgcolor="#023264" width="1" height="1"><img src="../images/void.gif" alt="" width="1" height="1" vspace="0" hspace="0" border="0"></td><td bgcolor="#023264" height="1"><img src="../images/void.gif" alt="" width="1" height="1" vspace="0" hspace="0" border="0"></td><td bgcolor="#023264" width="1" height="1"><img src="../images/void.gif" alt="" width="1" height="1" vspace="0" hspace="0" border="0"></td></tr><tr><td bgcolor="#023264" width="1"><img src="../images/void.gif" alt="" width="1" height="1" vspace="0" hspace="0" border="0"></td><td bgcolor="#ffffff" height="1"><pre>
+<env-entry>
+ <env-entry-name>maxExemptions</env-entry-name>
+ <env-entry-value>10</env-entry-value>
+ <env-entry-type>java.lang.Integer</env-entry-type>
+</env-entry>
+</pre></td><td bgcolor="#023264" width="1"><img src="../images/void.gif" alt="" width="1" height="1" vspace="0" hspace="0" border="0"></td></tr><tr><td bgcolor="#023264" width="1" height="1"><img src="../images/void.gif" alt="" width="1" height="1" vspace="0" hspace="0" border="0"></td><td bgcolor="#023264" height="1"><img src="../images/void.gif" alt="" width="1" height="1" vspace="0" hspace="0" border="0"></td><td bgcolor="#023264" width="1" height="1"><img src="../images/void.gif" alt="" width="1" height="1" vspace="0" hspace="0" border="0"></td></tr></table></div>
+ <p>but does <em>not</em> require modification of the deployment descriptor
+ to customize this value.</p>
+
+ <p>The valid attributes for an <code><Environment></code> element
+ are as follows:</p>
+
+ <table border="1" cellpadding="5"><tr><th width="15%" bgcolor="#023264"><font color="#ffffff">Attribute</font></th><th width="85%" bgcolor="#023264"><font color="#ffffff">Description</font></th></tr><tr><td align="left" valign="center"><code>description</code></td><td align="left" valign="center">
+ <p>Optional, human-readable description of this environment entry.</p>
+ </td></tr><tr><td align="left" valign="center"><strong><code>name</code></strong></td><td align="left" valign="center">
+ <p>The name of the environment entry to be created, relative to the
+ <code>java:comp/env</code> context.</p>
+ </td></tr><tr><td align="left" valign="center"><code>override</code></td><td align="left" valign="center">
+ <p>Set this to <code>false</code> if you do <strong>not</strong> want
+ an <code><env-entry></code> for the same environment entry name,
+ found in the web application deployment descriptor, to override the
+ value specified here. By default, overrides are allowed.</p>
+ </td></tr><tr><td align="left" valign="center"><strong><code>type</code></strong></td><td align="left" valign="center">
+ <p>The fully qualified Java class name expected by the web application
+ for this environment entry. Must be one of the legal values for
+ <code><env-entry-type></code> in the web application deployment
+ descriptor: <code>java.lang.Boolean</code>,
+ <code>java.lang.Byte</code>, <code>java.lang.Character</code>,
+ <code>java.lang.Double</code>, <code>java.lang.Float</code>,
+ <code>java.lang.Integer</code>, <code>java.lang.Long</code>,
+ <code>java.lang.Short</code>, or <code>java.lang.String</code>.</p>
+ </td></tr><tr><td align="left" valign="center"><strong><code>value</code></strong></td><td align="left" valign="center">
+ <p>The parameter value that will be presented to the application
+ when requested from the JNDI context. This value must be convertable
+ to the Java type defined by the <code>type</code> attribute.</p>
+ </td></tr></table>
+
+ </blockquote></td></tr></table>
+
+
+ <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Resource Definitions"><!--()--></a><a name="Resource_Definitions"><strong>Resource Definitions</strong></a></font></td></tr><tr><td><blockquote>
+
+ <p>You can declare the characteristics of resources
+ to be returned for JNDI lookups of <code><resource-ref></code> and
+ <code><resource-env-ref></code> elements in the web application
+ deployment descriptor by defining them in this element and then linking
+ them with <a href="context.html#Resource Links"><ResourceLink></a>
+ elements
+ in the <code><strong><Context></strong></code> element.
+
+ You <strong>MUST</strong> also define any other needed parameters using
+ attributes on the Resource element, to configure
+ the object factory to be used (if not known to Tomcat already), and
+ the properties used to configure that object factory.</p>
+
+ <p>For example, you can create a resource definition like this:</p>
+<div align="left"><table cellspacing="4" cellpadding="0" border="0"><tr><td bgcolor="#023264" width="1" height="1"><img src="../images/void.gif" alt="" width="1" height="1" vspace="0" hspace="0" border="0"></td><td bgcolor="#023264" height="1"><img src="../images/void.gif" alt="" width="1" height="1" vspace="0" hspace="0" border="0"></td><td bgcolor="#023264" width="1" height="1"><img src="../images/void.gif" alt="" width="1" height="1" vspace="0" hspace="0" border="0"></td></tr><tr><td bgcolor="#023264" width="1"><img src="../images/void.gif" alt="" width="1" height="1" vspace="0" hspace="0" border="0"></td><td bgcolor="#ffffff" height="1"><pre>
+<GlobalNamingResources ...>
+ ...
+ <Resource name="jdbc/EmployeeDB" auth="Container"
+ type="javax.sql.DataSource"
+ description="Employees Database for HR Applications"/>
+ ...
+</GlobalNamingResources>
+</pre></td><td bgcolor="#023264" width="1"><img src="../images/void.gif" alt="" width="1" height="1" vspace="0" hspace="0" border="0"></td></tr><tr><td bgcolor="#023264" width="1" height="1"><img src="../images/void.gif" alt="" width="1" height="1" vspace="0" hspace="0" border="0"></td><td bgcolor="#023264" height="1"><img src="../images/void.gif" alt="" width="1" height="1" vspace="0" hspace="0" border="0"></td><td bgcolor="#023264" width="1" height="1"><img src="../images/void.gif" alt="" width="1" height="1" vspace="0" hspace="0" border="0"></td></tr></table></div>
+
+ <p>This is equivalent to the inclusion of the following element in the
+ web application deployment descriptor (<code>/WEB-INF/web.xml</code>):</p>
+<div align="left"><table cellspacing="4" cellpadding="0" border="0"><tr><td bgcolor="#023264" width="1" height="1"><img src="../images/void.gif" alt="" width="1" height="1" vspace="0" hspace="0" border="0"></td><td bgcolor="#023264" height="1"><img src="../images/void.gif" alt="" width="1" height="1" vspace="0" hspace="0" border="0"></td><td bgcolor="#023264" width="1" height="1"><img src="../images/void.gif" alt="" width="1" height="1" vspace="0" hspace="0" border="0"></td></tr><tr><td bgcolor="#023264" width="1"><img src="../images/void.gif" alt="" width="1" height="1" vspace="0" hspace="0" border="0"></td><td bgcolor="#ffffff" height="1"><pre>
+<resource-ref>
+ <description>Employees Database for HR Applications</description>
+ <res-ref-name>jdbc/EmployeeDB</res-ref-name>
+ <res-ref-type>javax.sql.DataSource</res-ref-type>
+ <res-auth>Container</res-auth>
+</resource-ref>
+</pre></td><td bgcolor="#023264" width="1"><img src="../images/void.gif" alt="" width="1" height="1" vspace="0" hspace="0" border="0"></td></tr><tr><td bgcolor="#023264" width="1" height="1"><img src="../images/void.gif" alt="" width="1" height="1" vspace="0" hspace="0" border="0"></td><td bgcolor="#023264" height="1"><img src="../images/void.gif" alt="" width="1" height="1" vspace="0" hspace="0" border="0"></td><td bgcolor="#023264" width="1" height="1"><img src="../images/void.gif" alt="" width="1" height="1" vspace="0" hspace="0" border="0"></td></tr></table></div>
+
+ <p>but does <em>not</em> require modification of the deployment
+ descriptor to customize this value.</p>
+
+ <p>The valid attributes for a <code><Resource></code> element
+ are as follows:</p>
+
+ <table border="1" cellpadding="5"><tr><th width="15%" bgcolor="#023264"><font color="#ffffff">Attribute</font></th><th width="85%" bgcolor="#023264"><font color="#ffffff">Description</font></th></tr><tr><td align="left" valign="center"><code>auth</code></td><td align="left" valign="center">
+ <p>Specify whether the web Application code signs on to the
+ corresponding resource manager programmatically, or whether the
+ Container will sign on to the resource manager on behalf of the
+ application. The value of this attribute must be
+ <code>Application</code> or <code>Container</code>. This
+ attribute is <strong>required</strong> if the web application
+ will use a <code><resource-ref></code> element in the web
+ application deployment descriptor, but is optional if the
+ application uses a <code><resource-env-ref></code> instead.</p>
+ </td></tr><tr><td align="left" valign="center"><code>description</code></td><td align="left" valign="center">
+ <p>Optional, human-readable description of this resource.</p>
+ </td></tr><tr><td align="left" valign="center"><strong><code>name</code></strong></td><td align="left" valign="center">
+ <p>The name of the resource to be created, relative to the
+ <code>java:comp/env</code> context.</p>
+ </td></tr><tr><td align="left" valign="center"><code>scope</code></td><td align="left" valign="center">
+ <p>Specify whether connections obtained through this resource
+ manager can be shared. The value of this attribute must be
+ <code>Shareable</code> or <code>Unshareable</code>. By default,
+ connections are assumed to be shareable.</p>
+ </td></tr><tr><td align="left" valign="center"><strong><code>type</code></strong></td><td align="left" valign="center">
+ <p>The fully qualified Java class name expected by the web
+ application when it performs a lookup for this resource.</p>
+ </td></tr></table>
+
+
+ </blockquote></td></tr></table>
+
+ <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Resource Links"><!--()--></a><a name="Resource_Links"><strong>Resource Links</strong></a></font></td></tr><tr><td><blockquote>
+ <p>Use <a href="context.html#Resource Links"><ResourceLink></a>
+ elements to link resources from the global context into
+ per-web-application contexts. Here is an example of making a custom
+ factory available to an application, based on the example definition in the
+ <a href="../jndi-resources-howto.html#Generic JavaBean Resources">
+ JNDI Resource HOW-TO</a>:
+ </p>
+
+ <div align="left"><table cellspacing="4" cellpadding="0" border="0"><tr><td bgcolor="#023264" width="1" height="1"><img src="../images/void.gif" alt="" width="1" height="1" vspace="0" hspace="0" border="0"></td><td bgcolor="#023264" height="1"><img src="../images/void.gif" alt="" width="1" height="1" vspace="0" hspace="0" border="0"></td><td bgcolor="#023264" width="1" height="1"><img src="../images/void.gif" alt="" width="1" height="1" vspace="0" hspace="0" border="0"></td></tr><tr><td bgcolor="#023264" width="1"><img src="../images/void.gif" alt="" width="1" height="1" vspace="0" hspace="0" border="0"></td><td bgcolor="#ffffff" height="1"><pre>
+
+ <Context>
+ <ResourceLink
+ name="bean/MyBeanFactory"
+ global="bean/MyBeanFactory"
+ type="com.mycompany.MyBean"
+ />
+ </Context>
+
+ </pre></td><td bgcolor="#023264" width="1"><img src="../images/void.gif" alt="" width="1" height="1" vspace="0" hspace="0" border="0"></td></tr><tr><td bgcolor="#023264" width="1" height="1"><img src="../images/void.gif" alt="" width="1" height="1" vspace="0" hspace="0" border="0"></td><td bgcolor="#023264" height="1"><img src="../images/void.gif" alt="" width="1" height="1" vspace="0" hspace="0" border="0"></td><td bgcolor="#023264" width="1" height="1"><img src="../images/void.gif" alt="" width="1" height="1" vspace="0" hspace="0" border="0"></td></tr></table></div>
+
+ </blockquote></td></tr></table>
+
+ <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Transaction"><strong>Transaction</strong></a></font></td></tr><tr><td><blockquote>
+
+ <p>You can declare the characteristics of the UserTransaction
+ to be returned for JNDI lookup for <code>java:comp/UserTransaction</code>.
+ You <strong>MUST</strong> define an object factory class to instantiate
+ this object as well as the needed resource parameters as attributes of the
+ <code>Transaction</code>
+ element, and the properties used to configure that object factory.</p>
+
+ <p>The valid attributes for the <code><Transaction></code> element
+ are as follows:</p>
+
+ <table border="1" cellpadding="5"><tr><th width="15%" bgcolor="#023264"><font color="#ffffff">Attribute</font></th><th width="85%" bgcolor="#023264"><font color="#ffffff">Description</font></th></tr><tr><td align="left" valign="center"><strong><code>factory</code></strong></td><td align="left" valign="center">
+ <p>The class name for the JNDI object factory.</p>
+ </td></tr></table>
+
+ </blockquote></td></tr></table>
+
+</blockquote></td></tr></table></td></tr><!--FOOTER SEPARATOR--><tr><td colspan="2"><hr noshade="noshade" size="1"></td></tr><!--PAGE FOOTER--><tr><td colspan="2"><div align="center"><font color="#525D76" size="-1"><em>
+ Copyright © 1999-2014, Apache Software Foundation
+ </em></font></div></td></tr></table></body></html>
\ No newline at end of file
diff --git a/tomcat-uid/webapps/docs/config/host.html b/tomcat-uid/webapps/docs/config/host.html
new file mode 100644
index 0000000..6a864a3
--- /dev/null
+++ b/tomcat-uid/webapps/docs/config/host.html
@@ -0,0 +1,563 @@
+<html><head><META http-equiv="Content-Type" content="text/html; charset=iso-8859-1"><title>Apache Tomcat Configuration Reference (6.0.39) - The Host Container</title><meta name="author" content="Craig R. McClanahan"><meta name="author" content="Remy Maucherat"><meta name="author" content="Yoav Shapira"><style type="text/css" media="print">
+ .noPrint {display: none;}
+ td#mainBody {width: 100%;}
+ </style></head><body bgcolor="#ffffff" text="#000000" link="#525D76" alink="#525D76" vlink="#525D76"><table border="0" width="100%" cellspacing="0"><!--PAGE HEADER--><tr><td><!--PROJECT LOGO--><a href="http://tomcat.apache.org/"><img src="../images/tomcat.gif" align="right" alt="
+ The Apache Tomcat Servlet/JSP Container
+ " border="0"></a></td><td><h1><font face="arial,helvetica,sanserif">Apache Tomcat 6.0</font></h1><font face="arial,helvetica,sanserif">Version 6.0.39, Jan 27 2014</font></td><td><!--APACHE LOGO--><a href="http://www.apache.org/"><img src="../images/asf-logo.gif" align="right" alt="Apache Logo" border="0"></a></td></tr></table><table border="0" width="100%" cellspacing="4"><!--HEADER SEPARATOR--><tr><td colspan="2"><hr noshade="noshade" size="1"></td></tr><tr><!--LEFT SIDE NAVIGATION--><td width="20%" valign="top" nowrap="nowrap" class="noPrint"><p><strong>Links</strong></p><ul><li><a href="../index.html">Docs Home</a></li><li><a href="index.html">Config Ref. Home</a></li></ul><p><strong>Top Level Elements</strong></p><ul><li><a href="server.html">Server</a></li><li><a href="service.html">Service</a></li></ul><p><strong>Executors</strong></p><ul><li><a href="executor.html">Executor</a></li></ul><p><strong>Connectors</strong></p><ul><li><a href="http.html">HTTP</a></li><li><a href="ajp.html">AJP</a></li></ul><p><strong>Containers</strong></p><ul><li><a href="context.html">Context</a></li><li><a href="engine.html">Engine</a></li><li><a href="host.html">Host</a></li><li><a href="cluster.html">Cluster</a></li></ul><p><strong>Nested Components</strong></p><ul><li><a href="globalresources.html">Global Resources</a></li><li><a href="listeners.html">Listeners</a></li><li><a href="loader.html">Loader</a></li><li><a href="manager.html">Manager</a></li><li><a href="realm.html">Realm</a></li><li><a href="resources.html">Resources</a></li><li><a href="valve.html">Valve</a></li></ul><p><strong>Cluster Elements</strong></p><ul><li><a href="cluster.html">Cluster</a></li><li><a href="cluster-manager.html">Manager</a></li><li><a href="cluster-channel.html">Channel</a></li><li><a href="cluster-membership.html">Channel/Membership</a></li><li><a href="cluster-sender.html">Channel/Sender</a></li><li><a href="cluster-receiver.html">Channel/Receiver</a></li><li><a href="cluster-interceptor.html">Channel/Interceptor</a></li><li><a href="cluster-valve.html">Valve</a></li><li><a href="cluster-deployer.html">Deployer</a></li><li><a href="cluster-listener.html">ClusterListener</a></li></ul><p><strong>Other</strong></p><ul><li><a href="filter.html">Filter</a></li><li><a href="systemprops.html">System properties</a></li></ul></td><!--RIGHT SIDE MAIN BODY--><td width="80%" valign="top" align="left" id="mainBody"><h1>Apache Tomcat Configuration Reference</h1><h2>The Host Container</h2><table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Table of Contents"><!--()--></a><a name="Table_of_Contents"><strong>Table of Contents</strong></a></font></td></tr><tr><td><blockquote>
+<ul><li><a href="#Introduction">Introduction</a></li><li><a href="#Attributes">Attributes</a><ol><li><a href="#Common_Attributes">Common Attributes</a></li><li><a href="#Standard_Implementation">Standard Implementation</a></li></ol></li><li><a href="#Nested_Components">Nested Components</a></li><li><a href="#Special_Features">Special Features</a><ol><li><a href="#Logging">Logging</a></li><li><a href="#Access_Logs">Access Logs</a></li><li><a href="#Automatic_Application_Deployment">Automatic Application Deployment</a></li><li><a href="#Host_Name_Aliases">Host Name Aliases</a></li><li><a href="#Lifecycle_Listeners">Lifecycle Listeners</a></li><li><a href="#Request_Filters">Request Filters</a></li><li><a href="#Single_Sign_On">Single Sign On</a></li><li><a href="#User_Web_Applications">User Web Applications</a></li></ol></li></ul>
+</blockquote></td></tr></table><table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Introduction"><strong>Introduction</strong></a></font></td></tr><tr><td><blockquote>
+
+ <p>The <strong>Host</strong> element represents a <em>virtual host</em>,
+ which is an association of a network name for a server (such as
+ "www.mycompany.com" with the particular server on which Catalina is
+ running. In order to be effective, this name must be registered in the
+ <em>Domain Name Service</em> (DNS) server that manages the Internet
+ domain you belong to - contact your Network Administrator for more
+ information.</p>
+
+ <p>In many cases, System Administrators wish to associate more than
+ one network name (such as <code>www.mycompany.com</code> and
+ <code>company.com</code>) with the same virtual host and applications.
+ This can be accomplished using the <a href="#Host Name Aliases">Host
+ Name Aliases</a> feature discussed below.</p>
+
+ <p>One or more <strong>Host</strong> elements are nested inside an
+ <a href="engine.html">Engine</a> element. Inside the Host element, you
+ can nest <a href="context.html">Context</a> elements for the web
+ applications associated with this virtual host. Exactly one of the Hosts
+ associated with each Engine MUST have a name matching the
+ <code>defaultHost</code> attribute of that Engine.</p>
+
+ <blockquote><em>
+ <p>The description below uses the variable name $CATALINA_BASE to refer the
+ base directory against which most relative paths are resolved. If you have
+ not configured Tomcat for multiple instances by setting a CATALINA_BASE
+ directory, then $CATALINA_BASE will be set to the value of $CATALINA_HOME,
+ the directory into which you have installed Tomcat.</p>
+ </em></blockquote>
+
+</blockquote></td></tr></table><table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Attributes"><strong>Attributes</strong></a></font></td></tr><tr><td><blockquote>
+
+ <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Common Attributes"><!--()--></a><a name="Common_Attributes"><strong>Common Attributes</strong></a></font></td></tr><tr><td><blockquote>
+
+ <p>All implementations of <strong>Host</strong>
+ support the following attributes:</p>
+
+ <table border="1" cellpadding="5"><tr><th width="15%" bgcolor="#023264"><font color="#ffffff">Attribute</font></th><th width="85%" bgcolor="#023264"><font color="#ffffff">Description</font></th></tr><tr><td align="left" valign="center"><strong><code>appBase</code></strong></td><td align="left" valign="center">
+ <p>The <em>Application Base</em> directory for this virtual host.
+ This is the pathname of a directory that may contain web applications
+ to be deployed on this virtual host. You may specify an
+ absolute pathname, or a pathname that is relative to the
+ <code>$CATALINA_BASE</code> directory. See
+ <a href="#Automatic_Application_Deployment">Automatic Application
+ Deployment</a> for more information on automatic recognition and
+ deployment of web applications. If not specified, the default of
+ <code>webapps</code> will be used.</p>
+ </td></tr><tr><td align="left" valign="center"><code>autoDeploy</code></td><td align="left" valign="center">
+ <p>This flag value indicates if Tomcat should check periodically for new
+ or updated web applications while Tomcat is running. If true, Tomcat
+ periodically checks the <code>appBase</code> and
+ <code>$CATALINA_BASE/conf/[engine_name]/[host_name]</code>
+ directories and deploys any new web applications or context XML
+ descriptors found. Updated web applications or context XML descriptors
+ will trigger a reload of the web application. The flag's value defaults
+ to true. See
+ <a href="#Automatic_Application_Deployment">Automatic Application
+ Deployment</a> for more information.</p>
+ </td></tr><tr><td align="left" valign="center"><code>backgroundProcessorDelay</code></td><td align="left" valign="center">
+ <p>This value represents the delay in seconds between the
+ invocation of the backgroundProcess method on this host and
+ its child containers, including all contexts.
+ Child containers will not be invoked if their delay value is not
+ negative (which would mean they are using their own processing
+ thread). Setting this to a positive value will cause
+ a thread to be spawn. After waiting the specified amount of time,
+ the thread will invoke the backgroundProcess method on this host
+ and all its child containers. A host will use background processing to
+ perform live web application deployment related tasks. If not
+ specified, the default value for this attribute is -1, which means
+ the host will rely on the background processing thread of its parent
+ engine.</p>
+ </td></tr><tr><td align="left" valign="center"><code>className</code></td><td align="left" valign="center">
+ <p>Java class name of the implementation to use. This class must
+ implement the <code>org.apache.catalina.Host</code> interface.
+ If not specified, the standard value (defined below) will be used.</p>
+ </td></tr><tr><td align="left" valign="center"><code>deployIgnore</code></td><td align="left" valign="center">
+ <p>A regular expression defining paths to ignore when
+ <code>autoDeploy</code> and <code>deployOnStartup</code> are set. This
+ allows you to keep your configuration in a version control system, for
+ example, and not deploy a .svn or CVS folder that happens to be in the
+ <code>appBase</code>.</p>
+ <p>This regular expression is relative to <code>appBase</code>. It is
+ also <em>anchored</em>, meaning the match is performed against the
+ entire file/directory name. So, <code>foo</code> matches only a file or
+ directory named <code>foo</code> but not <code>foo.war</code>,
+ <code>foobar</code>, or <code>myfooapp</code>. To match anything with
+ "foo", you could use <code>.*foo.*</code>.</p>
+ <p>See <a href="#Automatic_Application_Deployment">Automatic Application
+ Deployment</a> for more information.</p>
+ </td></tr><tr><td align="left" valign="center"><code>deployOnStartup</code></td><td align="left" valign="center">
+ <p>This flag value indicates if web applications from this host should
+ be automatically deployed when Tomcat starts. The flag's value defaults
+ to true. See
+ <a href="#Automatic_Application_Deployment">Automatic Application
+ Deployment</a> for more information.</p>
+ </td></tr><tr><td align="left" valign="center"><strong><code>name</code></strong></td><td align="left" valign="center">
+ <p>Network name of this virtual host, as registered in your
+ <em>Domain Name Service</em> server. Regardless of the case used to
+ specify the hostname, Tomcat will convert it to lower case internally.
+ One of the Hosts nested within an <a href="engine.html">Engine</a> MUST
+ have a name that matches the <code>defaultHost</code> setting for that
+ Engine. See <a href="#Host Name Aliases">Host Name Aliases</a> for
+ information on how to assign more than one network name to the same
+ virtual host.</p>
+ </td></tr></table>
+
+ </blockquote></td></tr></table>
+
+
+ <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Standard Implementation"><!--()--></a><a name="Standard_Implementation"><strong>Standard Implementation</strong></a></font></td></tr><tr><td><blockquote>
+
+ <p>The standard implementation of <strong>Host</strong> is
+ <strong>org.apache.catalina.core.StandardHost</strong>.
+ It supports the following additional attributes (in addition to the
+ common attributes listed above):</p>
+
+ <table border="1" cellpadding="5"><tr><th width="15%" bgcolor="#023264"><font color="#ffffff">Attribute</font></th><th width="85%" bgcolor="#023264"><font color="#ffffff">Description</font></th></tr><tr><td align="left" valign="center"><code>deployXML</code></td><td align="left" valign="center">
+ <p>Set to <code>false</code> if you want to disable parsing the context
+ XML descriptor embedded inside the application (located at
+ <code>/META-INF/context.xml</code>). Security conscious environments
+ should set this to <code>false</code> to prevent applications from
+ interacting with the container's configuration. The administrator will
+ then be responsible for providing an external context configuration
+ file, and putting it in
+ <code>$CATALINA_BASE/conf/[engine_name]/[host_name]</code>. The flag's
+ value defaults to <code>true</code>.</p>
+ </td></tr><tr><td align="left" valign="center"><code>errorReportValveClass</code></td><td align="left" valign="center">
+ <p>Java class name of the error reporting valve which will be used
+ by this Host. The responsibility of this valve is to output error
+ reports. Setting this property allows to customize the look of the
+ error pages which will be generated by Tomcat. This class must
+ implement the
+ <code>org.apache.catalina.Valve</code> interface. If none is specified,
+ the value <code>org.apache.catalina.valves.ErrorReportValve</code>
+ will be used by default.</p>
+ </td></tr><tr><td align="left" valign="center"><code>unpackWARs</code></td><td align="left" valign="center">
+ <p>Set to <code>true</code> if you want web applications that are
+ placed in the <code>appBase</code> directory as web application
+ archive (WAR) files to be unpacked into a corresponding disk directory
+ structure, <code>false</code> to run such web applications directly
+ from a WAR file. WAR files located outside of the Host's
+ <strong>appBase</strong> will not be expanded. See
+ <a href="#Automatic_Application_Deployment">Automatic Application
+ Deployment</a> for more information.</p>
+ </td></tr><tr><td align="left" valign="center"><code>workDir</code></td><td align="left" valign="center">
+ <p>Pathname to a scratch directory to be used by applications for
+ this Host. Each application will have its own sub directory with
+ temporary read-write use. Configuring a Context workDir will override
+ use of the Host workDir configuration. This directory will be made
+ visible to servlets in the web application by a servlet context
+ attribute (of type <code>java.io.File</code>) named
+ <code>javax.servlet.context.tempdir</code> as described in the
+ Servlet Specification. If not specified, a suitable directory
+ underneath <code>$CATALINA_BASE/work</code> will be provided.</p>
+ </td></tr></table>
+
+ </blockquote></td></tr></table>
+
+
+</blockquote></td></tr></table><table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Nested Components"><!--()--></a><a name="Nested_Components"><strong>Nested Components</strong></a></font></td></tr><tr><td><blockquote>
+
+ <p>You can nest one or more <a href="context.html">Context</a> elements
+ inside this <strong>Host</strong> element, each representing a different web
+ application associated with this virtual host.</p>
+
+ <p>You can nest at most one instance of the following utility components
+ by nesting a corresponding element inside your <strong>Host</strong>
+ element:</p>
+ <ul>
+ <li><a href="realm.html"><strong>Realm</strong></a> -
+ Configure a realm that will allow its
+ database of users, and their associated roles, to be shared across all
+ <a href="context.html">Contexts</a> nested inside this Host (unless
+ overridden by a <a href="realm.html">Realm</a> configuration
+ at a lower level).</li>
+ </ul>
+
+</blockquote></td></tr></table><table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Special Features"><!--()--></a><a name="Special_Features"><strong>Special Features</strong></a></font></td></tr><tr><td><blockquote>
+
+
+ <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Logging"><strong>Logging</strong></a></font></td></tr><tr><td><blockquote>
+
+ <p>A host is associated with the
+ <code>org.apache.catalina.core.ContainerBase.[engine_name].[host_name]</code>
+ log category. Note that the brackets are part of the name,
+ don't omit them.</p>
+
+ </blockquote></td></tr></table>
+
+
+ <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Access Logs"><!--()--></a><a name="Access_Logs"><strong>Access Logs</strong></a></font></td></tr><tr><td><blockquote>
+
+ <p>When you run a web server, one of the output files normally generated
+ is an <em>access log</em>, which generates one line of information for
+ each request processed by the server, in a standard format. Catalina
+ includes an optional <a href="valve.html">Valve</a> implementation that
+ can create access logs in the same standard format created by web servers,
+ or in any number of custom formats.</p>
+
+ <p>You can ask Catalina to create an access log for all requests
+ processed by an <a href="engine.html">Engine</a>,
+ <a href="host.html">Host</a>, or <a href="context.html">Context</a>
+ by nesting a <a href="valve.html">Valve</a> element like this:</p>
+
+<div align="left"><table cellspacing="4" cellpadding="0" border="0"><tr><td bgcolor="#023264" width="1" height="1"><img src="../images/void.gif" alt="" width="1" height="1" vspace="0" hspace="0" border="0"></td><td bgcolor="#023264" height="1"><img src="../images/void.gif" alt="" width="1" height="1" vspace="0" hspace="0" border="0"></td><td bgcolor="#023264" width="1" height="1"><img src="../images/void.gif" alt="" width="1" height="1" vspace="0" hspace="0" border="0"></td></tr><tr><td bgcolor="#023264" width="1"><img src="../images/void.gif" alt="" width="1" height="1" vspace="0" hspace="0" border="0"></td><td bgcolor="#ffffff" height="1"><pre>
+<Host name="localhost" ...>
+ ...
+ <Valve className="org.apache.catalina.valves.AccessLogValve"
+ prefix="localhost_access_log." suffix=".txt"
+ pattern="common"/>
+ ...
+</Host>
+</pre></td><td bgcolor="#023264" width="1"><img src="../images/void.gif" alt="" width="1" height="1" vspace="0" hspace="0" border="0"></td></tr><tr><td bgcolor="#023264" width="1" height="1"><img src="../images/void.gif" alt="" width="1" height="1" vspace="0" hspace="0" border="0"></td><td bgcolor="#023264" height="1"><img src="../images/void.gif" alt="" width="1" height="1" vspace="0" hspace="0" border="0"></td><td bgcolor="#023264" width="1" height="1"><img src="../images/void.gif" alt="" width="1" height="1" vspace="0" hspace="0" border="0"></td></tr></table></div>
+
+ <p>See <a href="valve.html#Access Log Valve">Access Log Valve</a>
+ for more information on the configuration attributes that are
+ supported.</p>
+
+ </blockquote></td></tr></table>
+
+
+ <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Automatic Application Deployment"><!--()--></a><a name="Automatic_Application_Deployment"><strong>Automatic Application Deployment</strong></a></font></td></tr><tr><td><blockquote>
+
+ <p>If you are using the standard <strong>Host</strong> implementation,
+ the following actions take place automatically when Catalina is first
+ started, if the <code>deployOnStartup</code> property is set to
+ <code>true</code> (which is the default value):</p>
+ <ul>
+ <li>Any XML file in
+ <code>$CATALINA_BASE/conf/[engine_name]/[host_name]</code> is
+ assumed to be a context XML descriptor containing a
+ <a href="context.html">Context</a> element (and its associated
+ sub-elements) for a single web application. The web applications
+ associated with each of these context XML descriptor files will be
+ deployed first.<br>
+ The <code>docBase</code> attribute of this <code><Context></code>
+ element must only be set if the docBase is outside the Host's
+ <code>appBase</code>. For web applications located inside the Host's
+ <code>appBase</code>, the <code>docBase</code> will be the name of the
+ XML file with ".xml" replaced with ".war" for a web application archive
+ or the name of the XML file with ".xml" removed for a directory.<br>
+ The <code>path</code> attribute must not be set. The context path used
+ will be a slash character ("/") followed by the name of the XML file
+ (less the .xml extension). Multi-level context paths may be defined
+ using #, e.g. <code>foo#bar.xml</code> for a context path of
+ <code>/foo/bar</code>. The default web application that has a context
+ path of <code>/</code> may be defined by using a file called
+ <code>ROOT.xml</code>.</li>
+ <li>Any web application archive file within the Host's <code>appBase</code>
+ directory that has not already been deployed as a result of a context
+ XML descriptor, does not have a corresponding directory of the same
+ name (without the ".war" extension), and is not excluded by
+ <code>deployIgnore</code> will be deployed next. The context path
+ used will be a slash character ("/") followed by the web application
+ archive name less the ".war" extension. The one exception to this rule
+ is that a web application archive named "ROOT.war" will be deployed with
+ a context path of <code>/</code>. Multi-level contexts may be defined by
+ using #, e.g. use a WAR named <code>foo#bar.war</code> for a context
+ path of <code>/foo/bar</code>.<br>
+ If the <code>unpackWARs</code> attribute is <code>true</code>, the web
+ application archive file will be expanded to a directory of the same
+ name (without the ".war" extension".<br>
+ Note: If you re-deploy an updated WAR file while Tomcat is stopped, be
+ sure to delete the associated expanded directory before restarting
+ Tomcat, so that the updated WAR file will be re-expanded when Tomcat
+ restarts.<br>
+ Any web application archive file within the Hosts's <code>appBase</code>
+ directory that does not have a corresponding context XML descriptor
+ (with a ".xml" extension rather than a ".war" extension) in
+ <code>$CATALINA_BASE/conf/[engine_name]/[host_name]</code> will be
+ scanned to see if it contains a context XML descriptor (located at
+ <code>/META-INF/context.xml</code>) and if one is found the descriptor
+ will be copied to the
+ <code>$CATALINA_BASE/conf/[engine_name]/[host_name]</code> directory and
+ renamed.
+ </li>
+ <li>Finally, any sub-directory within the Host's <code>appBase</code> that
+ has not already been deployed as a result of a context XML descriptor
+ and is not excluded by <code>deployIgnore</code> will be deployed.
+ The context path used will be a slash character ("/") followed by the
+ directory name, unless the directory name is ROOT, in which case the
+ context path will <code>/</code>. Multi-level contexts may be defined by
+ using #, e.g. use a directory named <code>foo#bar</code> for a context
+ path of <code>/foo/bar</code>.<br>
+ Any directory within the Hosts's <code>appBase</code> directory that
+ does not have a corresponding context XML descriptor in
+ <code>$CATALINA_BASE/conf/[engine_name]/[host_name]</code> will be
+ scanned to see if it contains a context XML descriptor (located at
+ <code>/META-INF/context.xml</code>) and if one is found the descriptor
+ will be copied to
+ <code>$CATALINA_BASE/conf/[engine_name]/[host_name]</code> and renamed.
+ </li>
+ </ul>
+
+ <p>In addition to the automatic deployment that occurs at startup time,
+ you can also request that new XML configuration files, WAR files, or
+ sub-directories that are dropped in to the <code>appBase</code> (or
+ <code>$CATALINA_BASE/conf/[engine_name]/[host_name]</code> in the case of
+ an XML configuration file) directory while Tomcat is running will be
+ automatically deployed, according to the rules described above. The
+ auto deployer will also track web applications for the following changes:
+ <ul>
+ <li>An update to the WEB-INF/web.xml file will trigger a reload of the
+ web application</li>
+ <li>Deleting a WAR file will trigger an undeploy of the application with
+ the removal of any associated expanded directory, context file and
+ work directory. Any current user sessions will not be persisted.</li>
+ <li>Deleting a directory will trigger an undeploy of the application
+ with the removal of any associated context file and work directory.
+ Any current user sessions will not be persisted. If there is an
+ associated WAR file, it will not be deleted and the application will
+ be redeployed from the WAR file the next time the auto deployer checks
+ for changes.</li>
+ <li>Deleting a context file will trigger an undeploy of the application
+ with the removal of any associated work directory. Any current user
+ sessions will not be persisted. If there is an associated WAR file
+ and/or directory, they will not be deleted and the application will be
+ redeployed from the WAR file (or from directory if there is no WAR
+ file) the next time the auto deployer checks for changes.</li>
+ <li>Updating a WAR file will trigger an undeploy of the application with
+ the removal of any associated expanded directory, context file and
+ work directory. Any current user sessions will not be persisted.</li>
+ <li>Updating a directory (not the directory contents) will trigger an
+ undeploy of the application with the removal of any associated context
+ file and work directory. Any current user sessions will not be
+ persisted. The application will be redeployed the next time the auto
+ deployer checks for changes.</li>
+ <li>Updating a context file will trigger an undeploy of the application
+ with the removal of any associated work directory. Any current user
+ sessions will not be persisted. The application will be redeployed the
+ next time the auto deployer checks for changes.</li>
+ </ul>
+ </p>
+
+ <p>When using automatic deployment, the <code>docBase</code> defined by
+ an XML <a href="context.html">Context</a> file should be outside of the
+ <code>appBase</code> directory. If this is not the case, difficulties
+ may be experienced deploying the web application or the application may
+ be deployed twice. The <code>deployIgnore</code> attribute can be used
+ to avoid this situation.</p>
+
+ <p>Finally, note that if you are defining contexts explicitly in server.xml,
+ you should probably turn off automatic application deployment or specify
+ <code>deployIgnore</code> carefully. Otherwise, the web applications
+ will each be deployed twice, and that may cause problems for the
+ applications.</p>
+
+ </blockquote></td></tr></table>
+
+
+ <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Host Name Aliases"><!--()--></a><a name="Host_Name_Aliases"><strong>Host Name Aliases</strong></a></font></td></tr><tr><td><blockquote>
+
+ <p>In many server environments, Network Administrators have configured
+ more than one network name (in the <em>Domain Name Service</em> (DNS)
+ server), that resolve to the IP address of the same server. Normally,
+ each such network name would be configured as a separate
+ <strong>Host</strong> element in <code>conf/server.xml</code>, each
+ with its own set of web applications.</p>
+
+ <p>However, in some circumstances, it is desirable that two or more
+ network names should resolve to the <strong>same</strong> virtual host,
+ running the same set of applications. A common use case for this
+ scenario is a corporate web site, where it is desirable that users
+ be able to utilize either <code>www.mycompany.com</code> or
+ <code>company.com</code> to access exactly the same content and
+ applications.</p>
+
+ <p>This is accomplished by utilizing one or more <strong>Alias</strong>
+ elements nested inside your <strong>Host</strong> element. For
+ example:</p>
+<div align="left"><table cellspacing="4" cellpadding="0" border="0"><tr><td bgcolor="#023264" width="1" height="1"><img src="../images/void.gif" alt="" width="1" height="1" vspace="0" hspace="0" border="0"></td><td bgcolor="#023264" height="1"><img src="../images/void.gif" alt="" width="1" height="1" vspace="0" hspace="0" border="0"></td><td bgcolor="#023264" width="1" height="1"><img src="../images/void.gif" alt="" width="1" height="1" vspace="0" hspace="0" border="0"></td></tr><tr><td bgcolor="#023264" width="1"><img src="../images/void.gif" alt="" width="1" height="1" vspace="0" hspace="0" border="0"></td><td bgcolor="#ffffff" height="1"><pre>
+<Host name="www.mycompany.com" ...>
+ ...
+ <Alias>mycompany.com</Alias>
+ ...
+</Host>
+</pre></td><td bgcolor="#023264" width="1"><img src="../images/void.gif" alt="" width="1" height="1" vspace="0" hspace="0" border="0"></td></tr><tr><td bgcolor="#023264" width="1" height="1"><img src="../images/void.gif" alt="" width="1" height="1" vspace="0" hspace="0" border="0"></td><td bgcolor="#023264" height="1"><img src="../images/void.gif" alt="" width="1" height="1" vspace="0" hspace="0" border="0"></td><td bgcolor="#023264" width="1" height="1"><img src="../images/void.gif" alt="" width="1" height="1" vspace="0" hspace="0" border="0"></td></tr></table></div>
+
+ <p>In order for this strategy to be effective, all of the network names
+ involved must be registered in your DNS server to resolve to the
+ same computer that is running this instance of Catalina.</p>
+
+ </blockquote></td></tr></table>
+
+
+ <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Lifecycle Listeners"><!--()--></a><a name="Lifecycle_Listeners"><strong>Lifecycle Listeners</strong></a></font></td></tr><tr><td><blockquote>
+
+ <p>If you have implemented a Java object that needs to know when this
+ <strong>Host</strong> is started or stopped, you can declare it by
+ nesting a <strong>Listener</strong> element inside this element. The
+ class name you specify must implement the
+ <code>org.apache.catalina.LifecycleListener</code> interface, and
+ it will be notified about the occurrence of the corresponding
+ lifecycle events. Configuration of such a listener looks like this:</p>
+
+<div align="left"><table cellspacing="4" cellpadding="0" border="0"><tr><td bgcolor="#023264" width="1" height="1"><img src="../images/void.gif" alt="" width="1" height="1" vspace="0" hspace="0" border="0"></td><td bgcolor="#023264" height="1"><img src="../images/void.gif" alt="" width="1" height="1" vspace="0" hspace="0" border="0"></td><td bgcolor="#023264" width="1" height="1"><img src="../images/void.gif" alt="" width="1" height="1" vspace="0" hspace="0" border="0"></td></tr><tr><td bgcolor="#023264" width="1"><img src="../images/void.gif" alt="" width="1" height="1" vspace="0" hspace="0" border="0"></td><td bgcolor="#ffffff" height="1"><pre>
+<Host name="localhost" ...>
+ ...
+ <Listener className="com.mycompany.mypackage.MyListener" ... >
+ ...
+</Host>
+</pre></td><td bgcolor="#023264" width="1"><img src="../images/void.gif" alt="" width="1" height="1" vspace="0" hspace="0" border="0"></td></tr><tr><td bgcolor="#023264" width="1" height="1"><img src="../images/void.gif" alt="" width="1" height="1" vspace="0" hspace="0" border="0"></td><td bgcolor="#023264" height="1"><img src="../images/void.gif" alt="" width="1" height="1" vspace="0" hspace="0" border="0"></td><td bgcolor="#023264" width="1" height="1"><img src="../images/void.gif" alt="" width="1" height="1" vspace="0" hspace="0" border="0"></td></tr></table></div>
+
+ <p>Note that a Listener can have any number of additional properties
+ that may be configured from this element. Attribute names are matched
+ to corresponding JavaBean property names using the standard property
+ method naming patterns.</p>
+
+ </blockquote></td></tr></table>
+
+
+ <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Request Filters"><!--()--></a><a name="Request_Filters"><strong>Request Filters</strong></a></font></td></tr><tr><td><blockquote>
+
+ <p>You can ask Catalina to check the IP address, or host name, on every
+ incoming request directed to the surrounding
+ <a href="engine.html">Engine</a>, <a href="host.html">Host</a>, or
+ <a href="context.html">Context</a> element. The remote address or name
+ will be checked against a configured list of "accept" and/or "deny"
+ filters, which are defined using <code>java.util.regex</code> Regular
+ Expression syntax. Requests that come from locations that are
+ not accepted will be rejected with an HTTP "Forbidden" error.
+ Example filter declarations:</p>
+
+<div align="left"><table cellspacing="4" cellpadding="0" border="0"><tr><td bgcolor="#023264" width="1" height="1"><img src="../images/void.gif" alt="" width="1" height="1" vspace="0" hspace="0" border="0"></td><td bgcolor="#023264" height="1"><img src="../images/void.gif" alt="" width="1" height="1" vspace="0" hspace="0" border="0"></td><td bgcolor="#023264" width="1" height="1"><img src="../images/void.gif" alt="" width="1" height="1" vspace="0" hspace="0" border="0"></td></tr><tr><td bgcolor="#023264" width="1"><img src="../images/void.gif" alt="" width="1" height="1" vspace="0" hspace="0" border="0"></td><td bgcolor="#ffffff" height="1"><pre>
+<Host name="localhost" ...>
+ ...
+ <Valve className="org.apache.catalina.valves.RemoteHostValve"
+ allow=".*\.mycompany\.com|www\.yourcompany\.com"/>
+ <Valve className="org.apache.catalina.valves.RemoteAddrValve"
+ deny="192\.168\.1\.\d+"/>
+ ...
+</Host>
+</pre></td><td bgcolor="#023264" width="1"><img src="../images/void.gif" alt="" width="1" height="1" vspace="0" hspace="0" border="0"></td></tr><tr><td bgcolor="#023264" width="1" height="1"><img src="../images/void.gif" alt="" width="1" height="1" vspace="0" hspace="0" border="0"></td><td bgcolor="#023264" height="1"><img src="../images/void.gif" alt="" width="1" height="1" vspace="0" hspace="0" border="0"></td><td bgcolor="#023264" width="1" height="1"><img src="../images/void.gif" alt="" width="1" height="1" vspace="0" hspace="0" border="0"></td></tr></table></div>
+
+ <p>See <a href="valve.html#Remote Address Filter">Remote Address Filter</a>
+ and <a href="valve.html#Remote Host Filter">Remote Host Filter</a> for
+ more information about the configuration options that are supported.</p>
+
+ </blockquote></td></tr></table>
+
+
+ <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Single Sign On"><!--()--></a><a name="Single_Sign_On"><strong>Single Sign On</strong></a></font></td></tr><tr><td><blockquote>
+
+ <p>In many environments, but particularly in portal environments, it
+ is desireable to have a user challenged to authenticate themselves only
+ once over a set of web applications deployed on a particular virtual
+ host. This can be accomplished by nesting an element like this inside
+ the Host element for this virtual host:</p>
+
+<div align="left"><table cellspacing="4" cellpadding="0" border="0"><tr><td bgcolor="#023264" width="1" height="1"><img src="../images/void.gif" alt="" width="1" height="1" vspace="0" hspace="0" border="0"></td><td bgcolor="#023264" height="1"><img src="../images/void.gif" alt="" width="1" height="1" vspace="0" hspace="0" border="0"></td><td bgcolor="#023264" width="1" height="1"><img src="../images/void.gif" alt="" width="1" height="1" vspace="0" hspace="0" border="0"></td></tr><tr><td bgcolor="#023264" width="1"><img src="../images/void.gif" alt="" width="1" height="1" vspace="0" hspace="0" border="0"></td><td bgcolor="#ffffff" height="1"><pre>
+<Host name="localhost" ...>
+ ...
+ <Valve className="org.apache.catalina.authenticator.SingleSignOn"/>
+ ...
+</Host>
+</pre></td><td bgcolor="#023264" width="1"><img src="../images/void.gif" alt="" width="1" height="1" vspace="0" hspace="0" border="0"></td></tr><tr><td bgcolor="#023264" width="1" height="1"><img src="../images/void.gif" alt="" width="1" height="1" vspace="0" hspace="0" border="0"></td><td bgcolor="#023264" height="1"><img src="../images/void.gif" alt="" width="1" height="1" vspace="0" hspace="0" border="0"></td><td bgcolor="#023264" width="1" height="1"><img src="../images/void.gif" alt="" width="1" height="1" vspace="0" hspace="0" border="0"></td></tr></table></div>
+
+ <p>The Single Sign On facility operates according to the following rules:
+ </p>
+ <ul>
+ <li>All web applications configured for this virtual host must share the
+ same <a href="realm.html">Realm</a>. In practice, that means you can
+ nest the Realm element inside this Host element (or the surrounding
+ <a href="engine.html">Engine</a> element), but not inside a
+ <a href="context.html">Context</a> element for one of the involved
+ web applications.</li>
+ <li>As long as the user accesses only unprotected resources in any of the
+ web applications on this virtual host, they will not be challenged
+ to authenticate themselves.</li>
+ <li>As soon as the user accesses a protected resource in
+ <strong>any</strong> web application associated with this virtual
+ host, the user will be challenged to authenticate himself or herself,
+ using the login method defined for the web application currently
+ being accessed.</li>
+ <li>Once authenticated, the roles associated with this user will be
+ utilized for access control decisions across <strong>all</strong>
+ of the associated web applications, without challenging the user
+ to authenticate themselves to each application individually.</li>
+ <li>As soon as the user logs out of one web application (for example,
+ by invalidating the corresponding session if form
+ based login is used), the user's sessions in <strong>all</strong>
+ web applications will be invalidated. Any subsequent attempt to
+ access a protected resource in any application will require the
+ user to authenticate himself or herself again.</li>
+ <li>The Single Sign On feature utilizes HTTP cookies to transmit a token
+ that associates each request with the saved user identity, so it can
+ only be utilized in client environments that support cookies.</li>
+ </ul>
+
+ </blockquote></td></tr></table>
+
+
+ <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="User Web Applications"><!--()--></a><a name="User_Web_Applications"><strong>User Web Applications</strong></a></font></td></tr><tr><td><blockquote>
+
+ <p>Many web servers can automatically map a request URI starting with
+ a tilde character ("~") and a username to a directory (commonly named
+ <code>public_html</code>) in that user's home directory on the server.
+ You can accomplish the same thing in Catalina by using a special
+ <strong>Listener</strong> element like this (on a Unix system that
+ uses the <code>/etc/passwd</code> file to identify valid users):</p>
+
+<div align="left"><table cellspacing="4" cellpadding="0" border="0"><tr><td bgcolor="#023264" width="1" height="1"><img src="../images/void.gif" alt="" width="1" height="1" vspace="0" hspace="0" border="0"></td><td bgcolor="#023264" height="1"><img src="../images/void.gif" alt="" width="1" height="1" vspace="0" hspace="0" border="0"></td><td bgcolor="#023264" width="1" height="1"><img src="../images/void.gif" alt="" width="1" height="1" vspace="0" hspace="0" border="0"></td></tr><tr><td bgcolor="#023264" width="1"><img src="../images/void.gif" alt="" width="1" height="1" vspace="0" hspace="0" border="0"></td><td bgcolor="#ffffff" height="1"><pre>
+<Host name="localhost" ...>
+ ...
+ <Listener className="org.apache.catalina.startup.UserConfig"
+ directoryName="public_html"
+ userClass="org.apache.catalina.startup.PasswdUserDatabase"/>
+ ...
+</Host>
+</pre></td><td bgcolor="#023264" width="1"><img src="../images/void.gif" alt="" width="1" height="1" vspace="0" hspace="0" border="0"></td></tr><tr><td bgcolor="#023264" width="1" height="1"><img src="../images/void.gif" alt="" width="1" height="1" vspace="0" hspace="0" border="0"></td><td bgcolor="#023264" height="1"><img src="../images/void.gif" alt="" width="1" height="1" vspace="0" hspace="0" border="0"></td><td bgcolor="#023264" width="1" height="1"><img src="../images/void.gif" alt="" width="1" height="1" vspace="0" hspace="0" border="0"></td></tr></table></div>
+
+ <p>On a server where <code>/etc/passwd</code> is not in use, you can
+ request Catalina to consider all directories found in a specified base
+ directory (such as <code>c:\Homes</code> in this example) to be
+ considered "user home" directories for the purposes of this directive:</p>
+
+<div align="left"><table cellspacing="4" cellpadding="0" border="0"><tr><td bgcolor="#023264" width="1" height="1"><img src="../images/void.gif" alt="" width="1" height="1" vspace="0" hspace="0" border="0"></td><td bgcolor="#023264" height="1"><img src="../images/void.gif" alt="" width="1" height="1" vspace="0" hspace="0" border="0"></td><td bgcolor="#023264" width="1" height="1"><img src="../images/void.gif" alt="" width="1" height="1" vspace="0" hspace="0" border="0"></td></tr><tr><td bgcolor="#023264" width="1"><img src="../images/void.gif" alt="" width="1" height="1" vspace="0" hspace="0" border="0"></td><td bgcolor="#ffffff" height="1"><pre>
+<Host name="localhost" ...>
+ ...
+ <Listener className="org.apache.catalina.startup.UserConfig"
+ directoryName="public_html"
+ homeBase=c:\Homes"
+ userClass="org.apache.catalina.startup.HomesUserDatabase"/>
+ ...
+</Host>
+</pre></td><td bgcolor="#023264" width="1"><img src="../images/void.gif" alt="" width="1" height="1" vspace="0" hspace="0" border="0"></td></tr><tr><td bgcolor="#023264" width="1" height="1"><img src="../images/void.gif" alt="" width="1" height="1" vspace="0" hspace="0" border="0"></td><td bgcolor="#023264" height="1"><img src="../images/void.gif" alt="" width="1" height="1" vspace="0" hspace="0" border="0"></td><td bgcolor="#023264" width="1" height="1"><img src="../images/void.gif" alt="" width="1" height="1" vspace="0" hspace="0" border="0"></td></tr></table></div>
+
+ <p>If a user home directory has been set up for a user named
+ <code>craigmcc</code>, then its contents will be visible from a
+ client browser by making a request to a URL like:</p>
+
+<div align="left"><table cellspacing="4" cellpadding="0" border="0"><tr><td bgcolor="#023264" width="1" height="1"><img src="../images/void.gif" alt="" width="1" height="1" vspace="0" hspace="0" border="0"></td><td bgcolor="#023264" height="1"><img src="../images/void.gif" alt="" width="1" height="1" vspace="0" hspace="0" border="0"></td><td bgcolor="#023264" width="1" height="1"><img src="../images/void.gif" alt="" width="1" height="1" vspace="0" hspace="0" border="0"></td></tr><tr><td bgcolor="#023264" width="1"><img src="../images/void.gif" alt="" width="1" height="1" vspace="0" hspace="0" border="0"></td><td bgcolor="#ffffff" height="1"><pre>
+http://www.mycompany.com:8080/~craigmcc
+</pre></td><td bgcolor="#023264" width="1"><img src="../images/void.gif" alt="" width="1" height="1" vspace="0" hspace="0" border="0"></td></tr><tr><td bgcolor="#023264" width="1" height="1"><img src="../images/void.gif" alt="" width="1" height="1" vspace="0" hspace="0" border="0"></td><td bgcolor="#023264" height="1"><img src="../images/void.gif" alt="" width="1" height="1" vspace="0" hspace="0" border="0"></td><td bgcolor="#023264" width="1" height="1"><img src="../images/void.gif" alt="" width="1" height="1" vspace="0" hspace="0" border="0"></td></tr></table></div>
+
+ <p>Successful use of this feature requires recognition of the following
+ considerations:</p>
+ <ul>
+ <li>Each user web application will be deployed with characteristics
+ established by the global and host level default context settings.</li>
+ <li>It is legal to include more than one instance of this Listener
+ element. This would only be useful, however, in circumstances
+ where you wanted to configure more than one "homeBase" directory.</li>
+ <li>The operating system username under which Catalina is executed
+ MUST have read access to each user's web application directory,
+ and all of its contents.</li>
+ </ul>
+
+ </blockquote></td></tr></table>
+
+
+</blockquote></td></tr></table></td></tr><!--FOOTER SEPARATOR--><tr><td colspan="2"><hr noshade="noshade" size="1"></td></tr><!--PAGE FOOTER--><tr><td colspan="2"><div align="center"><font color="#525D76" size="-1"><em>
+ Copyright © 1999-2014, Apache Software Foundation
+ </em></font></div></td></tr></table></body></html>
\ No newline at end of file
diff --git a/tomcat-uid/webapps/docs/config/http.html b/tomcat-uid/webapps/docs/config/http.html
new file mode 100644
index 0000000..c5b88c0
--- /dev/null
+++ b/tomcat-uid/webapps/docs/config/http.html
@@ -0,0 +1,715 @@
+<html><head><META http-equiv="Content-Type" content="text/html; charset=iso-8859-1"><title>Apache Tomcat Configuration Reference (6.0.39) - The HTTP Connector</title><meta name="author" content="Craig R. McClanahan"><meta name="author" content="Yoav Shapira"><style type="text/css" media="print">
+ .noPrint {display: none;}
+ td#mainBody {width: 100%;}
+ </style></head><body bgcolor="#ffffff" text="#000000" link="#525D76" alink="#525D76" vlink="#525D76"><table border="0" width="100%" cellspacing="0"><!--PAGE HEADER--><tr><td><!--PROJECT LOGO--><a href="http://tomcat.apache.org/"><img src="../images/tomcat.gif" align="right" alt="
+ The Apache Tomcat Servlet/JSP Container
+ " border="0"></a></td><td><h1><font face="arial,helvetica,sanserif">Apache Tomcat 6.0</font></h1><font face="arial,helvetica,sanserif">Version 6.0.39, Jan 27 2014</font></td><td><!--APACHE LOGO--><a href="http://www.apache.org/"><img src="../images/asf-logo.gif" align="right" alt="Apache Logo" border="0"></a></td></tr></table><table border="0" width="100%" cellspacing="4"><!--HEADER SEPARATOR--><tr><td colspan="2"><hr noshade="noshade" size="1"></td></tr><tr><!--LEFT SIDE NAVIGATION--><td width="20%" valign="top" nowrap="nowrap" class="noPrint"><p><strong>Links</strong></p><ul><li><a href="../index.html">Docs Home</a></li><li><a href="index.html">Config Ref. Home</a></li></ul><p><strong>Top Level Elements</strong></p><ul><li><a href="server.html">Server</a></li><li><a href="service.html">Service</a></li></ul><p><strong>Executors</strong></p><ul><li><a href="executor.html">Executor</a></li></ul><p><strong>Connectors</strong></p><ul><li><a href="http.html">HTTP</a></li><li><a href="ajp.html">AJP</a></li></ul><p><strong>Containers</strong></p><ul><li><a href="context.html">Context</a></li><li><a href="engine.html">Engine</a></li><li><a href="host.html">Host</a></li><li><a href="cluster.html">Cluster</a></li></ul><p><strong>Nested Components</strong></p><ul><li><a href="globalresources.html">Global Resources</a></li><li><a href="listeners.html">Listeners</a></li><li><a href="loader.html">Loader</a></li><li><a href="manager.html">Manager</a></li><li><a href="realm.html">Realm</a></li><li><a href="resources.html">Resources</a></li><li><a href="valve.html">Valve</a></li></ul><p><strong>Cluster Elements</strong></p><ul><li><a href="cluster.html">Cluster</a></li><li><a href="cluster-manager.html">Manager</a></li><li><a href="cluster-channel.html">Channel</a></li><li><a href="cluster-membership.html">Channel/Membership</a></li><li><a href="cluster-sender.html">Channel/Sender</a></li><li><a href="cluster-receiver.html">Channel/Receiver</a></li><li><a href="cluster-interceptor.html">Channel/Interceptor</a></li><li><a href="cluster-valve.html">Valve</a></li><li><a href="cluster-deployer.html">Deployer</a></li><li><a href="cluster-listener.html">ClusterListener</a></li></ul><p><strong>Other</strong></p><ul><li><a href="filter.html">Filter</a></li><li><a href="systemprops.html">System properties</a></li></ul></td><!--RIGHT SIDE MAIN BODY--><td width="80%" valign="top" align="left" id="mainBody"><h1>Apache Tomcat Configuration Reference</h1><h2>The HTTP Connector</h2><table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Table of Contents"><!--()--></a><a name="Table_of_Contents"><strong>Table of Contents</strong></a></font></td></tr><tr><td><blockquote>
+<ul><li><a href="#Introduction">Introduction</a></li><li><a href="#Attributes">Attributes</a><ol><li><a href="#Common_Attributes">Common Attributes</a></li><li><a href="#Standard_Implementation">Standard Implementation</a></li><li><a href="#Nio_Implementation">Nio Implementation</a></li></ol></li><li><a href="#Nested_Components">Nested Components</a></li><li><a href="#Special_Features">Special Features</a><ol><li><a href="#HTTP/1.1_and_HTTP/1.0_Support">HTTP/1.1 and HTTP/1.0 Support</a></li><li><a href="#Proxy_Support">Proxy Support</a></li><li><a href="#SSL_Support">SSL Support</a></li><li><a href="#Connector_Comparison">Connector Comparison</a></li></ol></li></ul>
+</blockquote></td></tr></table><table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Introduction"><strong>Introduction</strong></a></font></td></tr><tr><td><blockquote>
+
+ <p>The <strong>HTTP Connector</strong> element represents a
+ <strong>Connector</strong> component that supports the HTTP/1.1 protocol.
+ It enables Catalina to function as a stand-alone web server, in addition
+ to its ability to execute servlets and JSP pages. A particular instance
+ of this component listens for connections on a specific TCP port number
+ on the server. One or more such <strong>Connectors</strong> can be
+ configured as part of a single <a href="service.html">Service</a>, each
+ forwarding to the associated <a href="engine.html">Engine</a> to perform
+ request processing and create the response.</p>
+
+ <p>If you wish to configure the <strong>Connector</strong> that is used
+ for connections to web servers using the AJP protocol (such as the
+ <code>mod_jk 1.2.x</code> connector for Apache 1.3), see
+ <a href="ajp.html">here</a> instead.</p>
+
+ <p>Each incoming request requires
+ a thread for the duration of that request. If more simultaneous requests
+ are received than can be handled by the currently available request
+ processing threads, additional threads will be created up to the
+ configured maximum (the value of the <code>maxThreads</code> attribute).
+ If still more simultaneous requests are received, they are stacked up
+ inside the server socket created by the <strong>Connector</strong>, up to
+ the configured maximum (the value of the <code>acceptCount</code>
+ attribute). Any further simultaneous requests will receive "connection
+ refused" errors, until resources are available to process them.</p>
+
+</blockquote></td></tr></table><table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Attributes"><strong>Attributes</strong></a></font></td></tr><tr><td><blockquote>
+
+ <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Common Attributes"><!--()--></a><a name="Common_Attributes"><strong>Common Attributes</strong></a></font></td></tr><tr><td><blockquote>
+
+ <p>All implementations of <strong>Connector</strong>
+ support the following attributes:</p>
+
+ <table border="1" cellpadding="5"><tr><th width="15%" bgcolor="#023264"><font color="#ffffff">Attribute</font></th><th width="85%" bgcolor="#023264"><font color="#ffffff">Description</font></th></tr><tr><td align="left" valign="center"><code>allowTrace</code></td><td align="left" valign="center">
+ <p>A boolean value which can be used to enable or disable the TRACE
+ HTTP method. If not specified, this attribute is set to false.</p>
+ </td></tr><tr><td align="left" valign="center"><code>emptySessionPath</code></td><td align="left" valign="center">
+ <p>If set to <code>true</code>, all paths for session cookies will be set
+ to <code>/</code>. This can be useful for portlet specification implementations.
+ If not specified, this attribute is set to <code>false</code>.<br>
+ A side effect to setting this to true, is that if Tomcat creates a new session it will attempt to use the
+ cookie session id if supplied by the client.<br>
+ <a href="http://svn.apache.org/viewvc/tomcat/container/tc5.5.x/catalina/src/share/org/apache/catalina/connector/Request.java?diff_format=h&view=log#rev303682">SVN check in</a><br>
+ <a href="http://tomcat.markmail.org/search/?q=emptysessionpath%20reuse#query:emptysessionpath%20reuse%20date%3A200502%20+page:1+mid:2bocwjhn3cczsoii+state:results">Dev discussion</a><br>
+ <a href="https://issues.apache.org/bugzilla/show_bug.cgi?id=47298">Work around</a>
+ </p>
+ </td></tr><tr><td align="left" valign="center"><code>enableLookups</code></td><td align="left" valign="center">
+ <p>Set to <code>true</code> if you want calls to
+ <code>request.getRemoteHost()</code> to perform DNS lookups in
+ order to return the actual host name of the remote client. Set
+ to <code>false</code> to skip the DNS lookup and return the IP
+ address in String form instead (thereby improving performance).
+ By default, DNS lookups are disabled.</p>
+ </td></tr><tr><td align="left" valign="center"><code>maxHeaderCount</code></td><td align="left" valign="center">
+ <p>The maximum number of headers in a request that are allowed by the
+ container. A request that contains more headers than the specified limit
+ will be rejected. A value of less than 0 means no limit.
+ If not specified, a default of 100 is used.</p>
+ </td></tr><tr><td align="left" valign="center"><code>maxParameterCount</code></td><td align="left" valign="center">
+ <p>The maximum number of parameters (GET plus POST) which will be
+ automatically parsed by the container. A value of less than 0 means no
+ limit. If not specified, a default of 10000 is used. Note that
+ <code>FailedRequestFilter</code> <a href="filter.html">filter</a> can be
+ used to reject requests that hit the limit.</p>
+ </td></tr><tr><td align="left" valign="center"><code>maxPostSize</code></td><td align="left" valign="center">
+ <p>The maximum size in bytes of the POST which will be handled by
+ the container FORM URL parameter parsing. The limit can be disabled by
+ setting this attribute to a value less than or equal to 0.
+ If not specified, this attribute is set to 2097152 (2 megabytes).</p>
+ </td></tr><tr><td align="left" valign="center"><code>maxSavePostSize</code></td><td align="left" valign="center">
+ <p>The maximum size in bytes of the POST which will be saved/buffered by
+ the container during FORM or CLIENT-CERT authentication. For both types
+ of authentication, the POST will be saved/buffered before the user is
+ authenticated. For CLIENT-CERT authentication, the POST is buffered for
+ the duration of the SSL handshake and the buffer emptied when the request
+ is processed. For FORM authentication the POST is saved whilst the user
+ is re-directed to the login form and is retained until the user
+ successfully authenticates or the session associated with the
+ authentication request expires. The limit can be disabled by setting this
+ attribute to -1. Setting the attribute to zero will disable the saving of
+ POST data during authentication. If not specified, this attribute is set
+ to 4096 (4 kilobytes).</p>
+ </td></tr><tr><td align="left" valign="center"><code>parseBodyMethods</code></td><td align="left" valign="center">
+ <p>A comma-separated list of HTTP methods for which request
+ bodies will be parsed for request parameters identically
+ to POST. This is useful in RESTful applications that want to
+ support POST-style semantics for PUT requests.
+ Note that any setting other than <code>POST</code> causes Tomcat
+ to behave in a way that does against the intent of the servlet
+ specification.
+ The HTTP method TRACE is specifically forbidden here in accordance
+ with the HTTP specification.
+ The default is <code>POST</code></p>
+ </td></tr><tr><td align="left" valign="center"><strong><code>port</code></strong></td><td align="left" valign="center">
+ <p>The TCP port number on which this <strong>Connector</strong>
+ will create a server socket and await incoming connections. Your
+ operating system will allow only one server application to listen
+ to a particular port number on a particular IP address.</p>
+ </td></tr><tr><td align="left" valign="center"><code>protocol</code></td><td align="left" valign="center">
+ <p>
+ Sets the protocol to handle incoming traffic.
+ The default value is <code>HTTP/1.1</code> and configures the
+ <code>org.apache.coyote.http11.Http11Protocol</code>. This is the blocking Java connector.<br>
+ If the <code>PATH</code> (Windows) or <code>LD_LIBRARY_PATH</code> (on most unix systems)
+ environment variables contain the Tomcat native library, the APR connector
+ will automatically be configured. Please be advised that the APR connector has different
+ settings for HTTPS than the default Java connector.<br>
+ Other values for this attribute are, but not limited to:<br>
+ <code>org.apache.coyote.http11.Http11Protocol</code> - same as HTTP/1.1<br>
+ <code>org.apache.coyote.http11.Http11NioProtocol</code> - non blocking Java connector<br>
+ <code>org.apache.coyote.http11.Http11AprProtocol</code> - the APR connector.<br>
+ Take a look at our <a href="#Connector Comparison">Connector Comparison</a> chart.
+ The configuration for both Java connectors are identical, both for http and https. <br>
+ For more information on the APR connector and APR specific SSL settings please
+ visit the <a href="../apr.html">APR documentation</a>
+ </p>
+ </td></tr><tr><td align="left" valign="center"><code>proxyName</code></td><td align="left" valign="center">
+ <p>If this <strong>Connector</strong> is being used in a proxy
+ configuration, configure this attribute to specify the server name
+ to be returned for calls to <code>request.getServerName()</code>.
+ See <a href="#Proxy Support">Proxy Support</a> for more
+ information.</p>
+ </td></tr><tr><td align="left" valign="center"><code>proxyPort</code></td><td align="left" valign="center">
+ <p>If this <strong>Connector</strong> is being used in a proxy
+ configuration, configure this attribute to specify the server port
+ to be returned for calls to <code>request.getServerPort()</code>.
+ See <a href="#Proxy Support">Proxy Support</a> for more
+ information.</p>
+ </td></tr><tr><td align="left" valign="center"><code>redirectPort</code></td><td align="left" valign="center">
+ <p>If this <strong>Connector</strong> is supporting non-SSL
+ requests, and a request is received for which a matching
+ <code><security-constraint></code> requires SSL transport,
+ Catalina will automatically redirect the request to the port
+ number specified here.</p>
+ </td></tr><tr><td align="left" valign="center"><code>SSLEnabled</code></td><td align="left" valign="center">
+ <p>
+ Use this attribute to enable SSL traffic on a connector.
+ To turn on SSL handshake/encryption/decryption on a connector
+ set this value to <code>true</code>.
+ The default value is <code>false</code>.
+ When turning this value <code>true</code> you will want to set the
+ <code>scheme</code> and the <code>secure</code> attributes as well
+ to pass the correct <code>request.getScheme()</code> and
+ <code>request.isSecure()</code> values to the servlets
+ See <a href="#SSL Support">SSL Support</a> for more information.
+ </p>
+ </td></tr><tr><td align="left" valign="center"><code>scheme</code></td><td align="left" valign="center">
+ <p>Set this attribute to the name of the protocol you wish to have
+ returned by calls to <code>request.getScheme()</code>. For
+ example, you would set this attribute to "<code>https</code>"
+ for an SSL Connector. The default value is "<code>http</code>".
+ </p>
+ </td></tr><tr><td align="left" valign="center"><code>secure</code></td><td align="left" valign="center">
+ <p>Set this attribute to <code>true</code> if you wish to have
+ calls to <code>request.isSecure()</code> to return <code>true</code>
+ for requests received by this Connector. You would want this on an
+ SSL Connector or a non SSL connector that is receiving data from a
+ SSL accelerator, like a crypto card, a SSL appliance or even a webserver.
+ The default value is <code>false</code>.</p>
+ </td></tr><tr><td align="left" valign="center"><code>URIEncoding</code></td><td align="left" valign="center">
+ <p>This specifies the character encoding used to decode the URI bytes,
+ after %xx decoding the URL. If not specified, ISO-8859-1 will be used.
+ </p>
+ </td></tr><tr><td align="left" valign="center"><code>useBodyEncodingForURI</code></td><td align="left" valign="center">
+ <p>This specifies if the encoding specified in contentType should be used
+ for URI query parameters, instead of using the URIEncoding. This
+ setting is present for compatibility with Tomcat 4.1.x, where the
+ encoding specified in the contentType, or explicitly set using
+ Request.setCharacterEncoding method was also used for the parameters from
+ the URL. The default value is <code>false</code>.
+ </p>
+ </td></tr><tr><td align="left" valign="center"><code>useIPVHosts</code></td><td align="left" valign="center">
+ <p>Set this attribute to <code>true</code> to cause Tomcat to use
+ the IP address that the request was received on to determine the Host
+ to send the request to. The default value is <code>false</code>.</p>
+ </td></tr><tr><td align="left" valign="center"><code>xpoweredBy</code></td><td align="left" valign="center">
+ <p>Set this attribute to <code>true</code> to cause Tomcat to advertise
+ support for the Servlet specification using the header recommended in the
+ specification. The default value is <code>false</code>.</p>
+ </td></tr></table>
+
+ </blockquote></td></tr></table>
+
+ <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Standard Implementation"><!--()--></a><a name="Standard_Implementation"><strong>Standard Implementation</strong></a></font></td></tr><tr><td><blockquote>
+
+ <p>
+ HTTP supports the following additional attributes (in addition to the
+ common attributes listed above):</p>
+
+ <table border="1" cellpadding="5"><tr><th width="15%" bgcolor="#023264"><font color="#ffffff">Attribute</font></th><th width="85%" bgcolor="#023264"><font color="#ffffff">Description</font></th></tr><tr><td align="left" valign="center"><code>acceptCount</code></td><td align="left" valign="center">
+ <p>The maximum queue length for incoming connection requests when
+ all possible request processing threads are in use. Any requests
+ received when the queue is full will be refused. The default
+ value is 100.</p>
+ </td></tr><tr><td align="left" valign="center"><code>address</code></td><td align="left" valign="center">
+ <p>For servers with more than one IP address, this attribute
+ specifies which address will be used for listening on the specified
+ port. By default, this port will be used on all IP addresses
+ associated with the server.</p>
+ </td></tr><tr><td align="left" valign="center"><code>bufferSize</code></td><td align="left" valign="center">
+ <p>The size (in bytes) of the buffer to be provided for input
+ streams created by this connector. By default, buffers of
+ 2048 bytes will be provided.</p>
+ </td></tr><tr><td align="left" valign="center"><code>compressableMimeType</code></td><td align="left" valign="center">
+ <p>The value is a comma separated list of MIME types for which HTTP
+ compression may be used.
+ The default value is <code>text/html,text/xml,text/plain</code>.</p>
+ </td></tr><tr><td align="left" valign="center"><code>compression</code></td><td align="left" valign="center">
+ <p>The <strong>Connector</strong> may use HTTP/1.1 GZIP compression in
+ an attempt to save server bandwidth. The acceptable values for the
+ parameter is "off" (disable compression), "on" (allow compression, which
+ causes text data to be compressed), "force" (forces compression in all
+ cases), or a numerical integer value (which is equivalent to "on", but
+ specifies the minimum amount of data before the output is compressed). If
+ the content-length is not known and compression is set to "on" or more
+ aggressive, the output will also be compressed. If not specified, this
+ attribute is set to "off".</p>
+ <p><em>Note</em>: There is a tradeoff between using compression (saving
+ your bandwidth) and using the sendfile feature (saving your CPU cycles).
+ If the connector supports the sendfile feature, e.g. the NIO connector,
+ using sendfile will take precedence over compression. The symptoms will
+ be that static files greater that 48 Kb will be sent uncompressed.
+ You can turn off sendfile by setting <code>useSendfile</code> attribute
+ of the connector, as documented below, or change the sendfile usage
+ threshold in the configuration of the
+ <a href="../default-servlet.html">DefaultServlet</a> in the default
+ <code>conf/web.xml</code> or in the <code>web.xml</code> of your web
+ application.
+ </p>
+ </td></tr><tr><td align="left" valign="center"><code>connectionLinger</code></td><td align="left" valign="center">
+ <p>The number of seconds during which the sockets used by this
+ <strong>Connector</strong> will linger when they are closed. Setting this
+ attribute to <code>-1</code> will disable connection linger. The default
+ value for the BIO and AJP connectors is 100. The default value for the NIO
+ connection is 25.</p>
+ </td></tr><tr><td align="left" valign="center"><code>connectionTimeout</code></td><td align="left" valign="center">
+ <p>The number of milliseconds this <strong>Connector</strong> will wait,
+ after accepting a connection, for the request URI line to be
+ presented. The default value is 60000 (i.e. 60 seconds).</p>
+ </td></tr><tr><td align="left" valign="center"><code>executor</code></td><td align="left" valign="center">
+ <p>A reference to the name in an <a href="executor.html">Executor</a> element.
+ If this attribute is enabled, and the named executor exists, the connector will
+ use the executor, and all the other thread attributes will be ignored.</p>
+ </td></tr><tr><td align="left" valign="center"><code>keepAliveTimeout</code></td><td align="left" valign="center">
+ <p>The number of milliseconds this <strong>Connector</strong> will wait for
+ another HTTP request before closing the connection.
+ The default value is to use the value that has been set for the
+ connectionTimeout attribute.</p>
+ </td></tr><tr><td align="left" valign="center"><code>disableUploadTimeout</code></td><td align="left" valign="center">
+ <p>This flag allows the servlet container to use a different, longer
+ connection timeout while a servlet is being executed, which in the end
+ allows either the servlet a longer amount of time to complete its
+ execution, or a longer timeout during data upload. If not specified,
+ this attribute is set to "true".</p>
+ </td></tr><tr><td align="left" valign="center"><code>maxHttpHeaderSize</code></td><td align="left" valign="center">
+ <p>The maximum size of the request and response HTTP header, specified
+ in bytes.
+ If not specified, this attribute is set to 8192 (8 KB).</p>
+ </td></tr><tr><td align="left" valign="center"><code>maxKeepAliveRequests</code></td><td align="left" valign="center">
+ <p>The maximum number of HTTP requests which can be pipelined until
+ the connection is closed by the server. Setting this attribute to 1 will
+ disable HTTP/1.0 keep-alive, as well as HTTP/1.1 keep-alive and
+ pipelining. Setting this to -1 will allow an unlimited amount of
+ pipelined or keep-alive HTTP requests.
+ If not specified, this attribute is set to 100.</p>
+ </td></tr><tr><td align="left" valign="center"><code>maxThreads</code></td><td align="left" valign="center">
+ <p>The maximum number of request processing threads to be created
+ by this <strong>Connector</strong>, which therefore determines the
+ maximum number of simultaneous requests that can be handled. If
+ not specified, this attribute is set to 200. If an executor is associated
+ with this connector, this attribute is ignored as the connector will
+ execute tasks using the executor rather than an internal thread pool.</p>
+ </td></tr><tr><td align="left" valign="center"><code>noCompressionUserAgents</code></td><td align="left" valign="center">
+ <p>The value is a comma separated list of regular expressions matching
+ user-agents of HTTP clients for which compression should not be used,
+ because these clients, although they do advertise support for the
+ feature, have a broken implementation.
+ The default value is an empty String (regexp matching disabled).</p>
+ </td></tr><tr><td align="left" valign="center"><strong><code>port</code></strong></td><td align="left" valign="center">
+ <p>The TCP port number on which this <strong>Connector</strong>
+ will create a server socket and await incoming connections. Your
+ operating system will allow only one server application to listen
+ to a particular port number on a particular IP address.</p>
+ </td></tr><tr><td align="left" valign="center"><code>restrictedUserAgents</code></td><td align="left" valign="center">
+ <p>The value is a comma separated list of regular expressions matching
+ user-agents of HTTP clients for which HTTP/1.1 or HTTP/1.0 keep alive
+ should not be used, even if the clients advertise support for these
+ features.
+ The default value is an empty String (regexp matching disabled).</p>
+ </td></tr><tr><td align="left" valign="center"><code>server</code></td><td align="left" valign="center">
+ <p>Overrides the Server header for the http response. If set, the value
+ for this attribute overrides the Tomcat default and any Server header set
+ by a web application. If not set, any value specified by the application
+ is used. If the application does not specify a value then
+ <code>Apache-Coyote/1.1</code> is used. Unless you are paranoid, you won't
+ need this feature.
+ </p>
+ </td></tr><tr><td align="left" valign="center"><code>socketBuffer</code></td><td align="left" valign="center">
+ <p>The size (in bytes) of the buffer to be provided for socket
+ output buffering. -1 can be specified to disable the use of a buffer.
+ By default, a buffers of 9000 bytes will be used.</p>
+ </td></tr><tr><td align="left" valign="center"><code>tcpNoDelay</code></td><td align="left" valign="center">
+ <p>If set to <code>true</code>, the TCP_NO_DELAY option will be
+ set on the server socket, which improves performance under most
+ circumstances. This is set to <code>true</code> by default.</p>
+ </td></tr><tr><td align="left" valign="center"><code>threadPriority</code></td><td align="left" valign="center">
+ <p>The priority of the request processing threads within the JVM.
+ The default value is <code>5</code> (the value of the
+ <code>java.lang.Thread.NORM_PRIORITY</code> constant). See the JavaDoc
+ for the <code>java.lang.Thread</code> class for more details on what
+ this priority means.
+ </p>
+ </td></tr></table>
+
+ </blockquote></td></tr></table>
+
+ <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Nio Implementation"><!--()--></a><a name="Nio_Implementation"><strong>Nio Implementation</strong></a></font></td></tr><tr><td><blockquote>
+
+ <p>The NIO connector exposes all the low level socket properties that can be used to tune the connector.
+ Most of these attributes are directly linked to the socket implementation in the JDK so you can find out
+ about the actual meaning in the JDK API documentation.<br>
+ <strong>Note:</strong> On some JDK versions, setTrafficClass causes a problem, a work around for this is to add
+ the <code>-Djava.net.preferIPv4Stack=true</code> value to your command line</p>
+
+ <table border="1" cellpadding="5"><tr><th width="15%" bgcolor="#023264"><font color="#ffffff">Attribute</font></th><th width="85%" bgcolor="#023264"><font color="#ffffff">Description</font></th></tr><tr><td align="left" valign="center"><code>useSendfile</code></td><td align="left" valign="center">
+ <p>(bool)Use this attribute to enable or disable sendfile capability.
+ The default value is <code>true</code>
+ </p>
+ </td></tr><tr><td align="left" valign="center"><code>useExecutor</code></td><td align="left" valign="center">
+ <p>(bool)Set to true to use the NIO thread pool executor. The default value is <code>true</code>.
+ If set to false, it uses a thread pool based on a stack for its execution.
+ Generally, using the executor yields a little bit slower performance, but yields a better
+ fairness for processing connections in a high load environment as the traffic gets queued through a
+ FIFO queue. If set to true(default) then the max pool size is the <code>maxThreads</code> attribute
+ and the core pool size is the <code>minSpareThreads</code>.
+ This value is ignored if the <code>executor</code> attribute is present and points to a valid shared thread pool.
+ </p>
+ </td></tr><tr><td align="left" valign="center"><code>executor</code></td><td align="left" valign="center">
+ <p>A reference to the name in an <a href="executor.html">Executor</a> element.
+ If this attribute is enabled, and the named executor exists, the connector will
+ use the executor, and all the other thread attributes will be ignored.</p>
+ </td></tr><tr><td align="left" valign="center"><code>acceptorThreadCount</code></td><td align="left" valign="center">
+ <p>(int)The number of threads to be used to accept connections. Increase this value on a multi CPU machine,
+ although you would never really need more than <code>2</code>. Also, with a lot of non keep alive connections,
+ you might want to increase this value as well. Default value is <code>1</code>.</p>
+ </td></tr><tr><td align="left" valign="center"><code>pollerThreadCount</code></td><td align="left" valign="center">
+ <p>(int)The number of threads to be used to run for the polling events.
+ Default value is <code>1</code> per processor. Can't see a reason to go
+ above that. But experiment and find your own results.</p>
+ </td></tr><tr><td align="left" valign="center"><code>pollerThreadPriority</code></td><td align="left" valign="center">
+ <p>(int)The priority of the poller threads.
+ The default value is <code>5</code> (the value of the
+ <code>java.lang.Thread.NORM_PRIORITY</code> constant). See the JavaDoc
+ for the <code>java.lang.Thread</code> class for more details on what
+ this priority means.
+ </p>
+ </td></tr><tr><td align="left" valign="center"><code>acceptorThreadPriority</code></td><td align="left" valign="center">
+ <p>(int)The priority of the acceptor threads. The threads used to accept new connections.
+ The default value is <code>5</code> (the value of the
+ <code>java.lang.Thread.NORM_PRIORITY</code> constant). See the JavaDoc
+ for the <code>java.lang.Thread</code> class for more details on what
+ this priority means.
+ </p>
+ </td></tr><tr><td align="left" valign="center"><code>selectorTimeout</code></td><td align="left" valign="center">
+ <p>(int)The time in milliseconds to timeout on a select() for the poller.
+ This value is important, since connection clean up is done on the same thread, so do not set this
+ value to an extremely high one. The default value is <code>1000</code> milliseconds.</p>
+ </td></tr><tr><td align="left" valign="center"><code>useComet</code></td><td align="left" valign="center">
+ <p>(bool)Whether to allow comet servlets or not, Default value is <code>true</code>.</p>
+ </td></tr><tr><td align="left" valign="center"><code>processorCache</code></td><td align="left" valign="center">
+ <p>(int)The protocol handler caches Http11NioProcessor objects to speed up performance.
+ This setting dictates how many of these objects get cached.
+ <code>-1</code> means unlimited, default is <code>200</code>. Set this value somewhere close to your maxThreads value.
+ </p>
+ </td></tr><tr><td align="left" valign="center"><code>maxKeepAliveRequests</code></td><td align="left" valign="center">
+ <p>The maximum number of HTTP requests which can be pipelined until
+ the connection is closed by the server. Setting this attribute to 1 will
+ disable HTTP/1.0 keep-alive, as well as HTTP/1.1 keep-alive and
+ pipelining. Setting this to -1 will allow an unlimited amount of
+ pipelined or keep-alive HTTP requests.
+ If not specified, this attribute is set to 100.</p>
+ </td></tr><tr><td align="left" valign="center"><code>socket.directBuffer</code></td><td align="left" valign="center">
+ <p>(bool)Boolean value, whether to use direct ByteBuffers or java mapped ByteBuffers. Default is <code>false</code>
+ <br>When you are using direct buffers, make sure you allocate the appropriate amount of memory for the
+ direct memory space. On Sun's JDK that would be something like <code>-XX:MaxDirectMemorySize=256m</code></p>
+ </td></tr><tr><td align="left" valign="center"><code>socket.rxBufSize</code></td><td align="left" valign="center">
+ <p>(int)The socket receive buffer (SO_RCVBUF) size in bytes. Default value is <code>25188</code></p>
+ </td></tr><tr><td align="left" valign="center"><code>socket.txBufSize</code></td><td align="left" valign="center">
+ <p>(int)The socket send buffer (SO_SNDBUF) size in bytes. Default value is <code>43800</code></p>
+ </td></tr><tr><td align="left" valign="center"><code>socket.appReadBufSize</code></td><td align="left" valign="center">
+ <p>(int)Each connection that is opened up in Tomcat get associated with a read and a write ByteBuffer
+ This attribute controls the size of these buffers. By default this read buffer is sized at <code>8192</code> bytes.
+ For lower concurrency, you can increase this to buffer more data.
+ For an extreme amount of keep alive connections, decrease this number or increase your heap size.</p>
+ </td></tr><tr><td align="left" valign="center"><code>socket.appWriteBufSize</code></td><td align="left" valign="center">
+ <p>(int)Each connection that is opened up in Tomcat get associated with a read and a write ByteBuffer
+ This attribute controls the size of these buffers. By default this write buffer is sized at <code>8192</code> bytes.
+ For low concurrency you can increase this to buffer more response data.
+ For an extreme amount of keep alive connections, decrease this number or increase your heap size.
+ <br>
+ The default value here is pretty low, you should up it if you are not dealing with tens of thousands
+ concurrent connections.</p>
+ </td></tr><tr><td align="left" valign="center"><code>socket.bufferPool</code></td><td align="left" valign="center">
+ <p>(int)The Nio connector uses a class called NioChannel that holds elements linked to a socket.
+ To reduce garbage collection, the Nio connector caches these channel objects.
+ This value specifies the size of this cache.
+ The default value is <code>500</code>, and represents that the cache will hold 500 NioChannel objects.
+ Other values are <code>-1</code>. unlimited cache, and <code>0</code>, no cache.</p>
+ </td></tr><tr><td align="left" valign="center"><code>socket.bufferPoolSize</code></td><td align="left" valign="center">
+ <p>(int)The NioChannel pool can also be size based, not used object based. The size is calculated as follows:<br>
+ NioChannel <code>buffer size = read buffer size + write buffer size</code><br>
+ SecureNioChannel <code>buffer size = application read buffer size + application write buffer size + network read buffer size + network write buffer size</code><br>
+ The value is in bytes, the default value is <code>1024*1024*100</code> (100MB)
+ </p>
+ </td></tr><tr><td align="left" valign="center"><code>socket.processorCache</code></td><td align="left" valign="center">
+ <p>(int)Tomcat will cache SocketProcessor objects to reduce garbage collection.
+ The integer value specifies how many objects to keep in the cache at most.
+ The default is <code>500</code>.
+ Other values are <code>-1</code>. unlimited cache, and <code>0</code>, no cache.</p>
+ </td></tr><tr><td align="left" valign="center"><code>socket.keyCache</code></td><td align="left" valign="center">
+ <p>(int)Tomcat will cache KeyAttachment objects to reduce garbage collection.
+ The integer value specifies how many objects to keep in the cache at most.
+ The default is <code>500</code>.
+ Other values are <code>-1</code>. unlimited cache, and <code>0</code>, no cache.</p>
+ </td></tr><tr><td align="left" valign="center"><code>socket.eventCache</code></td><td align="left" valign="center">
+ <p>(int)Tomcat will cache PollerEvent objects to reduce garbage collection.
+ The integer value specifies how many objects to keep in the cache at most.
+ The default is <code>500</code>.
+ Other values are <code>-1</code>. unlimited cache, and <code>0</code>, no cache.</p>
+ </td></tr><tr><td align="left" valign="center"><code>socket.tcpNoDelay</code></td><td align="left" valign="center">
+ <p>(bool)same as the standard setting <code>tcpNoDelay</code>. Default value is <code>false</code></p>
+ </td></tr><tr><td align="left" valign="center"><code>socket.soKeepAlive</code></td><td align="left" valign="center">
+ <p>(bool)Boolean value for the socket's keep alive setting (SO_KEEPALIVE). Default is <code>false</code>. </p>
+ </td></tr><tr><td align="left" valign="center"><code>socket.ooBInline</code></td><td align="left" valign="center">
+ <p>(bool)Boolean value for the socket OOBINLINE setting. Default value is <code>true</code></p>
+ </td></tr><tr><td align="left" valign="center"><code>socket.soReuseAddress</code></td><td align="left" valign="center">
+ <p>(bool)Boolean value for the sockets reuse address option (SO_REUSEADDR). Default value is <code>true</code></p>
+ </td></tr><tr><td align="left" valign="center"><code>socket.soLingerOn</code></td><td align="left" valign="center">
+ <p>(bool)Boolean value for the sockets so linger option (SO_LINGER). Default value is <code>true</code>.
+ This option is paired with the <code>soLingerTime</code> value.</p>
+ </td></tr><tr><td align="left" valign="center"><code>socket.soLingerTime</code></td><td align="left" valign="center">
+ <p>(bool)Value in seconds for the sockets so linger option (SO_LINGER). Default value is <code>25</code> seconds.
+ This option is paired with the soLinger value.</p>
+ </td></tr><tr><td align="left" valign="center"><code>socket.soTimeout</code></td><td align="left" valign="center">
+ <p>(int)Value in milliseconds for the sockets read timeout (SO_TIMEOUT). Default value is <code>5000</code> milliseconds.</p>
+ </td></tr><tr><td align="left" valign="center"><code>socket.soTrafficClass</code></td><td align="left" valign="center">
+ <p>(byte)Value between <code>0</code> and <code>255</code> for the traffic class on the socket, <code>0x04 | 0x08 | 0x010</code></p>
+ </td></tr><tr><td align="left" valign="center"><code>socket.performanceConnectionTime</code></td><td align="left" valign="center">
+ <p>(int)The first value for the performance settings. Default is <code>1</code>, see <a href="http://docs.oracle.com/javase/1.5.0/docs/api/java/net/Socket.html#setPerformancePreferences(int,%20int,%20int)">Socket Performance Options</a></p>
+ </td></tr><tr><td align="left" valign="center"><code>socket.performanceLatency</code></td><td align="left" valign="center">
+ <p>(int)The second value for the performance settings. Default is <code>0</code>, see <a href="http://docs.oracle.com/javase/1.5.0/docs/api/java/net/Socket.html#setPerformancePreferences(int,%20int,%20int)">Socket Performance Options</a></p>
+ </td></tr><tr><td align="left" valign="center"><code>socket.performanceBandwidth</code></td><td align="left" valign="center">
+ <p>(int)The third value for the performance settings. Default is <code>1</code>, see <a href="http://docs.oracle.com/javase/1.5.0/docs/api/java/net/Socket.html#setPerformancePreferences(int,%20int,%20int)">Socket Performance Options</a></p>
+ </td></tr><tr><td align="left" valign="center"><code>selectorPool.maxSelectors</code></td><td align="left" valign="center">
+ <p>(int)The max selectors to be used in the pool, to reduce selector contention.
+ Use this option when the command line <code>org.apache.tomcat.util.net.NioSelectorShared</code> value is set to false.
+ Default value is <code>200</code>.</p>
+ </td></tr><tr><td align="left" valign="center"><code>selectorPool.maxSpareSelectors</code></td><td align="left" valign="center">
+ <p>(int)The max spare selectors to be used in the pool, to reduce selector contention.
+ When a selector is returned to the pool, the system can decide to keep it or let it be GC:ed.
+ Use this option when the command line <code>org.apache.tomcat.util.net.NioSelectorShared</code> value is set to false.
+ Default value is <code>-1</code> (unlimited)</p>
+ </td></tr><tr><td align="left" valign="center"><code>command-line-options</code></td><td align="left" valign="center">
+ <p>The following command line options are available for the NIO connector:<br>
+ <code>-Dorg.apache.tomcat.util.net.NioSelectorShared=true|false</code>
+ - default is <code>true</code>. Set this value to <code>false</code> if you wish to
+ use a selector for each thread. When you set it to <code>false</code>, you can
+ control the size of the pool of selectors by using the
+ <strong>selectorPool.maxSelectors</strong> attribute</p>
+ </td></tr><tr><td align="left" valign="center"><code>oomParachute</code></td><td align="left" valign="center">
+ <p>(int)The NIO connector implements an OutOfMemoryError strategy called parachute.
+ It holds a chunk of data as a byte array. In case of an OOM,
+ this chunk of data is released and the error is reported. This will give the VM enough room
+ to clean up. The <code>oomParachute</code> represent the size in bytes of the parachute(the byte array).
+ The default value is <code>1024*1024</code>(1MB).
+ Please note, this only works for OOM errors regarding the Java Heap space, and there is absolutely no
+ guarantee that you will be able to recover at all.
+ If you have an OOM outside of the Java Heap, then this parachute trick will not help.
+ </p>
+ </td></tr><tr><td align="left" valign="center"><code>socket.unlockTimeout</code></td><td align="left" valign="center">
+ <p>(int) The timeout for a socket unlock. When a connector is stopped, it will try to release the acceptor thread by opening a connector to itself.
+ The default value is <code>250</code> and the value is in milliseconds</p>
+ </td></tr></table>
+ </blockquote></td></tr></table>
+
+</blockquote></td></tr></table><table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Nested Components"><!--()--></a><a name="Nested_Components"><strong>Nested Components</strong></a></font></td></tr><tr><td><blockquote>
+
+ <p>None at this time.</p>
+
+</blockquote></td></tr></table><table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Special Features"><!--()--></a><a name="Special_Features"><strong>Special Features</strong></a></font></td></tr><tr><td><blockquote>
+
+
+ <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="HTTP/1.1 and HTTP/1.0 Support"><!--()--></a><a name="HTTP/1.1_and_HTTP/1.0_Support"><strong>HTTP/1.1 and HTTP/1.0 Support</strong></a></font></td></tr><tr><td><blockquote>
+
+ <p>This <strong>Connector</strong> supports all of the required features
+ of the HTTP/1.1 protocol, as described in RFC 2616, including persistent
+ connections, pipelining, expectations and chunked encoding. If the client
+ (typically a browser) supports only HTTP/1.0, the
+ <strong>Connector</strong> will gracefully fall back to supporting this
+ protocol as well. No special configuration is required to enable this
+ support. The <strong>Connector</strong> also supports HTTP/1.0
+ keep-alive.</p>
+
+ <p>RFC 2616 requires that HTTP servers always begin their responses with
+ the highest HTTP version that they claim to support. Therefore, this
+ <strong>Connector</strong> will always return <code>HTTP/1.1</code> at
+ the beginning of its responses.</p>
+
+ </blockquote></td></tr></table>
+
+
+ <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Proxy Support"><!--()--></a><a name="Proxy_Support"><strong>Proxy Support</strong></a></font></td></tr><tr><td><blockquote>
+
+ <p>The <code>proxyName</code> and <code>proxyPort</code> attributes can
+ be used when Tomcat is run behind a proxy server. These attributes
+ modify the values returned to web applications that call the
+ <code>request.getServerName()</code> and <code>request.getServerPort()</code>
+ methods, which are often used to construct absolute URLs for redirects.
+ Without configuring these attributes, the values returned would reflect
+ the server name and port on which the connection from the proxy server
+ was received, rather than the server name and port to whom the client
+ directed the original request.</p>
+
+ <p>For more information, see the
+ <a href="../proxy-howto.html">Proxy Support HOW-TO</a>.</p>
+
+ </blockquote></td></tr></table>
+
+
+
+ <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="SSL Support"><!--()--></a><a name="SSL_Support"><strong>SSL Support</strong></a></font></td></tr><tr><td><blockquote>
+
+ <p>You can enable SSL support for a particular instance of this
+ <strong>Connector</strong> by setting the <code>SSLEnabled</code> attribute to
+ <code>true</code>.</p>
+
+ <p>You will also need to set the <code>scheme</code> and <code>secure</code> attributes
+ to the values <code>https</code> and <code>true</code> respectively,
+ to pass correct information to the servlets.</p>
+
+ <p>In addition, you may need to configure the following
+ attributes:</p>
+
+ <table border="1" cellpadding="5"><tr><th width="15%" bgcolor="#023264"><font color="#ffffff">Attribute</font></th><th width="85%" bgcolor="#023264"><font color="#ffffff">Description</font></th></tr><tr><td align="left" valign="center"><code>algorithm</code></td><td align="left" valign="center">
+ <p>The certificate encoding algorithm to be used. This defaults to
+ <code>KeyManagerFactory.getDefaultAlgorithm()</code> which returns
+ <code>SunX509</code> for Sun JVMs. IBM JVMs return
+ <code>IbmX509</code>. For other vendors, consult the JVM
+ documentation for the default value.</p>
+ </td></tr><tr><td align="left" valign="center"><code>clientAuth</code></td><td align="left" valign="center">
+ <p>Set to <code>true</code> if you want the SSL stack to require a
+ valid certificate chain from the client before accepting a connection.
+ Set to <code>want</code> if you want the SSL stack to request a client
+ Certificate, but not fail if one isn't presented. A <code>false</code>
+ value (which is the default) will not require a certificate chain
+ unless the client requests a resource protected by a security
+ constraint that uses <code>CLIENT-CERT</code> authentication. See the
+ <a href="../ssl-howto.html">SSL HowTo</a> for an example.</p>
+ </td></tr><tr><td align="left" valign="center"><code>clientCertProvider</code></td><td align="left" valign="center">
+ <p>When client certificate information is presented in a form other than
+ instances of <code>java.security.cert.X509Certificate</code> 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 <a href="ajp.html">AJP connectors</a>, the HTTP APR connector and
+ with the <a href="valve.html#SSL_Authenticator_Valve">
+ org.apache.catalina.valves.SSLValve</a>. If not specified, the default
+ provider will be used.</p>
+ </td></tr><tr><td align="left" valign="center"><code>keystoreFile</code></td><td align="left" valign="center">
+ <p>The pathname of the keystore file where you have stored the
+ server certificate to be loaded. By default, the pathname is
+ the file "<code>.keystore</code>" in the operating system home
+ directory of the user that is running Tomcat. If your
+ <code>keystoreType</code> doesn't need a file use <code>""</code>
+ (empty string) for this parameter.</p>
+ </td></tr><tr><td align="left" valign="center"><code>keystorePass</code></td><td align="left" valign="center">
+ <p>The password used to access the server certificate from the
+ specified keystore file. The default value is "<code>changeit</code>".
+ </p>
+ </td></tr><tr><td align="left" valign="center"><code>keystoreType</code></td><td align="left" valign="center">
+ <p>The type of keystore file to be used for the server certificate.
+ If not specified, the default value is "<code>JKS</code>".</p>
+ </td></tr><tr><td align="left" valign="center"><code>keystoreProvider</code></td><td align="left" valign="center">
+ <p>The name of the keystore provider to be used for the server
+ certificate. If not specified, the list of registered providers is
+ traversed in preference order and the first provider that supports the
+ <code>keystoreType</code> is used.
+ </p>
+ </td></tr><tr><td align="left" valign="center"><code>sslProtocol</code></td><td align="left" valign="center">
+ <p>The the SSL protocol(s) to use (a single value may enable multiple
+ protocols - see the JVM documentation for details). If not specified, the
+ default is <code>TLS</code>. The permitted values may be obtained from the
+ JVM documentation for the allowed values for algorithm when creating an
+ <code>SSLContext</code> instance e.g.
+ <a href="http://docs.oracle.com/javase/6/docs/technotes/guides/security/StandardNames.html#SSLContext">
+ Oracle Java 6</a> and
+ <a href="http://docs.oracle.com/javase/7/docs/technotes/guides/security/StandardNames.html#SSLContext">
+ Oracle Java 7</a>. Note: There is overlap between this attribute and
+ <code>sslEnabledProtocols</code>.</p>
+ </td></tr><tr><td align="left" valign="center"><code>ciphers</code></td><td align="left" valign="center">
+ <p>The comma separated list of encryption ciphers that this socket is
+ allowed to use. By default, the default ciphers for the JVM will be used.
+ Note that this usually means that the weak export grade ciphers will be
+ included in the list of available ciphers. The ciphers are specified using
+ the JSSE cipher naming convention.</p>
+ </td></tr><tr><td align="left" valign="center"><code>keyAlias</code></td><td align="left" valign="center">
+ <p>The alias used to for the server certificate in the keystore. If not
+ specified the first key read in the keystore will be used.</p>
+ </td></tr><tr><td align="left" valign="center"><code>trustManagerClassName</code></td><td align="left" valign="center">
+ <p>The name of a custom trust manager class to use to validate client
+ certificates. The class must have a zero argument constructor and must
+ also implement <code>javax.net.ssl.X509TrustManager</code>. If this
+ attribute is set, the trust store attributes may be ignored.
+ </p>
+ </td></tr><tr><td align="left" valign="center"><code>truststoreFile</code></td><td align="left" valign="center">
+ <p>The trust store file to use to validate client certificates. The
+ default is the value of the <code>javax.net.ssl.trustStore</code> system
+ property. If neither this attribute nor the default system property is
+ set, no trust store will be configured.</p>
+ </td></tr><tr><td align="left" valign="center"><code>truststorePass</code></td><td align="left" valign="center">
+ <p>The password to access the trust store. The default is the value of the
+ <code>javax.net.ssl.trustStorePassword</code> system property. If that
+ property is null, the value of <code>keystorePass</code> is used as the
+ default. If an invalid trust store password is specified, a warning will
+ be logged and an attempt will be made to access the trust store without a
+ password which will skip validation of the trust store contents. If the
+ trust store password is defined as <code>""</code> then no
+ password will be used to access the store which will also skip validation
+ of the trust store contents.</p>
+ </td></tr><tr><td align="left" valign="center"><code>truststoreType</code></td><td align="left" valign="center">
+ <p>The type of key store used for the trust store. The default is the
+ value of the <code>javax.net.ssl.trustStoreType</code> system property. If
+ that property is null, the value of <code>keystoreType</code> is used as
+ the default.</p>
+ </td></tr><tr><td align="left" valign="center"><code>truststoreProvider</code></td><td align="left" valign="center">
+ <p>The name of the truststore provider to be used for the server
+ certificate. The default is the value of the
+ <code>javax.net.ssl.trustStoreProvider</code> system property. If
+ that property is null, the value of <code>keystoreProvider</code> is used
+ as the default. If neither this attribute, the default system property nor
+ <code>keystoreProvider</code>is set, the list of registered providers is
+ traversed in preference order and the first provider that supports the
+ <code>truststoreType</code> is used.
+ </p>
+ </td></tr><tr><td align="left" valign="center"><code>sessionCacheSize</code></td><td align="left" valign="center">
+ <p>The number of SSL sessions to maintain in the session cache. Use 0 to
+ specify an unlimited cache size. If not specified, a default of 0 is
+ used.</p>
+ </td></tr><tr><td align="left" valign="center"><code>sessionTimeout</code></td><td align="left" valign="center">
+ <p>The time, in seconds, after the creation of an SSL session that it will
+ timeout. Use 0 to specify an unlimited timeout. If not specified, a
+ default of 86400 (24 hours) is used.</p>
+ </td></tr><tr><td align="left" valign="center"><code>sslEnabledProtocols</code></td><td align="left" valign="center">
+ <p>The comma separated list of SSL protocols to support for HTTPS
+ connections. If specified, only the protocols that are listed and
+ supported by the SSL implementation will be enabled. If not specified,
+ the JVM default is used. The permitted values may be obtained from the
+ JVM documentation for the allowed values for
+ <code>SSLSocket.setEnabledProtocols()</code> e.g.
+ <a href="http://docs.oracle.com/javase/6/docs/technotes/guides/security/StandardNames.html#jssenames">
+ Oracle Java 6</a> and
+ <a href="http://docs.oracle.com/javase/7/docs/technotes/guides/security/StandardNames.html#jssenames">
+ Oracle Java 7</a>. Note: There is overlap between this attribute and
+ <code>sslProtocol</code>.</p>
+ </td></tr><tr><td align="left" valign="center"><code>crlFile</code></td><td align="left" valign="center">
+ <p>The certificate revocation list file to use to validate client
+ certificates.</p>
+ </td></tr><tr><td align="left" valign="center"><code>allowUnsafeLegacyRenegotiation</code></td><td align="left" valign="center">
+ <p>Is unsafe legacy TLS renegotiation allowed which is likely to expose
+ users to CVE-2009-3555, a man-in-the-middle vulnerability in the TLS
+ protocol that allows an attacker to inject arbitrary data into the user's
+ request. If not specified, a default of <code>false</code> is used. This
+ attribute only has an effect if the JVM does not support RFC 5746 as
+ indicated by the presence of the pseudo-ciphersuite
+ TLS_EMPTY_RENEGOTIATION_INFO_SCSV. This is available JRE/JDK 6 update 22
+ onwards. Where RFC 5746 is supported the renegotiation - including support
+ for unsafe legacy renegotiation - is controlled by the JVM configuration.
+ </p>
+ </td></tr></table>
+
+ <p>For more information, see the
+ <a href="../ssl-howto.html">SSL Configuration HOW-TO</a>.</p>
+
+ </blockquote></td></tr></table>
+ <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Connector Comparison"><!--()--></a><a name="Connector_Comparison"><strong>Connector Comparison</strong></a></font></td></tr><tr><td><blockquote>
+
+ <p>Below is a small chart that shows how the connectors differentiate.</p>
+ <div align="left"><table cellspacing="4" cellpadding="0" border="0"><tr><td bgcolor="#023264" width="1" height="1"><img src="../images/void.gif" alt="" width="1" height="1" vspace="0" hspace="0" border="0"></td><td bgcolor="#023264" height="1"><img src="../images/void.gif" alt="" width="1" height="1" vspace="0" hspace="0" border="0"></td><td bgcolor="#023264" width="1" height="1"><img src="../images/void.gif" alt="" width="1" height="1" vspace="0" hspace="0" border="0"></td></tr><tr><td bgcolor="#023264" width="1"><img src="../images/void.gif" alt="" width="1" height="1" vspace="0" hspace="0" border="0"></td><td bgcolor="#ffffff" height="1"><pre>
+ Java Blocking Connector Java Nio Blocking Connector APR Connector
+ Classname Http11Protocol Http11NioProtocol Http11AprProtocol
+ Tomcat Version 3.x 4.x 5.x 6.x 6.x 5.5.x 6.x
+ Support Polling NO YES YES
+ Polling Size N/A Unlimited - Restricted by mem Unlimited - Configurable
+ Read HTTP Request Blocking Non Blocking Blocking
+ Read HTTP Body Blocking Sim Blocking Blocking
+ Write HTTP Response Blocking Sim Blocking Blocking
+ SSL Support Java SSL Java SSL OpenSSL
+ SSL Handshake Blocking Non blocking Blocking
+ Max Connections maxThreads See polling size See polling size
+
+
+ </pre></td><td bgcolor="#023264" width="1"><img src="../images/void.gif" alt="" width="1" height="1" vspace="0" hspace="0" border="0"></td></tr><tr><td bgcolor="#023264" width="1" height="1"><img src="../images/void.gif" alt="" width="1" height="1" vspace="0" hspace="0" border="0"></td><td bgcolor="#023264" height="1"><img src="../images/void.gif" alt="" width="1" height="1" vspace="0" hspace="0" border="0"></td><td bgcolor="#023264" width="1" height="1"><img src="../images/void.gif" alt="" width="1" height="1" vspace="0" hspace="0" border="0"></td></tr></table></div>
+
+ </blockquote></td></tr></table>
+</blockquote></td></tr></table></td></tr><!--FOOTER SEPARATOR--><tr><td colspan="2"><hr noshade="noshade" size="1"></td></tr><!--PAGE FOOTER--><tr><td colspan="2"><div align="center"><font color="#525D76" size="-1"><em>
+ Copyright © 1999-2014, Apache Software Foundation
+ </em></font></div></td></tr></table></body></html>
\ No newline at end of file
diff --git a/tomcat-uid/webapps/docs/config/index.html b/tomcat-uid/webapps/docs/config/index.html
new file mode 100644
index 0000000..ab6576e
--- /dev/null
+++ b/tomcat-uid/webapps/docs/config/index.html
@@ -0,0 +1,67 @@
+<html><head><META http-equiv="Content-Type" content="text/html; charset=iso-8859-1"><title>Apache Tomcat Configuration Reference (6.0.39) - Overview</title><meta name="author" content="Craig R. McClanahan"><style type="text/css" media="print">
+ .noPrint {display: none;}
+ td#mainBody {width: 100%;}
+ </style></head><body bgcolor="#ffffff" text="#000000" link="#525D76" alink="#525D76" vlink="#525D76"><table border="0" width="100%" cellspacing="0"><!--PAGE HEADER--><tr><td><!--PROJECT LOGO--><a href="http://tomcat.apache.org/"><img src="../images/tomcat.gif" align="right" alt="
+ The Apache Tomcat Servlet/JSP Container
+ " border="0"></a></td><td><h1><font face="arial,helvetica,sanserif">Apache Tomcat 6.0</font></h1><font face="arial,helvetica,sanserif">Version 6.0.39, Jan 27 2014</font></td><td><!--APACHE LOGO--><a href="http://www.apache.org/"><img src="../images/asf-logo.gif" align="right" alt="Apache Logo" border="0"></a></td></tr></table><table border="0" width="100%" cellspacing="4"><!--HEADER SEPARATOR--><tr><td colspan="2"><hr noshade="noshade" size="1"></td></tr><tr><!--LEFT SIDE NAVIGATION--><td width="20%" valign="top" nowrap="nowrap" class="noPrint"><p><strong>Links</strong></p><ul><li><a href="../index.html">Docs Home</a></li><li><a href="index.html">Config Ref. Home</a></li></ul><p><strong>Top Level Elements</strong></p><ul><li><a href="server.html">Server</a></li><li><a href="service.html">Service</a></li></ul><p><strong>Executors</strong></p><ul><li><a href="executor.html">Executor</a></li></ul><p><strong>Connectors</strong></p><ul><li><a href="http.html">HTTP</a></li><li><a href="ajp.html">AJP</a></li></ul><p><strong>Containers</strong></p><ul><li><a href="context.html">Context</a></li><li><a href="engine.html">Engine</a></li><li><a href="host.html">Host</a></li><li><a href="cluster.html">Cluster</a></li></ul><p><strong>Nested Components</strong></p><ul><li><a href="globalresources.html">Global Resources</a></li><li><a href="listeners.html">Listeners</a></li><li><a href="loader.html">Loader</a></li><li><a href="manager.html">Manager</a></li><li><a href="realm.html">Realm</a></li><li><a href="resources.html">Resources</a></li><li><a href="valve.html">Valve</a></li></ul><p><strong>Cluster Elements</strong></p><ul><li><a href="cluster.html">Cluster</a></li><li><a href="cluster-manager.html">Manager</a></li><li><a href="cluster-channel.html">Channel</a></li><li><a href="cluster-membership.html">Channel/Membership</a></li><li><a href="cluster-sender.html">Channel/Sender</a></li><li><a href="cluster-receiver.html">Channel/Receiver</a></li><li><a href="cluster-interceptor.html">Channel/Interceptor</a></li><li><a href="cluster-valve.html">Valve</a></li><li><a href="cluster-deployer.html">Deployer</a></li><li><a href="cluster-listener.html">ClusterListener</a></li></ul><p><strong>Other</strong></p><ul><li><a href="filter.html">Filter</a></li><li><a href="systemprops.html">System properties</a></li></ul></td><!--RIGHT SIDE MAIN BODY--><td width="80%" valign="top" align="left" id="mainBody"><h1>Apache Tomcat Configuration Reference</h1><h2>Overview</h2><table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Overview"><strong>Overview</strong></a></font></td></tr><tr><td><blockquote>
+
+<p>This manual contains reference information about all of the configuration
+directives that can be included in a <code>conf/server.xml</code> file to
+configure the behavior of the Tomcat 6 Servlet/JSP container. It does not
+attempt to describe which configuration directives should be used to perform
+specific tasks - for that, see the various <em>HOW-TO</em> documents on the
+main index page.</p>
+
+<p>Tomcat configuration files are formatted as schemaless XML; elements and
+attributes are case-sensitive. Apache Ant-style variable substitution
+is supported; a system property with the name <code>propname</code> may be
+used in a configuration file using the syntax <code>${propname}</code>. All
+system properties are available including those set using the <code>-D</code>
+syntax, those automatically made available by the JVM and those configured in
+the <code>$CATALINA_BASE/conf/catalina.properties</code> file.
+</p>
+
+<p>The configuration element descriptions are organized into the following
+major categories:</p>
+<ul>
+<li><strong>Top Level Elements</strong> - <code><Server></code> is the
+ root element of the entire configuration file, while
+ <code><Service></code> represents a group of Connectors that is
+ associated with an Engine.</li>
+<li><strong>Connectors</strong> - Represent the interface between external
+ clients sending requests to (and receiving responses from) a particular
+ Service.</li>
+<li><strong>Containers</strong> - Represent components whose function is to
+ process incoming requests, and create the corresponding responses.
+ An Engine handles all requests for a Service, a Host handles all requests
+ for a particular virtual host, and a Context handles all requests for a
+ specific web application.</li>
+<li><strong>Nested Components</strong> - Represent elements that can be
+ nested inside the element for a Container. Some elements can be nested
+ inside any Container, while others can only be nested inside a
+ Context.</li>
+</ul>
+
+<p>For each element, the corresponding documentation follows this general
+outline:</p>
+<ul>
+<li><strong>Introduction</strong> - Overall description of this particular
+ component. There will be a corresponding Java <em>interface</em> (in
+ the <code>org.apache.catalina</code> package) that is implemented by one
+ or more standard implementations.</li>
+<li><strong>Attributes</strong> - The set of attributes that are legal for
+ this element. Generally, this will be subdivided into <em>Common</em>
+ attributes that are supported by all implementations of the corresponding
+ Java interface, and <em>Standard Implementation</em> attributes that are
+ specific to a particular Java class that implements this interface.
+ The names of required attributes are <strong>bolded</strong>.</li>
+<li><strong>Nested Components</strong> - Enumerates which of the <em>Nested
+ Components</em> can be legally nested within this element.</li>
+<li><strong>Special Features</strong> - Describes the configuration of a large
+ variety of special features (specific to each element type) that are
+ supported by the standard implementation of this interface.</li>
+</ul>
+
+</blockquote></td></tr></table></td></tr><!--FOOTER SEPARATOR--><tr><td colspan="2"><hr noshade="noshade" size="1"></td></tr><!--PAGE FOOTER--><tr><td colspan="2"><div align="center"><font color="#525D76" size="-1"><em>
+ Copyright © 1999-2014, Apache Software Foundation
+ </em></font></div></td></tr></table></body></html>
\ No newline at end of file
diff --git a/tomcat-uid/webapps/docs/config/listeners.html b/tomcat-uid/webapps/docs/config/listeners.html
new file mode 100644
index 0000000..d8347e8
--- /dev/null
+++ b/tomcat-uid/webapps/docs/config/listeners.html
@@ -0,0 +1,334 @@
+<html><head><META http-equiv="Content-Type" content="text/html; charset=iso-8859-1"><title>Apache Tomcat Configuration Reference (6.0.39) - The LifeCycle Listener Component</title><style type="text/css" media="print">
+ .noPrint {display: none;}
+ td#mainBody {width: 100%;}
+ </style></head><body bgcolor="#ffffff" text="#000000" link="#525D76" alink="#525D76" vlink="#525D76"><table border="0" width="100%" cellspacing="0"><!--PAGE HEADER--><tr><td><!--PROJECT LOGO--><a href="http://tomcat.apache.org/"><img src="../images/tomcat.gif" align="right" alt="
+ The Apache Tomcat Servlet/JSP Container
+ " border="0"></a></td><td><h1><font face="arial,helvetica,sanserif">Apache Tomcat 6.0</font></h1><font face="arial,helvetica,sanserif">Version 6.0.39, Jan 27 2014</font></td><td><!--APACHE LOGO--><a href="http://www.apache.org/"><img src="../images/asf-logo.gif" align="right" alt="Apache Logo" border="0"></a></td></tr></table><table border="0" width="100%" cellspacing="4"><!--HEADER SEPARATOR--><tr><td colspan="2"><hr noshade="noshade" size="1"></td></tr><tr><!--LEFT SIDE NAVIGATION--><td width="20%" valign="top" nowrap="nowrap" class="noPrint"><p><strong>Links</strong></p><ul><li><a href="../index.html">Docs Home</a></li><li><a href="index.html">Config Ref. Home</a></li></ul><p><strong>Top Level Elements</strong></p><ul><li><a href="server.html">Server</a></li><li><a href="service.html">Service</a></li></ul><p><strong>Executors</strong></p><ul><li><a href="executor.html">Executor</a></li></ul><p><strong>Connectors</strong></p><ul><li><a href="http.html">HTTP</a></li><li><a href="ajp.html">AJP</a></li></ul><p><strong>Containers</strong></p><ul><li><a href="context.html">Context</a></li><li><a href="engine.html">Engine</a></li><li><a href="host.html">Host</a></li><li><a href="cluster.html">Cluster</a></li></ul><p><strong>Nested Components</strong></p><ul><li><a href="globalresources.html">Global Resources</a></li><li><a href="listeners.html">Listeners</a></li><li><a href="loader.html">Loader</a></li><li><a href="manager.html">Manager</a></li><li><a href="realm.html">Realm</a></li><li><a href="resources.html">Resources</a></li><li><a href="valve.html">Valve</a></li></ul><p><strong>Cluster Elements</strong></p><ul><li><a href="cluster.html">Cluster</a></li><li><a href="cluster-manager.html">Manager</a></li><li><a href="cluster-channel.html">Channel</a></li><li><a href="cluster-membership.html">Channel/Membership</a></li><li><a href="cluster-sender.html">Channel/Sender</a></li><li><a href="cluster-receiver.html">Channel/Receiver</a></li><li><a href="cluster-interceptor.html">Channel/Interceptor</a></li><li><a href="cluster-valve.html">Valve</a></li><li><a href="cluster-deployer.html">Deployer</a></li><li><a href="cluster-listener.html">ClusterListener</a></li></ul><p><strong>Other</strong></p><ul><li><a href="filter.html">Filter</a></li><li><a href="systemprops.html">System properties</a></li></ul></td><!--RIGHT SIDE MAIN BODY--><td width="80%" valign="top" align="left" id="mainBody"><h1>Apache Tomcat Configuration Reference</h1><h2>The LifeCycle Listener Component</h2><table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Table of Contents"><!--()--></a><a name="Table_of_Contents"><strong>Table of Contents</strong></a></font></td></tr><tr><td><blockquote>
+<ul><li><a href="#Introduction">Introduction</a></li><li><a href="#Attributes">Attributes</a><ol><li><a href="#Common_Attributes">Common Attributes</a></li></ol></li><li><a href="#Nested_Components">Nested Components</a></li><li><a href="#Standard_Implementation">Standard Implementation</a><ol><li><a href="#APR_Lifecycle_Listener_-_org.apache.catalina.core.AprLifecycleListener">APR Lifecycle Listener - org.apache.catalina.core.AprLifecycleListener</a></li><li><a href="#Jasper_Listener_-_org.apache.catalina.core.JasperListener">Jasper Listener - org.apache.catalina.core.JasperListener</a></li><li><a href="#Server_Lifecycle_Listener_-_org.apache.catalina.mbeans.ServerLifecycleListener">Server Lifecycle Listener - org.apache.catalina.mbeans.ServerLifecycleListener</a></li><li><a href="#Global_Resources_Lifecycle_Listener_-_org.apache.catalina.mbeans.GlobalResourcesLifecycleListener">Global Resources Lifecycle Listener - org.apache.catalina.mbeans.GlobalResourcesLifecycleListener</a></li><li><a href="#JMX_Remote_Lifecycle_Listener_-_org.apache.catalina.mbeans.JmxRemoteLifecycleListener">JMX Remote Lifecycle Listener - org.apache.catalina.mbeans.JmxRemoteLifecycleListener</a></li><li><a href="#JRE_Memory_Leak_Prevention_Listener_-_org.apache.catalina.core.JreMemoryLeakPreventionListener">JRE Memory Leak Prevention Listener - org.apache.catalina.core.JreMemoryLeakPreventionListener</a></li><li><a href="#UserConfig_-_org.apache.catalina.startup.UserConfig">UserConfig - org.apache.catalina.startup.UserConfig</a></li></ol></li></ul>
+</blockquote></td></tr></table><table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Introduction"><strong>Introduction</strong></a></font></td></tr><tr><td><blockquote>
+
+ <p>A <strong>Listener</strong> element defines a component that performs
+ actions when specific events occur, usually Tomcat starting or Tomcat
+ stopping.</p>
+
+ <p>Listeners may be nested inside a <a href="server.html">Server</a>,
+ <a href="engine.html">Engine</a>, <a href="host.html">Host</a> or
+ <a href="context.html">Context</a>. Some Listeners are only intended to be
+ nested inside specific elements. These constraints are noted in the
+ documentation below.</p>
+
+</blockquote></td></tr></table><table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Attributes"><strong>Attributes</strong></a></font></td></tr><tr><td><blockquote>
+
+ <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Common Attributes"><!--()--></a><a name="Common_Attributes"><strong>Common Attributes</strong></a></font></td></tr><tr><td><blockquote>
+
+ <p>All implementations of <strong>Listener</strong>
+ support the following attributes:</p>
+
+ <table border="1" cellpadding="5"><tr><th width="15%" bgcolor="#023264"><font color="#ffffff">Attribute</font></th><th width="85%" bgcolor="#023264"><font color="#ffffff">Description</font></th></tr><tr><td align="left" valign="center"><strong><code>className</code></strong></td><td align="left" valign="center">
+ <p>Java class name of the implementation to use. This class must
+ implement the <code>org.apache.catalina.LifecycleListener</code>
+ interface.</p>
+ </td></tr></table>
+
+ </blockquote></td></tr></table>
+
+</blockquote></td></tr></table><table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Nested Components"><!--()--></a><a name="Nested_Components"><strong>Nested Components</strong></a></font></td></tr><tr><td><blockquote>
+
+ <p>No element may be nested inside a <strong>Listener</strong>.</p>
+
+</blockquote></td></tr></table><table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Standard Implementation"><!--()--></a><a name="Standard_Implementation"><strong>Standard Implementation</strong></a></font></td></tr><tr><td><blockquote>
+
+ <p>Unlike most Catalina components, there are several standard
+ <strong>Listener</strong> implementations available. As a result,
+ the <code>className</code> attribute MUST be used to select the
+ implementation you wish to use.</p>
+
+ <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="APR Lifecycle Listener - org.apache.catalina.core.AprLifecycleListener"><!--()--></a><a name="APR_Lifecycle_Listener_-_org.apache.catalina.core.AprLifecycleListener"><strong>APR Lifecycle Listener - org.apache.catalina.core.AprLifecycleListener</strong></a></font></td></tr><tr><td><blockquote>
+
+ <p>The <strong>APR Lifecycle Listener</strong> checks for the presence of
+ the APR/native library and loads the library if it is present. For more
+ information see the <a href="../apr.html">APR/native guide</a>.</p>
+
+ <p>This listener must only be nested within <a href="server.html">Server</a>
+ elements.</p>
+
+ <p>The following additional attributes are supported by the <strong>APR
+ Lifecycle Listener</strong>:</p>
+
+ <table border="1" cellpadding="5"><tr><th width="15%" bgcolor="#023264"><font color="#ffffff">Attribute</font></th><th width="85%" bgcolor="#023264"><font color="#ffffff">Description</font></th></tr><tr><td align="left" valign="center"><code>SSLEngine</code></td><td align="left" valign="center">
+ <p>Name of the SSLEngine to use. <code>off</code>: do not use SSL,
+ <code>on</code>: use SSL but no specific ENGINE.</p>
+ <p>The default value is <b>on</b>. This initializes the
+ native SSL engine, which must be enabled in the APR/native connector by
+ the use of the <code>SSLEnabled</code> attribute.</p>
+ <p>See the <a href="http://www.openssl.org/">Official OpenSSL website</a>
+ for more details on supported SSL hardware engines and manufacturers.
+ </p>
+ </td></tr><tr><td align="left" valign="center"><code>SSLRandomSeed</code></td><td align="left" valign="center">
+ <p>Entropy source used to seed the SSLEngine's PRNG. The default value
+ is <code>builtin</code>. On development systems, you may want to set
+ this to <code>/dev/urandom</code> to allow quicker start times.</p>
+ </td></tr><tr><td align="left" valign="center"><code>FIPSMode</code></td><td align="left" valign="center">
+ <p>Set to <code>on</code> to instruct OpenSSL to go into FIPS mode.
+ FIPS mode <em>requires you to have a FIPS-capable OpenSSL library which
+ you must build yourself</em>.
+ FIPS mode also requires Tomcat native library version 1.1.23 or later,
+ which <em>must be built against the FIPS-compatible OpenSSL</em> library.
+ If this attribute is "on", <b>SSLEngine</b> must be enabled as well.
+ The default value is <code>off</code>.</p>
+ </td></tr></table>
+
+ </blockquote></td></tr></table>
+
+ <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Jasper Listener - org.apache.catalina.core.JasperListener"><!--()--></a><a name="Jasper_Listener_-_org.apache.catalina.core.JasperListener"><strong>Jasper Listener - org.apache.catalina.core.JasperListener</strong></a></font></td></tr><tr><td><blockquote>
+
+ <p>The <strong>Jasper Listener</strong> initializes the Jasper 2 JSP engine
+ before any web applications that may use it are loaded. For more
+ information on the Jasper 2 JSP engine see the
+ <a href="../jasper-howto.html">Jasper How To</a>.</p>
+
+ <p>This listener must only be nested within <a href="server.html">Server</a>
+ elements.</p>
+
+ <p>No additional attributes are supported by the <strong>Jasper Listener
+ </strong>.</p>
+
+ </blockquote></td></tr></table>
+
+ <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Server Lifecycle Listener - org.apache.catalina.mbeans.ServerLifecycleListener"><!--()--></a><a name="Server_Lifecycle_Listener_-_org.apache.catalina.mbeans.ServerLifecycleListener"><strong>Server Lifecycle Listener - org.apache.catalina.mbeans.ServerLifecycleListener</strong></a></font></td></tr><tr><td><blockquote>
+
+ <p>The <strong>Server Lifecycle Listener</strong> initializes the
+ MBeanServer for the MBeans that may be used to manage Tomcat via JMX.
+ Without this listener, none of the Tomcat MBeans will be available.</p>
+
+ <p>This listener must only be nested within <a href="server.html">Server</a>
+ elements.</p>
+
+ <p>No additional attributes are supported by the <strong>Server Lifecycle
+ Listener</strong>.</p>
+
+ </blockquote></td></tr></table>
+
+ <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Global Resources Lifecycle Listener - org.apache.catalina.mbeans.GlobalResourcesLifecycleListener"><!--()--></a><a name="Global_Resources_Lifecycle_Listener_-_org.apache.catalina.mbeans.GlobalResourcesLifecycleListener"><strong>Global Resources Lifecycle Listener - org.apache.catalina.mbeans.GlobalResourcesLifecycleListener</strong></a></font></td></tr><tr><td><blockquote>
+
+ <p>The <strong>Global Resources Lifecycle Listener</strong> initializes the
+ Global JNDI resources defined in server.xml as part of the <a href="globalresources.html">Global Resources</a> element. Without this
+ listener, none of the Global Resources will be available.</p>
+
+ <p>This listener must only be nested within <a href="server.html">Server</a>
+ elements.</p>
+
+ <p>No additional attributes are supported by the <strong>Global Resources
+ Lifecycle Listener</strong>.</p>
+
+ </blockquote></td></tr></table>
+
+ <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="JMX Remote Lifecycle Listener - org.apache.catalina.mbeans.JmxRemoteLifecycleListener"><!--()--></a><a name="JMX_Remote_Lifecycle_Listener_-_org.apache.catalina.mbeans.JmxRemoteLifecycleListener"><strong>JMX Remote Lifecycle Listener - org.apache.catalina.mbeans.JmxRemoteLifecycleListener</strong></a></font></td></tr><tr><td><blockquote>
+
+ <p>This listener requires <code>catalina-jmx-remote.jar</code> to be placed
+ in <code>$CATALINA_HOME/lib</code>. This jar may be found in the extras
+ directory of the binary download area.</p>
+
+ <p>The <strong>JMX Remote Lifecycle Listener</strong> fixes the ports used by
+ the JMX/RMI Server making things much simpler if you need to connect
+ jconsole or a similar tool to a remote Tomcat instance that is running
+ behind a firewall. Only these ports are configured via the listener. The
+ remainder of the configuration is via the standard system properties for
+ configuring JMX. For further information on configuring JMX see
+ <a href="http://docs.oracle.com/javase/6/docs/technotes/guides/management/agent.html">
+ Monitoring and Management Using JMX</a> included with the Java SDK
+ documentation.</p>
+
+ <p>If this listener was configured in server.xml as:
+<div align="left"><table cellspacing="4" cellpadding="0" border="0"><tr><td bgcolor="#023264" width="1" height="1"><img src="../images/void.gif" alt="" width="1" height="1" vspace="0" hspace="0" border="0"></td><td bgcolor="#023264" height="1"><img src="../images/void.gif" alt="" width="1" height="1" vspace="0" hspace="0" border="0"></td><td bgcolor="#023264" width="1" height="1"><img src="../images/void.gif" alt="" width="1" height="1" vspace="0" hspace="0" border="0"></td></tr><tr><td bgcolor="#023264" width="1"><img src="../images/void.gif" alt="" width="1" height="1" vspace="0" hspace="0" border="0"></td><td bgcolor="#ffffff" height="1"><pre>
+<Listener className="org.apache.catalina.mbeans.JmxRemoteLifecycleListener"
+ rmiRegistryPortPlatform="10001" rmiServerPortPlatform="10002" />
+</pre></td><td bgcolor="#023264" width="1"><img src="../images/void.gif" alt="" width="1" height="1" vspace="0" hspace="0" border="0"></td></tr><tr><td bgcolor="#023264" width="1" height="1"><img src="../images/void.gif" alt="" width="1" height="1" vspace="0" hspace="0" border="0"></td><td bgcolor="#023264" height="1"><img src="../images/void.gif" alt="" width="1" height="1" vspace="0" hspace="0" border="0"></td><td bgcolor="#023264" width="1" height="1"><img src="../images/void.gif" alt="" width="1" height="1" vspace="0" hspace="0" border="0"></td></tr></table></div>
+ with the following system properties set (e.g. in setenv.sh):
+<div align="left"><table cellspacing="4" cellpadding="0" border="0"><tr><td bgcolor="#023264" width="1" height="1"><img src="../images/void.gif" alt="" width="1" height="1" vspace="0" hspace="0" border="0"></td><td bgcolor="#023264" height="1"><img src="../images/void.gif" alt="" width="1" height="1" vspace="0" hspace="0" border="0"></td><td bgcolor="#023264" width="1" height="1"><img src="../images/void.gif" alt="" width="1" height="1" vspace="0" hspace="0" border="0"></td></tr><tr><td bgcolor="#023264" width="1"><img src="../images/void.gif" alt="" width="1" height="1" vspace="0" hspace="0" border="0"></td><td bgcolor="#ffffff" height="1"><pre>
+-Dcom.sun.management.jmxremote.password.file=$CATALINA_BASE/conf/jmxremote.password
+-Dcom.sun.management.jmxremote.access.file=$CATALINA_BASE/conf/jmxremote.access
+-Dcom.sun.management.jmxremote.ssl=false
+</pre></td><td bgcolor="#023264" width="1"><img src="../images/void.gif" alt="" width="1" height="1" vspace="0" hspace="0" border="0"></td></tr><tr><td bgcolor="#023264" width="1" height="1"><img src="../images/void.gif" alt="" width="1" height="1" vspace="0" hspace="0" border="0"></td><td bgcolor="#023264" height="1"><img src="../images/void.gif" alt="" width="1" height="1" vspace="0" hspace="0" border="0"></td><td bgcolor="#023264" width="1" height="1"><img src="../images/void.gif" alt="" width="1" height="1" vspace="0" hspace="0" border="0"></td></tr></table></div>
+ $CATALINA_BASE/conf/jmxremote.password containing:
+<div align="left"><table cellspacing="4" cellpadding="0" border="0"><tr><td bgcolor="#023264" width="1" height="1"><img src="../images/void.gif" alt="" width="1" height="1" vspace="0" hspace="0" border="0"></td><td bgcolor="#023264" height="1"><img src="../images/void.gif" alt="" width="1" height="1" vspace="0" hspace="0" border="0"></td><td bgcolor="#023264" width="1" height="1"><img src="../images/void.gif" alt="" width="1" height="1" vspace="0" hspace="0" border="0"></td></tr><tr><td bgcolor="#023264" width="1"><img src="../images/void.gif" alt="" width="1" height="1" vspace="0" hspace="0" border="0"></td><td bgcolor="#ffffff" height="1"><pre>
+admin letmein
+</pre></td><td bgcolor="#023264" width="1"><img src="../images/void.gif" alt="" width="1" height="1" vspace="0" hspace="0" border="0"></td></tr><tr><td bgcolor="#023264" width="1" height="1"><img src="../images/void.gif" alt="" width="1" height="1" vspace="0" hspace="0" border="0"></td><td bgcolor="#023264" height="1"><img src="../images/void.gif" alt="" width="1" height="1" vspace="0" hspace="0" border="0"></td><td bgcolor="#023264" width="1" height="1"><img src="../images/void.gif" alt="" width="1" height="1" vspace="0" hspace="0" border="0"></td></tr></table></div>
+ $CATALINA_BASE/conf/jmxremote.access containing:
+<div align="left"><table cellspacing="4" cellpadding="0" border="0"><tr><td bgcolor="#023264" width="1" height="1"><img src="../images/void.gif" alt="" width="1" height="1" vspace="0" hspace="0" border="0"></td><td bgcolor="#023264" height="1"><img src="../images/void.gif" alt="" width="1" height="1" vspace="0" hspace="0" border="0"></td><td bgcolor="#023264" width="1" height="1"><img src="../images/void.gif" alt="" width="1" height="1" vspace="0" hspace="0" border="0"></td></tr><tr><td bgcolor="#023264" width="1"><img src="../images/void.gif" alt="" width="1" height="1" vspace="0" hspace="0" border="0"></td><td bgcolor="#ffffff" height="1"><pre>
+admin readwrite
+</pre></td><td bgcolor="#023264" width="1"><img src="../images/void.gif" alt="" width="1" height="1" vspace="0" hspace="0" border="0"></td></tr><tr><td bgcolor="#023264" width="1" height="1"><img src="../images/void.gif" alt="" width="1" height="1" vspace="0" hspace="0" border="0"></td><td bgcolor="#023264" height="1"><img src="../images/void.gif" alt="" width="1" height="1" vspace="0" hspace="0" border="0"></td><td bgcolor="#023264" width="1" height="1"><img src="../images/void.gif" alt="" width="1" height="1" vspace="0" hspace="0" border="0"></td></tr></table></div>
+ then opening ports 10001 (RMI Registry) and 10002 (JMX/RMI Server) in your
+ firewall would enable jconsole to connect to a Tomcat instance running
+ behind a firewall using a connection string of the form:
+<div align="left"><table cellspacing="4" cellpadding="0" border="0"><tr><td bgcolor="#023264" width="1" height="1"><img src="../images/void.gif" alt="" width="1" height="1" vspace="0" hspace="0" border="0"></td><td bgcolor="#023264" height="1"><img src="../images/void.gif" alt="" width="1" height="1" vspace="0" hspace="0" border="0"></td><td bgcolor="#023264" width="1" height="1"><img src="../images/void.gif" alt="" width="1" height="1" vspace="0" hspace="0" border="0"></td></tr><tr><td bgcolor="#023264" width="1"><img src="../images/void.gif" alt="" width="1" height="1" vspace="0" hspace="0" border="0"></td><td bgcolor="#ffffff" height="1"><pre>
+service:jmx:rmi://<hostname>:10002/jndi/rmi://<hostname>:10001/jmxrmi
+</pre></td><td bgcolor="#023264" width="1"><img src="../images/void.gif" alt="" width="1" height="1" vspace="0" hspace="0" border="0"></td></tr><tr><td bgcolor="#023264" width="1" height="1"><img src="../images/void.gif" alt="" width="1" height="1" vspace="0" hspace="0" border="0"></td><td bgcolor="#023264" height="1"><img src="../images/void.gif" alt="" width="1" height="1" vspace="0" hspace="0" border="0"></td><td bgcolor="#023264" width="1" height="1"><img src="../images/void.gif" alt="" width="1" height="1" vspace="0" hspace="0" border="0"></td></tr></table></div>
+ with a user name of <code>admin</code> and a password of
+ <code>letmein</code>.
+ </p>
+
+ <p><strong>Note that the example above does not use SSL. JMX access should
+ be considered equivalent to administrative access and secured accordingly.
+ </strong></p>
+
+ <p>This listener must only be nested within a <a href="server.html">Server</a>
+ element.</p>
+
+ <p>The following additional attributes are supported by the <strong>JMX Remote
+ Lifecycle Listener</strong>:</p>
+
+ <table border="1" cellpadding="5"><tr><th width="15%" bgcolor="#023264"><font color="#ffffff">Attribute</font></th><th width="85%" bgcolor="#023264"><font color="#ffffff">Description</font></th></tr><tr><td align="left" valign="center"><strong><code>rmiRegistryPortPlatform</code></strong></td><td align="left" valign="center">
+ <p>The port to be used by the JMX/RMI registry for the Platform MBeans.
+ The replaces the use of the
+ <code>com.sun.management.jmxremote.port</code> system property that
+ should not be set when using this valve.</p>
+ </td></tr><tr><td align="left" valign="center"><strong><code>rmiServerPortPlatform</code></strong></td><td align="left" valign="center">
+ <p>The port to be used by the Platform JMX/RMI server.</p>
+ </td></tr><tr><td align="left" valign="center"><code>useLocalPorts</code></td><td align="left" valign="center">
+ <p>Should any clients using these ports be forced to use local ports to
+ connect to the the JMX/RMI server. This is useful when tunnelling
+ connections over SSH or similar. Defaults to <code>false</code>.</p>
+ </td></tr></table>
+
+ </blockquote></td></tr></table>
+
+ <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="JRE Memory Leak Prevention Listener - org.apache.catalina.core.JreMemoryLeakPreventionListener"><!--()--></a><a name="JRE_Memory_Leak_Prevention_Listener_-_org.apache.catalina.core.JreMemoryLeakPreventionListener"><strong>JRE Memory Leak Prevention Listener - org.apache.catalina.core.JreMemoryLeakPreventionListener</strong></a></font></td></tr><tr><td><blockquote>
+
+ <p>The <strong>JRE Memory Leak Prevention Listener</strong> provides
+ work-arounds for known places where the Java Runtime environment uses
+ the context class loader to load a singleton as this will cause a memory
+ leak if a web application class loader happens to be the context class
+ loader at the time. The work-around is to initialise these singletons when
+ this listener starts as Tomcat's common class loader is the context class
+ loader at that time. It also provides work-arounds for known issues that
+ can result in locked JAR files.</p>
+
+ <p>This listener must only be nested within <a href="server.html">Server</a>
+ elements.</p>
+
+ <p>The following additional attributes are supported by the <strong>JRE
+ Memory Leak Prevention Listener</strong>:</p>
+
+ <table border="1" cellpadding="5"><tr><th width="15%" bgcolor="#023264"><font color="#ffffff">Attribute</font></th><th width="85%" bgcolor="#023264"><font color="#ffffff">Description</font></th></tr><tr><td align="left" valign="center"><code>appContextProtection</code></td><td align="left" valign="center">
+ <p>Enables protection so that calls to
+ <code>sun.awt.AppContext.getAppContext()</code> triggered by a web
+ application do not result in a memory leak. Note that a call to this
+ method will be triggered as part of the web application stop process so
+ it is strongly recommended that this protection is enabled. The default
+ is <code>true</code>.</p>
+ </td></tr><tr><td align="left" valign="center"><code>AWTThreadProtection</code></td><td align="left" valign="center">
+ <p>Enables protection so that calls to
+ <code>java.awt.Toolkit.getDefaultToolkit()</code> triggered by a web
+ application do not result in a memory leak.
+ Defaults to <code>false</code> because an AWT thread is launched.</p>
+ </td></tr><tr><td align="left" valign="center"><code>classesToInitialize</code></td><td align="left" valign="center">
+ <p>List of comma-separated fully qualified class names to load and initialize
+ during the startup of this Listener. This allows to pre-load classes that are
+ known to provoke classloader leaks if they are loaded during a request
+ processing. Non-JRE classes may be referenced, like
+ <code>oracle.jdbc.driver.OracleTimeoutThreadPerVM</code>.
+ The default value is empty, but specific JRE classes are loaded by other leak
+ protection features managed by other attributes of this Listener.</p>
+ </td></tr><tr><td align="left" valign="center"><code>driverManagerProtection</code></td><td align="left" valign="center">
+ <p>The first use of <code>java.sql.DriverManager</code> will trigger the
+ loading of JDBC Driver in the the current class loader. The web
+ application level memory leak protection can take care of this in most
+ cases but triggering the loading here has fewer side-effects. The
+ default is <code>true</code>.</p>
+ </td></tr><tr><td align="left" valign="center"><code>gcDaemonProtection</code></td><td align="left" valign="center">
+ <p>Enables protection so that calls to
+ <code>sun.misc.GC.requestLatency(long)</code> triggered by a web
+ application do not result in a memory leak. Use of RMI is likely to
+ trigger a call to this method. A side effect of enabling this protection
+ is the creation of a thread named "GC Daemon". The protection uses
+ reflection to access internal Sun classes and may generate errors on
+ startup on non-Sun JVMs. The default is <code>true</code>.</p>
+ </td></tr><tr><td align="left" valign="center"><code>ldapPoolProtection</code></td><td align="left" valign="center">
+ <p>Enables protection so that the PoolCleaner thread started by
+ <code>com.sun.jndi.ldap.LdapPoolManager</code> does not result in a
+ memory leak. The thread is started the first time the
+ <code>LdapPoolManager</code> class is used if the system property
+ <code>com.sun.jndi.ldap.connect.pool.timeout</code> is set to a value
+ greater than 0. Without this protection, if a web application uses this
+ class the PoolCleaner thread will be configured with the thread's
+ context class loader set to the web application class loader which in
+ turn will trigger a memory leak on reload. Defaults to
+ <code>true</code>.</p>
+ </td></tr><tr><td align="left" valign="center"><code>securityLoginConfigurationProtection</code></td><td align="left" valign="center">
+ <p>Enables protection so that usage of the
+ <code>javax.security.auth.login.Configuration</code> class by a web
+ application does not provoke a memory leak. The first access of this
+ class will trigger the initializer that will retain a static reference
+ to the context class loader. The protection loads the class with the
+ system class loader to ensure that the static initializer is not
+ triggered by a web application. Defaults to <code>true</code>.</p>
+ </td></tr><tr><td align="left" valign="center"><code>securityPolicyProtection</code></td><td align="left" valign="center">
+ <p>Enables protection so that usage of the deprecated
+ <code>javax.security.auth.Policy</code> class by a web application does not
+ result in a memory leak. The first access of this class will trigger the
+ static initializer that will retain a static reference to the context
+ class loader. The protection calls the <code>getPolicy()</code> method
+ of this class to ensure that the static initializer is not triggered by
+ a web application. Defaults to <code>true</code>.</p>
+ </td></tr><tr><td align="left" valign="center"><code>tokenPollerProtection</code></td><td align="left" valign="center">
+ <p>Enables protection so that any token poller thread initialized by
+ <code>sun.security.pkcs11.SunPKCS11.initToken()</code> does not
+ result in a memory leak. The thread is started depending on various
+ conditions as part of the initialization of the Java Cryptography
+ Architecture. Without the protection this can happen during Webapp
+ deployment when the MessageDigest for generating session IDs is
+ initialized. As a result the thread has the Webapp class loader as its
+ thread context class loader. Enabling the protection initializes JCA
+ early during Tomcat startup. Defaults to <code>true</code>.</p>
+ </td></tr><tr><td align="left" valign="center"><code>urlCacheProtection</code></td><td align="left" valign="center">
+ <p>Enables protection so that reading resources from JAR files using
+ <code>java.net.URLConnection</code>s does not result in the JAR file
+ being locked. Note that enabling this protection disables caching by
+ default for all resources obtained via
+ <code>java.net.URLConnection</code>s. Caching may be re-enabled on a
+ case by case basis as required. Defaults to <code>true</code>.</p>
+ </td></tr><tr><td align="left" valign="center"><code>xmlParsingProtection</code></td><td align="left" valign="center">
+ <p>Enables protection so that parsing XML files within a web application
+ does not result in a memory leak. Note that memory profilers may not
+ display the GC root associated with this leak making it particularly
+ hard to diagnose. Defaults to <code>true</code>.</p>
+ </td></tr></table>
+
+ </blockquote></td></tr></table>
+
+ <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="UserConfig - org.apache.catalina.startup.UserConfig"><!--()--></a><a name="UserConfig_-_org.apache.catalina.startup.UserConfig"><strong>UserConfig - org.apache.catalina.startup.UserConfig</strong></a></font></td></tr><tr><td><blockquote>
+
+ <p>The <strong>UserConfig</strong> provides feature of User Web Applications.
+ User Web Applications map a request URI starting with a tilde character ("~")
+ and a username to a directory (commonly named public_html) in that user's
+ home directory on the server.</p>
+
+ <p>See the <a href="host.html#User_Web_Applications">User Web Applications</a>
+ special feature on the <strong>Host</strong> element for more information.</p>
+
+ <p>The following additional attributes are supported by the
+ <strong>UserConfig</strong>:</p>
+
+ <table border="1" cellpadding="5"><tr><th width="15%" bgcolor="#023264"><font color="#ffffff">Attribute</font></th><th width="85%" bgcolor="#023264"><font color="#ffffff">Description</font></th></tr><tr><td align="left" valign="center"><code>directoryName</code></td><td align="left" valign="center">
+ <p>The directory name to be searched for within each user home directory.
+ The default is <code>public_html</code>.</p>
+ </td></tr><tr><td align="left" valign="center"><code>userClass</code></td><td align="left" valign="center">
+ <p>The class name of the user database class.
+ There are currently two user database, the
+ <code>org.apache.catalina.startup.PasswdUserDatabase</code> is used on a
+ Unix system that uses the /etc/passwd file to identify valid users.
+ The <code>org.apache.catalina.startup.HomesUserDatabase</code> is used on
+ a server where /etc/passwd is not in use. HomesUserDatabase deploy all
+ directories found in a specified base directory.</p>
+ </td></tr><tr><td align="left" valign="center"><code>homeBase</code></td><td align="left" valign="center">
+ <p>The base directory containing user home directories.This is effective
+ only when <code>org.apache.catalina.startup.HomesUserDatabase</code> is
+ used.</p>
+ </td></tr></table>
+
+ </blockquote></td></tr></table>
+
+</blockquote></td></tr></table></td></tr><!--FOOTER SEPARATOR--><tr><td colspan="2"><hr noshade="noshade" size="1"></td></tr><!--PAGE FOOTER--><tr><td colspan="2"><div align="center"><font color="#525D76" size="-1"><em>
+ Copyright © 1999-2014, Apache Software Foundation
+ </em></font></div></td></tr></table></body></html>
\ No newline at end of file
diff --git a/tomcat-uid/webapps/docs/config/loader.html b/tomcat-uid/webapps/docs/config/loader.html
new file mode 100644
index 0000000..25ec15c
--- /dev/null
+++ b/tomcat-uid/webapps/docs/config/loader.html
@@ -0,0 +1,113 @@
+<html><head><META http-equiv="Content-Type" content="text/html; charset=iso-8859-1"><title>Apache Tomcat Configuration Reference (6.0.39) - The Loader Component</title><meta name="author" content="Craig R. McClanahan"><style type="text/css" media="print">
+ .noPrint {display: none;}
+ td#mainBody {width: 100%;}
+ </style></head><body bgcolor="#ffffff" text="#000000" link="#525D76" alink="#525D76" vlink="#525D76"><table border="0" width="100%" cellspacing="0"><!--PAGE HEADER--><tr><td><!--PROJECT LOGO--><a href="http://tomcat.apache.org/"><img src="../images/tomcat.gif" align="right" alt="
+ The Apache Tomcat Servlet/JSP Container
+ " border="0"></a></td><td><h1><font face="arial,helvetica,sanserif">Apache Tomcat 6.0</font></h1><font face="arial,helvetica,sanserif">Version 6.0.39, Jan 27 2014</font></td><td><!--APACHE LOGO--><a href="http://www.apache.org/"><img src="../images/asf-logo.gif" align="right" alt="Apache Logo" border="0"></a></td></tr></table><table border="0" width="100%" cellspacing="4"><!--HEADER SEPARATOR--><tr><td colspan="2"><hr noshade="noshade" size="1"></td></tr><tr><!--LEFT SIDE NAVIGATION--><td width="20%" valign="top" nowrap="nowrap" class="noPrint"><p><strong>Links</strong></p><ul><li><a href="../index.html">Docs Home</a></li><li><a href="index.html">Config Ref. Home</a></li></ul><p><strong>Top Level Elements</strong></p><ul><li><a href="server.html">Server</a></li><li><a href="service.html">Service</a></li></ul><p><strong>Executors</strong></p><ul><li><a href="executor.html">Executor</a></li></ul><p><strong>Connectors</strong></p><ul><li><a href="http.html">HTTP</a></li><li><a href="ajp.html">AJP</a></li></ul><p><strong>Containers</strong></p><ul><li><a href="context.html">Context</a></li><li><a href="engine.html">Engine</a></li><li><a href="host.html">Host</a></li><li><a href="cluster.html">Cluster</a></li></ul><p><strong>Nested Components</strong></p><ul><li><a href="globalresources.html">Global Resources</a></li><li><a href="listeners.html">Listeners</a></li><li><a href="loader.html">Loader</a></li><li><a href="manager.html">Manager</a></li><li><a href="realm.html">Realm</a></li><li><a href="resources.html">Resources</a></li><li><a href="valve.html">Valve</a></li></ul><p><strong>Cluster Elements</strong></p><ul><li><a href="cluster.html">Cluster</a></li><li><a href="cluster-manager.html">Manager</a></li><li><a href="cluster-channel.html">Channel</a></li><li><a href="cluster-membership.html">Channel/Membership</a></li><li><a href="cluster-sender.html">Channel/Sender</a></li><li><a href="cluster-receiver.html">Channel/Receiver</a></li><li><a href="cluster-interceptor.html">Channel/Interceptor</a></li><li><a href="cluster-valve.html">Valve</a></li><li><a href="cluster-deployer.html">Deployer</a></li><li><a href="cluster-listener.html">ClusterListener</a></li></ul><p><strong>Other</strong></p><ul><li><a href="filter.html">Filter</a></li><li><a href="systemprops.html">System properties</a></li></ul></td><!--RIGHT SIDE MAIN BODY--><td width="80%" valign="top" align="left" id="mainBody"><h1>Apache Tomcat Configuration Reference</h1><h2>The Loader Component</h2><table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Table of Contents"><!--()--></a><a name="Table_of_Contents"><strong>Table of Contents</strong></a></font></td></tr><tr><td><blockquote>
+<ul><li><a href="#Introduction">Introduction</a></li><li><a href="#Attributes">Attributes</a><ol><li><a href="#Common_Attributes">Common Attributes</a></li><li><a href="#Standard_Implementation">Standard Implementation</a></li></ol></li><li><a href="#Nested_Components">Nested Components</a></li><li><a href="#Special_Features">Special Features</a><ol><li><a href="#Logging">Logging</a></li></ol></li></ul>
+</blockquote></td></tr></table><table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Introduction"><strong>Introduction</strong></a></font></td></tr><tr><td><blockquote>
+
+ <p>The <strong>Loader</strong> element represents the <em>web
+ application class loader</em> that will be used to load Java
+ classes and resources for your web application. Such
+ a class loader must follow the requirements of the Servlet
+ Specification, and load classes from the following locations:</p>
+ <ul>
+ <li>From the <code>/WEB-INF/classes</code> directory inside your
+ web application.</li>
+ <li>From JAR files in the <code>/WEB-INF/lib</code> directory
+ inside your web application.</li>
+ <li>From resources made available by Catalina to all web
+ applications globally.</li>
+ </ul>
+
+ <p>A Loader element MAY be nested inside a <a href="context.html">Context</a>
+ component. If it is not included, a default Loader configuration will be
+ created automatically, which is sufficient for most requirements.</p>
+
+ <p>For a more in-depth description of the class loader hierarchy
+ that is implemented by Catalina, see <a href="../class-loader-howto.html">the ClassLoader HowTo</a>.</p>
+
+ <blockquote><em>
+ <p>The description below uses the variable name $CATALINA_BASE to refer the
+ base directory against which most relative paths are resolved. If you have
+ not configured Tomcat 6 for multiple instances by setting a CATALINA_BASE
+ directory, then $CATALINA_BASE will be set to the value of $CATALINA_HOME,
+ the directory into which you have installed Tomcat 6.</p>
+ </em></blockquote>
+
+</blockquote></td></tr></table><table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Attributes"><strong>Attributes</strong></a></font></td></tr><tr><td><blockquote>
+
+ <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Common Attributes"><!--()--></a><a name="Common_Attributes"><strong>Common Attributes</strong></a></font></td></tr><tr><td><blockquote>
+
+ <p>All implementations of <strong>Loader</strong>
+ support the following attributes:</p>
+
+ <table border="1" cellpadding="5"><tr><th width="15%" bgcolor="#023264"><font color="#ffffff">Attribute</font></th><th width="85%" bgcolor="#023264"><font color="#ffffff">Description</font></th></tr><tr><td align="left" valign="center"><code>className</code></td><td align="left" valign="center">
+ <p>Java class name of the implementation to use. This class must
+ implement the <code>org.apache.catalina.Loader</code> interface.
+ If not specified, the standard value (defined below) will be used.</p>
+ </td></tr><tr><td align="left" valign="center"><code>delegate</code></td><td align="left" valign="center">
+ <p>Set to <code>true</code> if you want the class loader to follow
+ the standard Java2 delegation model, and attempt to load classes from
+ parent class loaders <strong>before</strong> looking inside the web
+ application. Set to <code>false</code> (the default) to have the
+ class loader look inside the web application first, before asking
+ parent class loaders to find requested classes or resources.</p>
+ </td></tr><tr><td align="left" valign="center"><code>reloadable</code></td><td align="left" valign="center">
+ <p>Set to <code>true</code> if you want Catalina to monitor classes in
+ <code>/WEB-INF/classes/</code> and <code>/WEB-INF/lib</code> for
+ changes, and automatically reload the web application if a change
+ is detected. This feature is very useful during application
+ development, but it requires significant runtime overhead and is
+ not recommended for use on deployed production applications. You
+ can use the <a href="../manager-howto.html">Manager</a> web
+ application, however, to trigger reloads of deployed applications
+ on demand.</p>
+
+ <p><strong>NOTE</strong> - The value for this property will be
+ inherited from the <code>reloadable</code> attribute you set on
+ the surrounding <a href="context.html">Context</a> component,
+ and any value you explicitly set here will be replaced.</p>
+ </td></tr></table>
+
+ </blockquote></td></tr></table>
+
+
+ <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Standard Implementation"><!--()--></a><a name="Standard_Implementation"><strong>Standard Implementation</strong></a></font></td></tr><tr><td><blockquote>
+
+ <p>The standard implementation of <strong>Loader</strong> is
+ <strong>org.apache.catalina.loader.WebappLoader</strong>.
+ It supports the following additional attributes (in addition to the
+ common attributes listed above):</p>
+
+ <table border="1" cellpadding="5"><tr><th width="15%" bgcolor="#023264"><font color="#ffffff">Attribute</font></th><th width="85%" bgcolor="#023264"><font color="#ffffff">Description</font></th></tr><tr><td align="left" valign="center"><code>loaderClass</code></td><td align="left" valign="center">
+ <p>Java class name of the <code>java.lang.ClassLoader</code>
+ implementation class to use. If not specified, the default value is
+ <code>org.apache.catalina.loader.WebappClassLoader</code>. Custom
+ <strong>loaderClass</strong> implementations must extend
+ <code>org.apache.catalina.loader.WebappClassLoader</code>.</p>
+ </td></tr><tr><td align="left" valign="center"><code>searchExternalFirst</code></td><td align="left" valign="center">
+ <p>Set to <code>true</code> if you want repositories outside
+ of <code>WEB-INF/classes</code> and <code>WEB-INF/lib</code> to
+ be searched first. Default value is <code>false</code>.</p>
+ </td></tr></table>
+
+ </blockquote></td></tr></table>
+
+
+</blockquote></td></tr></table><table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Nested Components"><!--()--></a><a name="Nested_Components"><strong>Nested Components</strong></a></font></td></tr><tr><td><blockquote>
+
+ <p>No components may be nested inside a <strong>Loader</strong> element.</p>
+
+</blockquote></td></tr></table><table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Special Features"><!--()--></a><a name="Special_Features"><strong>Special Features</strong></a></font></td></tr><tr><td><blockquote>
+
+ <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Logging"><strong>Logging</strong></a></font></td></tr><tr><td><blockquote>
+
+ <p>A loader is associated with the log category based on its classname.</p>
+
+ </blockquote></td></tr></table>
+
+</blockquote></td></tr></table></td></tr><!--FOOTER SEPARATOR--><tr><td colspan="2"><hr noshade="noshade" size="1"></td></tr><!--PAGE FOOTER--><tr><td colspan="2"><div align="center"><font color="#525D76" size="-1"><em>
+ Copyright © 1999-2014, Apache Software Foundation
+ </em></font></div></td></tr></table></body></html>
\ No newline at end of file
diff --git a/tomcat-uid/webapps/docs/config/manager.html b/tomcat-uid/webapps/docs/config/manager.html
new file mode 100644
index 0000000..7383164
--- /dev/null
+++ b/tomcat-uid/webapps/docs/config/manager.html
@@ -0,0 +1,386 @@
+<html><head><META http-equiv="Content-Type" content="text/html; charset=iso-8859-1"><title>Apache Tomcat Configuration Reference (6.0.39) - The Manager Component</title><meta name="author" content="Craig R. McClanahan"><meta name="author" content="Yoav Shapira"><style type="text/css" media="print">
+ .noPrint {display: none;}
+ td#mainBody {width: 100%;}
+ </style></head><body bgcolor="#ffffff" text="#000000" link="#525D76" alink="#525D76" vlink="#525D76"><table border="0" width="100%" cellspacing="0"><!--PAGE HEADER--><tr><td><!--PROJECT LOGO--><a href="http://tomcat.apache.org/"><img src="../images/tomcat.gif" align="right" alt="
+ The Apache Tomcat Servlet/JSP Container
+ " border="0"></a></td><td><h1><font face="arial,helvetica,sanserif">Apache Tomcat 6.0</font></h1><font face="arial,helvetica,sanserif">Version 6.0.39, Jan 27 2014</font></td><td><!--APACHE LOGO--><a href="http://www.apache.org/"><img src="../images/asf-logo.gif" align="right" alt="Apache Logo" border="0"></a></td></tr></table><table border="0" width="100%" cellspacing="4"><!--HEADER SEPARATOR--><tr><td colspan="2"><hr noshade="noshade" size="1"></td></tr><tr><!--LEFT SIDE NAVIGATION--><td width="20%" valign="top" nowrap="nowrap" class="noPrint"><p><strong>Links</strong></p><ul><li><a href="../index.html">Docs Home</a></li><li><a href="index.html">Config Ref. Home</a></li></ul><p><strong>Top Level Elements</strong></p><ul><li><a href="server.html">Server</a></li><li><a href="service.html">Service</a></li></ul><p><strong>Executors</strong></p><ul><li><a href="executor.html">Executor</a></li></ul><p><strong>Connectors</strong></p><ul><li><a href="http.html">HTTP</a></li><li><a href="ajp.html">AJP</a></li></ul><p><strong>Containers</strong></p><ul><li><a href="context.html">Context</a></li><li><a href="engine.html">Engine</a></li><li><a href="host.html">Host</a></li><li><a href="cluster.html">Cluster</a></li></ul><p><strong>Nested Components</strong></p><ul><li><a href="globalresources.html">Global Resources</a></li><li><a href="listeners.html">Listeners</a></li><li><a href="loader.html">Loader</a></li><li><a href="manager.html">Manager</a></li><li><a href="realm.html">Realm</a></li><li><a href="resources.html">Resources</a></li><li><a href="valve.html">Valve</a></li></ul><p><strong>Cluster Elements</strong></p><ul><li><a href="cluster.html">Cluster</a></li><li><a href="cluster-manager.html">Manager</a></li><li><a href="cluster-channel.html">Channel</a></li><li><a href="cluster-membership.html">Channel/Membership</a></li><li><a href="cluster-sender.html">Channel/Sender</a></li><li><a href="cluster-receiver.html">Channel/Receiver</a></li><li><a href="cluster-interceptor.html">Channel/Interceptor</a></li><li><a href="cluster-valve.html">Valve</a></li><li><a href="cluster-deployer.html">Deployer</a></li><li><a href="cluster-listener.html">ClusterListener</a></li></ul><p><strong>Other</strong></p><ul><li><a href="filter.html">Filter</a></li><li><a href="systemprops.html">System properties</a></li></ul></td><!--RIGHT SIDE MAIN BODY--><td width="80%" valign="top" align="left" id="mainBody"><h1>Apache Tomcat Configuration Reference</h1><h2>The Manager Component</h2><table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Table of Contents"><!--()--></a><a name="Table_of_Contents"><strong>Table of Contents</strong></a></font></td></tr><tr><td><blockquote>
+<ul><li><a href="#Introduction">Introduction</a></li><li><a href="#Attributes">Attributes</a><ol><li><a href="#Common_Attributes">Common Attributes</a></li><li><a href="#Standard_Implementation">Standard Implementation</a></li></ol></li><li><a href="#Nested_Components">Nested Components</a></li><li><a href="#Special_Features">Special Features</a><ol><li><a href="#Persistence_Across_Restarts">Persistence Across Restarts</a></li><li><a href="#Disable_Session_Persistence">Disable Session Persistence</a></li></ol></li></ul>
+</blockquote></td></tr></table><table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Introduction"><strong>Introduction</strong></a></font></td></tr><tr><td><blockquote>
+
+ <p>The <strong>Manager</strong> element represents the <em>session
+ manager</em> that will be used to create and maintain HTTP sessions
+ as requested by the associated web application.</p>
+
+ <p>A Manager element MAY be nested inside a
+ <a href="context.html">Context</a> component. If it is not included,
+ a default Manager configuration will be created automatically, which
+ is sufficient for most requirements, — see
+ <em>Standard Manager Implementation</em> below for the details
+ of this configuration.</p>
+
+</blockquote></td></tr></table><table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Attributes"><strong>Attributes</strong></a></font></td></tr><tr><td><blockquote>
+
+ <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Common Attributes"><!--()--></a><a name="Common_Attributes"><strong>Common Attributes</strong></a></font></td></tr><tr><td><blockquote>
+
+ <p>All implementations of <strong>Manager</strong>
+ support the following attributes:</p>
+
+ <table border="1" cellpadding="5"><tr><th width="15%" bgcolor="#023264"><font color="#ffffff">Attribute</font></th><th width="85%" bgcolor="#023264"><font color="#ffffff">Description</font></th></tr><tr><td align="left" valign="center"><code>className</code></td><td align="left" valign="center">
+ <p>Java class name of the implementation to use. This class must
+ implement the <code>org.apache.catalina.Manager</code> interface.
+ If not specified, the standard value (defined below) will be used.</p>
+ </td></tr><tr><td align="left" valign="center"><code>distributable</code></td><td align="left" valign="center">
+ <p>Set to <code>true</code> to ask the session manager to enforce
+ the restrictions described in the Servlet Specification on
+ distributable applications (primarily, this would mean that all
+ session attributes must implement <code>java.io.Serializable</code>).
+ Set to <code>false</code> (the default) to not enforce these
+ restrictions.</p>
+
+ <p><strong>NOTE</strong> - The value for this property is inherited
+ automatically based on the presence or absence of the
+ <code><distributable></code> element in the web application
+ deployment descriptor (<code>/WEB-INF/web.xml</code>).</p>
+ </td></tr></table>
+
+ </blockquote></td></tr></table>
+
+
+ <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Standard Implementation"><!--()--></a><a name="Standard_Implementation"><strong>Standard Implementation</strong></a></font></td></tr><tr><td><blockquote>
+
+ <p>Tomcat provides two standard implementations of <strong>Manager</strong>
+ for use — the default one stores active sessions, while the optional one
+ stores active sessions that have been swapped out (in addition to saving
+ sessions across a restart of Tomcat) in a storage location that is selected
+ via the use of an appropriate <strong>Store</strong> nested element.</p>
+
+ <h3>Standard Manager Implementation</h3>
+
+ <p>The standard implementation of <strong>Manager</strong> is
+ <strong>org.apache.catalina.session.StandardManager</strong>.
+ It supports the following additional attributes (in addition to the
+ common attributes listed above):</p>
+
+ <table border="1" cellpadding="5"><tr><th width="15%" bgcolor="#023264"><font color="#ffffff">Attribute</font></th><th width="85%" bgcolor="#023264"><font color="#ffffff">Description</font></th></tr><tr><td align="left" valign="center"><code>algorithm</code></td><td align="left" valign="center">
+ <p>Name of the <em>Message Digest</em> algorithm used to calculate
+ session identifiers produced by this Manager. This value must
+ be supported by the <code>java.security.MessageDigest</code> class.
+ If not specified, the default value is "MD5".</p>
+ </td></tr><tr><td align="left" valign="center"><code>entropy</code></td><td align="left" valign="center">
+ <p>A String value that is utilized when seeding the random number
+ generator used to create session identifiers for this Manager.
+ If not specified, a semi-useful value is calculated, but a long
+ String value should be specified in security-conscious
+ environments.</p>
+ </td></tr><tr><td align="left" valign="center"><code>maxActiveSessions</code></td><td align="left" valign="center">
+ <p>The maximum number of active sessions that will be created by
+ this Manager, or -1 (the default) for no limit.</p>
+ </td></tr><tr><td align="left" valign="center"><code>maxInactiveInterval</code></td><td align="left" valign="center">
+ <p>The initial maximum time interval, in seconds,
+ between client requests before a session is invalidated. A negative value
+ will result in sessions never timing out. If the attribute is not provided,
+ a default of 60 seconds is used.</p>
+
+ <p>This attribute provides the initial value whenever a
+ new session is created, but the interval may be dynamically
+ varied by a servlet via the
+ <code>setMaxInactiveInterval</code> method of the <code>HttpSession</code> object.</p>
+ </td></tr><tr><td align="left" valign="center"><code>pathname</code></td><td align="left" valign="center">
+ <p>Absolute or relative (to the work directory for this Context)
+ pathname of the file in which session state will be preserved
+ across application restarts, if possible. The default is
+ "SESSIONS.ser".<br>See
+ <a href="#Persistence_Across_Restarts">Persistence Across Restarts</a>
+ for more information. This persistence may be
+ disabled by setting this attribute to an empty string.</p>
+ </td></tr><tr><td align="left" valign="center"><code>processExpiresFrequency</code></td><td align="left" valign="center">
+ <p>Frequency of the session expiration, and related manager operations.
+ Manager operations will be done once for the specified amount of
+ backgroundProcess calls (i.e., the lower the amount, the more often the
+ checks will occur). The minimum value is 1, and the default value is 6.
+ </p>
+ </td></tr><tr><td align="left" valign="center"><code>randomClass</code></td><td align="left" valign="center">
+ <p>Java class name of the <code>java.util.Random</code>
+ implementation class to use. If not specified, the default value is
+ <code>java.security.SecureRandom</code>.</p>
+ </td></tr><tr><td align="left" valign="center"><code>randomFile</code></td><td align="left" valign="center">
+ <p>Name of a file that provides random data that are used to generate
+ session ids. If not specified, the default value is
+ <code>/dev/urandom</code> on Unix-like systems (those where such
+ file path is absolute) and empty on others.</p>
+ </td></tr><tr><td align="left" valign="center"><code>sessionIdLength</code></td><td align="left" valign="center">
+ <p>The length of session ids created by this Manager, measured in bytes,
+ excluding subsequent conversion to a hexadecimal string and
+ excluding any JVM route information used for load balancing.
+ The default is 16.</p>
+ </td></tr></table>
+
+ <h3>Persistent Manager Implementation</h3>
+
+ <p><em><strong>WARNING - Use of this Manager implementation
+ has not been thoroughly tested, and should be considered experimental!
+ </strong></em></p>
+
+ <p><strong>NOTE:</strong> You must set either the
+ <code>org.apache.catalina.session.StandardSession.ACTIVITY_CHECK</code> or
+ <code>org.apache.catalina.STRICT_SERVLET_COMPLIANCE</code>
+ <a href="systemprops.html">system properties</a> to <code>true</code> for
+ the persistent manager to work correctly.</p>
+
+ <p>The persistent implementation of <strong>Manager</strong> is
+ <strong>org.apache.catalina.session.PersistentManager</strong>. In
+ addition to the usual operations of creating and deleting sessions, a
+ <code>PersistentManager</code> has the capability to swap active (but
+ idle) sessions out to a persistent storage mechanism, as well as to save
+ all sessions across a normal restart of Tomcat. The actual persistent
+ storage mechanism used is selected by your choice of a
+ <strong>Store</strong> element nested inside the <strong>Manager</strong>
+ element - this is required for use of <code>PersistentManager</code>.</p>
+
+ <p>This implementation of Manager supports the following attributes in
+ addition to the <a href="#Common Attributes">Common Attributes</a>
+ described earlier.</p>
+
+ <table border="1" cellpadding="5"><tr><th width="15%" bgcolor="#023264"><font color="#ffffff">Attribute</font></th><th width="85%" bgcolor="#023264"><font color="#ffffff">Description</font></th></tr><tr><td align="left" valign="center"><code>algorithm</code></td><td align="left" valign="center">
+ <p>Name of the <em>Message Digest</em> algorithm used to calculate
+ session identifiers produced by this Manager. This value must
+ be supported by the <code>java.security.MessageDigest</code> class.
+ If not specified, the default value is "MD5".</p>
+ </td></tr><tr><td align="left" valign="center"><code>className</code></td><td align="left" valign="center">
+ <p>Java class name of the implementation to use. This class must
+ implement the <code>org.apache.catalina.Manager</code> interface.
+ You <strong>must</strong> specify
+ <code>org.apache.catalina.session.PersistentManager</code> to use
+ this manager implementation.</p>
+ </td></tr><tr><td align="left" valign="center"><code>entropy</code></td><td align="left" valign="center">
+ <p>A String value that is utilized when seeding the random number
+ generator used to create session identifiers for this Manager.
+ If not specified, a semi-useful value is calculated, but a long
+ String value should be specified in security-conscious
+ environments.</p>
+ </td></tr><tr><td align="left" valign="center"><code>maxActiveSessions</code></td><td align="left" valign="center">
+ <p>The maximum number of active sessions that will be created by
+ this Manager, or -1 (the default) for no limit.</p>
+ </td></tr><tr><td align="left" valign="center"><code>maxIdleBackup</code></td><td align="left" valign="center">
+ <p>The time interval (in seconds) since the last access to a session
+ before it is eligible for being persisted to the session store, or
+ <code>-1</code> to disable this feature. By default, this feature is
+ disabled.</p>
+ </td></tr><tr><td align="left" valign="center"><code>maxIdleSwap</code></td><td align="left" valign="center">
+ <p>The time interval (in seconds) since the last access to a session
+ before it should be persisted to the session store, and
+ passivated out of the server's memory, or <code>-1</code> to disable
+ this feature. If this feature is enabled, the time interval specified
+ here should be equal to or longer than the value specified for
+ <code>maxIdleBackup</code>. By default, this feature is disabled.</p>
+ </td></tr><tr><td align="left" valign="center"><code>minIdleSwap</code></td><td align="left" valign="center">
+ <p>The time interval (in seconds) since the last access to a session
+ before it will be eligible to be persisted to the session store, and
+ passivated out of the server's memory, or <code>-1</code> for this
+ swapping to be available at any time. If specified, this value should
+ be less than that specified by <code>maxIdleSwap</code>. By default,
+ this value is set to <code>-1</code>.</p>
+ </td></tr><tr><td align="left" valign="center"><code>maxInactiveInterval</code></td><td align="left" valign="center">
+ <p>The initial maximum time interval, in seconds,
+ between client requests before a session is invalidated. A negative value
+ will result in sessions never timing out. If the attribute is not provided,
+ a default of 60 seconds is used.</p>
+
+ <p>This attribute provides the initial value whenever a
+ new session is created, but the interval may be dynamically
+ varied by a servlet via the
+ <code>setMaxInactiveInterval</code>method of the <code>HttpSession</code> object.</p>
+ </td></tr><tr><td align="left" valign="center"><code>randomClass</code></td><td align="left" valign="center">
+ <p>Java class name of the <code>java.util.Random</code>
+ implementation class to use. If not specified, the default value is
+ <code>java.security.SecureRandom</code>.</p>
+ </td></tr><tr><td align="left" valign="center"><code>randomFile</code></td><td align="left" valign="center">
+ <p>Name of a file that provides random data that are used to generate
+ session ids. If not specified, the default value is
+ <code>/dev/urandom</code> on Unix-like systems (those where such
+ file path is absolute) and empty on others.</p>
+ </td></tr><tr><td align="left" valign="center"><code>saveOnRestart</code></td><td align="left" valign="center">
+ <p>Should all sessions be persisted and reloaded when Tomcat is shut
+ down and restarted (or when this application is reloaded)? By default,
+ this attribute is set to <code>true</code>.</p>
+ </td></tr><tr><td align="left" valign="center"><code>sessionIdLength</code></td><td align="left" valign="center">
+ <p>The length of session ids created by this Manager, measured in bytes,
+ excluding subsequent conversion to a hexadecimal string and
+ excluding any JVM route information used for load balancing.
+ The default is 16.</p>
+ </td></tr></table>
+
+ <p>In order to successfully use a PersistentManager, you must nest inside
+ it a <strong><Store></strong> element, as described below.</p>
+
+ </blockquote></td></tr></table>
+
+
+</blockquote></td></tr></table><table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Nested Components"><!--()--></a><a name="Nested_Components"><strong>Nested Components</strong></a></font></td></tr><tr><td><blockquote>
+
+ <h3>Standard Manager Implementation</h3>
+
+ <p>If you are using the <em>Standard Manager Implementation</em>
+ as described above, no elements may be nested inside your
+ <strong><Manager></strong> element.</p>
+
+ <h3>Persistent Manager Implementation</h3>
+
+ <p>If you are using the <em>Persistent Manager Implementation</em>
+ as described above, you <strong>MUST</strong> nest a
+ <strong><Store></strong> element inside, which defines the
+ characteristics of the persistent data storage. Two implementations
+ of the <code><Store></code> element are currently available,
+ with different characteristics, as described below.</p>
+
+ <h5>File Based Store</h5>
+
+ <p>The <em>File Based Store</em> implementation saves swapped out
+ sessions in individual files (named based on the session identifier)
+ in a configurable directory. Therefore, you are likely to encounter
+ scalability problems as the number of active sessions increases, and
+ this should primarily be considered a means to easily experiment.</p>
+
+ <p>To configure this, add a <code><Store></code> nested inside
+ your <code><Manager></code> element with the following attributes:
+ </p>
+
+ <table border="1" cellpadding="5"><tr><th width="15%" bgcolor="#023264"><font color="#ffffff">Attribute</font></th><th width="85%" bgcolor="#023264"><font color="#ffffff">Description</font></th></tr><tr><td align="left" valign="center"><code>checkInterval</code></td><td align="left" valign="center">
+ <p>The interval (in seconds) between checks for expired sessions
+ among those sessions that are currently swapped out. By default,
+ this interval is set to 60 seconds (one minute).</p>
+ </td></tr><tr><td align="left" valign="center"><strong><code>className</code></strong></td><td align="left" valign="center">
+ <p>Java class name of the implementation to use. This class must
+ implement the <code>org.apache.catalina.Store</code> interface. You
+ <strong>must</strong> specify
+ <code>org.apache.catalina.session.FileStore</code>
+ to use this implementation.</p>
+ </td></tr><tr><td align="left" valign="center"><code>directory</code></td><td align="left" valign="center">
+ <p>Absolute or relative (to the temporary work directory for this web
+ application) pathname of the directory into which individual session
+ files are written. If not specified, the temporary work directory
+ assigned by the container is utilized.</p>
+ </td></tr></table>
+
+
+ <h5>JDBC Based Store</h5>
+
+ <p>The <em>JDBC Based Store</em> implementation saves swapped out
+ sessions in individual rows of a preconfigured table in a database
+ that is accessed via a JDBC driver. With large numbers of swapped out
+ sessions, this implementation will exhibit improved performance over
+ the File Based Store described above.</p>
+
+ <p>To configure this, add a <code><Store></code> nested inside
+ your <code><Manager></code> element with the following attributes:
+ </p>
+
+ <table border="1" cellpadding="5"><tr><th width="15%" bgcolor="#023264"><font color="#ffffff">Attribute</font></th><th width="85%" bgcolor="#023264"><font color="#ffffff">Description</font></th></tr><tr><td align="left" valign="center"><code>checkInterval</code></td><td align="left" valign="center">
+ <p>The interval (in seconds) between checks for expired sessions
+ among those sessions that are currently swapped out. By default,
+ this interval is set to 60 seconds (one minute).</p>
+ </td></tr><tr><td align="left" valign="center"><strong><code>className</code></strong></td><td align="left" valign="center">
+ <p>Java class name of the implementation to use. This class must
+ implement the <code>org.apache.catalina.Store</code> interface. You
+ <strong>must</strong> specify
+ <code>org.apache.catalina.session.JDBCStore</code>
+ to use this implementation.</p>
+ </td></tr><tr><td align="left" valign="center"><strong><code>connectionURL</code></strong></td><td align="left" valign="center">
+ <p>The connection URL that will be handed to the configured JDBC
+ driver to establish a connection to the database containing our
+ session table.</p>
+ </td></tr><tr><td align="left" valign="center"><strong><code>driverName</code></strong></td><td align="left" valign="center">
+ <p>Java class name of the JDBC driver to be used.</p>
+ </td></tr><tr><td align="left" valign="center"><strong><code>sessionAppCol</code></strong></td><td align="left" valign="center">
+ <p>Name of the database column, contained in the specified session
+ table, that contains the Engine, Host, and Web Application Context
+ name in the format <code>/Engine/Host/Context</code>.</p>
+ </td></tr><tr><td align="left" valign="center"><strong><code>sessionDataCol</code></strong></td><td align="left" valign="center">
+ <p>Name of the database column, contained in the specified
+ session table, that contains the serialized form of all session
+ attributes for a swapped out session. The column type must accept
+ a binary object (typically called a BLOB).</p>
+ </td></tr><tr><td align="left" valign="center"><strong><code>sessionIdCol</code></strong></td><td align="left" valign="center">
+ <p>Name of the database column, contained in the specified
+ session table, that contains the session identifier of the
+ swapped out session. The column type must accept character
+ string data of at least as many characters as are contained
+ in session identifiers created by Tomcat (typically 32).</p>
+ </td></tr><tr><td align="left" valign="center"><strong><code>sessionLastAccessedCol</code></strong></td><td align="left" valign="center">
+ <p>Name of the database column, contained in the specified
+ session table, that contains the <code>lastAccessedTime</code>
+ property of this session. The column type must accept a
+ Java <code>long</code> (64 bits).</p>
+ </td></tr><tr><td align="left" valign="center"><strong><code>sessionMaxInactiveCol</code></strong></td><td align="left" valign="center">
+ <p>Name of the database column, contained in the specified
+ session table, that contains the <code>maxInactiveInterval</code>
+ property of this session. The column type must accept a
+ Java <code>integer</code> (32 bits).</p>
+ </td></tr><tr><td align="left" valign="center"><strong><code>sessionTable</code></strong></td><td align="left" valign="center">
+ <p>Name of the database table to be used for storing swapped out
+ sessions. This table must contain (at least) the database columns
+ that are configured by the other attributes of this element.</p>
+ </td></tr><tr><td align="left" valign="center"><strong><code>sessionValidCol</code></strong></td><td align="left" valign="center">
+ <p>Name of the database column, contained in the specified
+ session table, that contains a flag indicating whether this
+ swapped out session is still valid or not. The column type
+ must accept a single character.</p>
+ </td></tr></table>
+
+ <p>Before attempting to use the JDBC Based Store for the first time,
+ you must create the table that will be used to store swapped out sessions.
+ Detailed SQL commands vary depending on the database you are using, but
+ a script like this will generally be required:</p>
+
+<div align="left"><table cellspacing="4" cellpadding="0" border="0"><tr><td bgcolor="#023264" width="1" height="1"><img src="../images/void.gif" alt="" width="1" height="1" vspace="0" hspace="0" border="0"></td><td bgcolor="#023264" height="1"><img src="../images/void.gif" alt="" width="1" height="1" vspace="0" hspace="0" border="0"></td><td bgcolor="#023264" width="1" height="1"><img src="../images/void.gif" alt="" width="1" height="1" vspace="0" hspace="0" border="0"></td></tr><tr><td bgcolor="#023264" width="1"><img src="../images/void.gif" alt="" width="1" height="1" vspace="0" hspace="0" border="0"></td><td bgcolor="#ffffff" height="1"><pre>
+create table tomcat_sessions (
+ session_id varchar(100) not null primary key,
+ valid_session char(1) not null,
+ max_inactive int not null,
+ last_access bigint not null,
+ app_name varchar(255),
+ session_data mediumblob,
+ KEY kapp_name(app_name)
+);
+</pre></td><td bgcolor="#023264" width="1"><img src="../images/void.gif" alt="" width="1" height="1" vspace="0" hspace="0" border="0"></td></tr><tr><td bgcolor="#023264" width="1" height="1"><img src="../images/void.gif" alt="" width="1" height="1" vspace="0" hspace="0" border="0"></td><td bgcolor="#023264" height="1"><img src="../images/void.gif" alt="" width="1" height="1" vspace="0" hspace="0" border="0"></td><td bgcolor="#023264" width="1" height="1"><img src="../images/void.gif" alt="" width="1" height="1" vspace="0" hspace="0" border="0"></td></tr></table></div>
+
+ <p>In order for the JDBC Based Store to successfully connect to your
+ database, the JDBC driver you configure must be visible to Tomcat's
+ internal class loader. Generally, that means you must place the JAR
+ file containing this driver into the <code>$CATALINA_HOME/lib</code>
+ directory.</p>
+
+</blockquote></td></tr></table><table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Special Features"><!--()--></a><a name="Special_Features"><strong>Special Features</strong></a></font></td></tr><tr><td><blockquote>
+
+
+ <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Persistence Across Restarts"><!--()--></a><a name="Persistence_Across_Restarts"><strong>Persistence Across Restarts</strong></a></font></td></tr><tr><td><blockquote>
+
+ <p>Whenever Apache Tomcat is shut down normally and restarted, or when an
+ application reload is triggered, the standard Manager implementation
+ will attempt to serialize all currently active sessions to a disk
+ file located via the <code>pathname</code> attribute. All such saved
+ sessions will then be deserialized and activated (assuming they have
+ not expired in the mean time) when the application reload is completed.</p>
+
+ <p>In order to successfully restore the state of session attributes,
+ all such attributes MUST implement the <code>java.io.Serializable</code>
+ interface. You MAY cause the Manager to enforce this restriction by
+ including the <code><distributable></code> element in your web
+ application deployment descriptor (<code>/WEB-INF/web.xml</code>).</p>
+
+ </blockquote></td></tr></table>
+
+ <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Disable Session Persistence"><!--()--></a><a name="Disable_Session_Persistence"><strong>Disable Session Persistence</strong></a></font></td></tr><tr><td><blockquote>
+
+ <p>As documented above, every web application by default has
+ standard manager implementation configured, and it performs session
+ persistence across restarts. To disable this persistence feature, create
+ a <a href="context.html">Context</a> configuration file for your web
+ application and add the following element there:</p>
+
+ <div align="left"><table cellspacing="4" cellpadding="0" border="0"><tr><td bgcolor="#023264" width="1" height="1"><img src="../images/void.gif" alt="" width="1" height="1" vspace="0" hspace="0" border="0"></td><td bgcolor="#023264" height="1"><img src="../images/void.gif" alt="" width="1" height="1" vspace="0" hspace="0" border="0"></td><td bgcolor="#023264" width="1" height="1"><img src="../images/void.gif" alt="" width="1" height="1" vspace="0" hspace="0" border="0"></td></tr><tr><td bgcolor="#023264" width="1"><img src="../images/void.gif" alt="" width="1" height="1" vspace="0" hspace="0" border="0"></td><td bgcolor="#ffffff" height="1"><pre><Manager pathname="" /></pre></td><td bgcolor="#023264" width="1"><img src="../images/void.gif" alt="" width="1" height="1" vspace="0" hspace="0" border="0"></td></tr><tr><td bgcolor="#023264" width="1" height="1"><img src="../images/void.gif" alt="" width="1" height="1" vspace="0" hspace="0" border="0"></td><td bgcolor="#023264" height="1"><img src="../images/void.gif" alt="" width="1" height="1" vspace="0" hspace="0" border="0"></td><td bgcolor="#023264" width="1" height="1"><img src="../images/void.gif" alt="" width="1" height="1" vspace="0" hspace="0" border="0"></td></tr></table></div>
+ </blockquote></td></tr></table>
+
+</blockquote></td></tr></table></td></tr><!--FOOTER SEPARATOR--><tr><td colspan="2"><hr noshade="noshade" size="1"></td></tr><!--PAGE FOOTER--><tr><td colspan="2"><div align="center"><font color="#525D76" size="-1"><em>
+ Copyright © 1999-2014, Apache Software Foundation
+ </em></font></div></td></tr></table></body></html>
\ No newline at end of file
diff --git a/tomcat-uid/webapps/docs/config/realm.html b/tomcat-uid/webapps/docs/config/realm.html
new file mode 100644
index 0000000..50e5182
--- /dev/null
+++ b/tomcat-uid/webapps/docs/config/realm.html
@@ -0,0 +1,739 @@
+<html><head><META http-equiv="Content-Type" content="text/html; charset=iso-8859-1"><title>Apache Tomcat Configuration Reference (6.0.39) - The Realm Component</title><meta name="author" content="Craig R. McClanahan"><style type="text/css" media="print">
+ .noPrint {display: none;}
+ td#mainBody {width: 100%;}
+ </style></head><body bgcolor="#ffffff" text="#000000" link="#525D76" alink="#525D76" vlink="#525D76"><table border="0" width="100%" cellspacing="0"><!--PAGE HEADER--><tr><td><!--PROJECT LOGO--><a href="http://tomcat.apache.org/"><img src="../images/tomcat.gif" align="right" alt="
+ The Apache Tomcat Servlet/JSP Container
+ " border="0"></a></td><td><h1><font face="arial,helvetica,sanserif">Apache Tomcat 6.0</font></h1><font face="arial,helvetica,sanserif">Version 6.0.39, Jan 27 2014</font></td><td><!--APACHE LOGO--><a href="http://www.apache.org/"><img src="../images/asf-logo.gif" align="right" alt="Apache Logo" border="0"></a></td></tr></table><table border="0" width="100%" cellspacing="4"><!--HEADER SEPARATOR--><tr><td colspan="2"><hr noshade="noshade" size="1"></td></tr><tr><!--LEFT SIDE NAVIGATION--><td width="20%" valign="top" nowrap="nowrap" class="noPrint"><p><strong>Links</strong></p><ul><li><a href="../index.html">Docs Home</a></li><li><a href="index.html">Config Ref. Home</a></li></ul><p><strong>Top Level Elements</strong></p><ul><li><a href="server.html">Server</a></li><li><a href="service.html">Service</a></li></ul><p><strong>Executors</strong></p><ul><li><a href="executor.html">Executor</a></li></ul><p><strong>Connectors</strong></p><ul><li><a href="http.html">HTTP</a></li><li><a href="ajp.html">AJP</a></li></ul><p><strong>Containers</strong></p><ul><li><a href="context.html">Context</a></li><li><a href="engine.html">Engine</a></li><li><a href="host.html">Host</a></li><li><a href="cluster.html">Cluster</a></li></ul><p><strong>Nested Components</strong></p><ul><li><a href="globalresources.html">Global Resources</a></li><li><a href="listeners.html">Listeners</a></li><li><a href="loader.html">Loader</a></li><li><a href="manager.html">Manager</a></li><li><a href="realm.html">Realm</a></li><li><a href="resources.html">Resources</a></li><li><a href="valve.html">Valve</a></li></ul><p><strong>Cluster Elements</strong></p><ul><li><a href="cluster.html">Cluster</a></li><li><a href="cluster-manager.html">Manager</a></li><li><a href="cluster-channel.html">Channel</a></li><li><a href="cluster-membership.html">Channel/Membership</a></li><li><a href="cluster-sender.html">Channel/Sender</a></li><li><a href="cluster-receiver.html">Channel/Receiver</a></li><li><a href="cluster-interceptor.html">Channel/Interceptor</a></li><li><a href="cluster-valve.html">Valve</a></li><li><a href="cluster-deployer.html">Deployer</a></li><li><a href="cluster-listener.html">ClusterListener</a></li></ul><p><strong>Other</strong></p><ul><li><a href="filter.html">Filter</a></li><li><a href="systemprops.html">System properties</a></li></ul></td><!--RIGHT SIDE MAIN BODY--><td width="80%" valign="top" align="left" id="mainBody"><h1>Apache Tomcat Configuration Reference</h1><h2>The Realm Component</h2><table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Table of Contents"><!--()--></a><a name="Table_of_Contents"><strong>Table of Contents</strong></a></font></td></tr><tr><td><blockquote>
+<ul><li><a href="#Introduction">Introduction</a></li><li><a href="#Attributes">Attributes</a><ol><li><a href="#Common_Attributes">Common Attributes</a></li><li><a href="#JDBC_Database_Realm_-_org.apache.catalina.realm.JDBCRealm">JDBC Database Realm - org.apache.catalina.realm.JDBCRealm</a></li><li><a href="#DataSource_Database_Realm_-_org.apache.catalina.realm.DataSourceRealm">DataSource Database Realm - org.apache.catalina.realm.DataSourceRealm</a></li><li><a href="#JNDI_Directory_Realm_-_org.apache.catalina.realm.JNDIRealm">JNDI Directory Realm - org.apache.catalina.realm.JNDIRealm</a></li><li><a href="#UserDatabase_Realm_-_org.apache.catalina.realm.UserDatabaseRealm">UserDatabase Realm - org.apache.catalina.realm.UserDatabaseRealm</a></li><li><a href="#Memory_Based_Realm_-_org.apache.catalina.realm.MemoryRealm">Memory Based Realm - org.apache.catalina.realm.MemoryRealm</a></li><li><a href="#JAAS_Realm_-_org.apache.catalina.realm.JAASRealm">JAAS Realm - org.apache.catalina.realm.JAASRealm</a></li><li><a href="#Combined_Realm_-_org.apache.catalina.realm.CombinedRealm">Combined Realm - org.apache.catalina.realm.CombinedRealm</a></li><li><a href="#LockOut_Realm_-_org.apache.catalina.realm.LockOutRealm">LockOut Realm - org.apache.catalina.realm.LockOutRealm</a></li></ol></li><li><a href="#Nested_Components">Nested Components</a></li><li><a href="#Special_Features">Special Features</a></li></ul>
+</blockquote></td></tr></table><table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Introduction"><strong>Introduction</strong></a></font></td></tr><tr><td><blockquote>
+
+ <p>A <strong>Realm</strong> element represents a "database" of usernames,
+ passwords, and <em>roles</em> (similar to Unix <em>groups</em>) assigned
+ to those users. Different implementations of Realm allow Catalina to be
+ integrated into environments where such authentication information is already
+ being created and maintained, and then utilize that information to implement
+ <em>Container Managed Security</em> as described in the Servlet
+ Specification.</p>
+
+ <p>You may nest a Realm inside any Catalina container
+ <a href="engine.html">Engine</a>, <a href="host.html">Host</a>, or
+ <a href="context.html">Context</a>). In addition, Realms associated with
+ an Engine or a Host are automatically inherited by lower-level
+ containers, unless explicitly overridden.</p>
+
+ <p>For more in-depth information about container managed security in web
+ applications, as well as more information on configuring and using the
+ standard realm component implementations, please see the
+ <a href="../realm-howto.html">Container-Managed Security Guide</a>.
+ </p>
+
+ <blockquote><em>
+ <p>The description below uses the variable name $CATALINA_BASE to refer the
+ base directory against which most relative paths are resolved. If you have
+ not configured Tomcat 6 for multiple instances by setting a CATALINA_BASE
+ directory, then $CATALINA_BASE will be set to the value of $CATALINA_HOME,
+ the directory into which you have installed Tomcat 6.</p>
+ </em></blockquote>
+
+</blockquote></td></tr></table><table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Attributes"><strong>Attributes</strong></a></font></td></tr><tr><td><blockquote>
+
+ <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Common Attributes"><!--()--></a><a name="Common_Attributes"><strong>Common Attributes</strong></a></font></td></tr><tr><td><blockquote>
+
+ <p>All implementations of <strong>Realm</strong>
+ support the following attributes:</p>
+
+ <table border="1" cellpadding="5"><tr><th width="15%" bgcolor="#023264"><font color="#ffffff">Attribute</font></th><th width="85%" bgcolor="#023264"><font color="#ffffff">Description</font></th></tr><tr><td align="left" valign="center"><strong><code>className</code></strong></td><td align="left" valign="center">
+ <p>Java class name of the implementation to use. This class must
+ implement the <code>org.apache.catalina.Realm</code> interface.</p>
+ </td></tr></table>
+
+ <p>Unlike most Catalina components, there are several standard
+ <strong>Realm</strong> implementations available. As a result,
+ the <code>className</code> attribute MUST be used to select the
+ implementation you wish to use.</p>
+
+ </blockquote></td></tr></table>
+
+
+ <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="JDBC Database Realm - org.apache.catalina.realm.JDBCRealm"><!--()--></a><a name="JDBC_Database_Realm_-_org.apache.catalina.realm.JDBCRealm"><strong>JDBC Database Realm - org.apache.catalina.realm.JDBCRealm</strong></a></font></td></tr><tr><td><blockquote>
+
+ <p>The <strong>JDBC Database Realm</strong> connects Catalina to
+ a relational database, accessed through an appropriate JDBC driver,
+ to perform lookups of usernames, passwords, and their associated
+ roles. Because the lookup is done each time that it is required,
+ changes to the database will be immediately reflected in the
+ information used to authenticate new logins.</p>
+
+ <p>A rich set of additional attributes lets you configure the required
+ connection to the underlying database, as well as the table and
+ column names used to retrieve the required information:</p>
+
+ <table border="1" cellpadding="5"><tr><th width="15%" bgcolor="#023264"><font color="#ffffff">Attribute</font></th><th width="85%" bgcolor="#023264"><font color="#ffffff">Description</font></th></tr><tr><td align="left" valign="center"><code>allRolesMode</code></td><td align="left" valign="center">
+ <p>This attribute controls how the special role name <code>*</code> is
+ handled when processing authorization constraints in web.xml. By
+ default, the specification compliant value of <code>strict</code> is
+ used which means that the user must be assigned one of the roles defined
+ in web.xml. The alternative values are <code>authOnly</code> which means
+ that the user must be authenticated but no check is made for assigned
+ roles and <code>strictAuthOnly</code> which means that the user must be
+ authenticated and no check will be made for assigned roles unless roles
+ are defined in web.xml in which case the user must be assigned at least
+ one of those roles.</p>
+ <p>When this attribute has the value of <code>authOnly</code> or
+ <code>strictAuthOnly</code>, the <strong>roleNameCol</strong> and
+ <strong>userRoleTable</strong> attributes become optional. If those two
+ attributes are omitted, the user's roles will not be loaded by this
+ Realm.</p>
+ </td></tr><tr><td align="left" valign="center"><strong><code>connectionName</code></strong></td><td align="left" valign="center">
+ <p>The database username to use when establishing the JDBC
+ connection.</p>
+ </td></tr><tr><td align="left" valign="center"><strong><code>connectionPassword</code></strong></td><td align="left" valign="center">
+ <p>The database password to use when establishing the JDBC
+ connection.</p>
+ </td></tr><tr><td align="left" valign="center"><strong><code>connectionURL</code></strong></td><td align="left" valign="center">
+ <p>The connection URL to be passed to the JDBC driver when
+ establishing a database connection.</p>
+ </td></tr><tr><td align="left" valign="center"><code>digest</code></td><td align="left" valign="center">
+ <p>The name of the <code>MessageDigest</code> algorithm used
+ to encode user passwords stored in the database. If not specified,
+ user passwords are assumed to be stored in clear-text.</p>
+ </td></tr><tr><td align="left" valign="center"><code>digestEncoding</code></td><td align="left" valign="center">
+ <p>The charset for encoding digests. If not specified, the platform
+ default will be used.</p>
+ </td></tr><tr><td align="left" valign="center"><strong><code>driverName</code></strong></td><td align="left" valign="center">
+ <p>Fully qualified Java class name of the JDBC driver to be
+ used to connect to the authentication database.</p>
+ </td></tr><tr><td align="left" valign="center"><code>roleNameCol</code></td><td align="left" valign="center">
+ <p>Name of the column, in the "user roles" table, which contains
+ a role name assigned to the corresponding user.</p>
+ <p>This attribute is <strong>required</strong> in majority of
+ configurations. See <strong>allRolesMode</strong> attribute for
+ a rare case when it can be omitted.</p>
+ </td></tr><tr><td align="left" valign="center"><strong><code>userCredCol</code></strong></td><td align="left" valign="center">
+ <p>Name of the column, in the "users" table, which contains
+ the user's credentials (i.e. password(. If a value for the
+ <code>digest</code> attribute is specified, this component
+ will assume that the passwords have been encoded with the
+ specified algorithm. Otherwise, they will be assumed to be
+ in clear text.</p>
+ </td></tr><tr><td align="left" valign="center"><strong><code>userNameCol</code></strong></td><td align="left" valign="center">
+ <p>Name of the column, in the "users" and "user roles" table,
+ that contains the user's username.</p>
+ </td></tr><tr><td align="left" valign="center"><code>userRoleTable</code></td><td align="left" valign="center">
+ <p>Name of the "user roles" table, which must contain columns
+ named by the <code>userNameCol</code> and <code>roleNameCol</code>
+ attributes.</p>
+ <p>This attribute is <strong>required</strong> in majority of
+ configurations. See <strong>allRolesMode</strong> attribute for
+ a rare case when it can be omitted.</p>
+ </td></tr><tr><td align="left" valign="center"><strong><code>userTable</code></strong></td><td align="left" valign="center">
+ <p>Name of the "users" table, which must contain columns named
+ by the <code>userNameCol</code> and <code>userCredCol</code>
+ attributes.</p>
+ </td></tr><tr><td align="left" valign="center"><code>X509UsernameRetrieverClassName</code></td><td align="left" valign="center">
+ <p>When using X509 client certificates, this specifies the class name
+ that will be used to retrieve the user name from the certificate.
+ The class must implement the
+ <code>org.apache.catalina.realm.X509UsernameRetriever</code>
+ interface. The default is to use the certificate's SubjectDN
+ as the username.</p>
+ </td></tr></table>
+
+ <p>See the <a href="../realm-howto.html">Container-Managed Security Guide</a> for more
+ information on setting up container managed security using the
+ JDBC Database Realm component.</p>
+
+ </blockquote></td></tr></table>
+
+
+ <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="DataSource Database Realm - org.apache.catalina.realm.DataSourceRealm"><!--()--></a><a name="DataSource_Database_Realm_-_org.apache.catalina.realm.DataSourceRealm"><strong>DataSource Database Realm - org.apache.catalina.realm.DataSourceRealm</strong></a></font></td></tr><tr><td><blockquote>
+
+ <p>The <strong>DataSource Database Realm</strong> connects Catalina to
+ a relational database, accessed through a JNDI named JDBC DataSource
+ to perform lookups of usernames, passwords, and their associated
+ roles. Because the lookup is done each time that it is required,
+ changes to the database will be immediately reflected in the
+ information used to authenticate new logins.</p>
+
+ <p>The JDBC Realm uses a single db connection. This requires that
+ realm based authentication be synchronized, i.e. only one authentication
+ can be done at a time. This could be a bottleneck for applications
+ with high volumes of realm based authentications.</p>
+
+ <p>The DataSource Database Realm supports simultaneous realm based
+ authentications and allows the underlying JDBC DataSource to
+ handle optimizations like database connection pooling.</p>
+
+ <p>A rich set of additional attributes lets you configure the name
+ of the JNDI JDBC DataSource, as well as the table and
+ column names used to retrieve the required information:</p>
+
+ <table border="1" cellpadding="5"><tr><th width="15%" bgcolor="#023264"><font color="#ffffff">Attribute</font></th><th width="85%" bgcolor="#023264"><font color="#ffffff">Description</font></th></tr><tr><td align="left" valign="center"><code>allRolesMode</code></td><td align="left" valign="center">
+ <p>This attribute controls how the special role name <code>*</code> is
+ handled when processing authorization constraints in web.xml. By
+ default, the specification compliant value of <code>strict</code> is
+ used which means that the user must be assigned one of the roles defined
+ in web.xml. The alternative values are <code>authOnly</code> which means
+ that the user must be authenticated but no check is made for assigned
+ roles and <code>strictAuthOnly</code> which means that the user must be
+ authenticated and no check will be made for assigned roles unless roles
+ are defined in web.xml in which case the user must be assigned at least
+ one of those roles.</p>
+ <p>When this attribute has the value of <code>authOnly</code> or
+ <code>strictAuthOnly</code>, the <strong>roleNameCol</strong> and
+ <strong>userRoleTable</strong> attributes become optional. If those two
+ attributes are omitted, the user's roles will not be loaded by this
+ Realm.</p>
+ </td></tr><tr><td align="left" valign="center"><strong><code>dataSourceName</code></strong></td><td align="left" valign="center">
+ <p>The name of the JNDI JDBC DataSource for this Realm.</p>
+ </td></tr><tr><td align="left" valign="center"><code>digest</code></td><td align="left" valign="center">
+ <p>The name of the <code>MessageDigest</code> algorithm used
+ to encode user passwords stored in the database. If not specified,
+ user passwords are assumed to be stored in clear-text.</p>
+ </td></tr><tr><td align="left" valign="center"><code>localDataSource</code></td><td align="left" valign="center">
+ <p>When the realm is nested inside a Context element, this allows the
+ realm to use a DataSource defined for the Context rather than a global
+ DataSource. If not specified, the default is <code>false</code>: use a
+ global DataSource.</p>
+ </td></tr><tr><td align="left" valign="center"><code>roleNameCol</code></td><td align="left" valign="center">
+ <p>Name of the column, in the "user roles" table, which contains
+ a role name assigned to the corresponding user.</p>
+ <p>This attribute is <strong>required</strong> in majority of
+ configurations. See <strong>allRolesMode</strong> attribute for
+ a rare case when it can be omitted.</p>
+ </td></tr><tr><td align="left" valign="center"><strong><code>userCredCol</code></strong></td><td align="left" valign="center">
+ <p>Name of the column, in the "users" table, which contains
+ the user's credentials (i.e. password(. If a value for the
+ <code>digest</code> attribute is specified, this component
+ will assume that the passwords have been encoded with the
+ specified algorithm. Otherwise, they will be assumed to be
+ in clear text.</p>
+ </td></tr><tr><td align="left" valign="center"><strong><code>userNameCol</code></strong></td><td align="left" valign="center">
+ <p>Name of the column, in the "users" and "user roles" table,
+ that contains the user's username.</p>
+ </td></tr><tr><td align="left" valign="center"><code>userRoleTable</code></td><td align="left" valign="center">
+ <p>Name of the "user roles" table, which must contain columns
+ named by the <code>userNameCol</code> and <code>roleNameCol</code>
+ attributes.</p>
+ <p>This attribute is <strong>required</strong> in majority of
+ configurations. See <strong>allRolesMode</strong> attribute for
+ a rare case when it can be omitted.</p>
+ </td></tr><tr><td align="left" valign="center"><strong><code>userTable</code></strong></td><td align="left" valign="center">
+ <p>Name of the "users" table, which must contain columns named
+ by the <code>userNameCol</code> and <code>userCredCol</code>
+ attributes.</p>
+ </td></tr><tr><td align="left" valign="center"><code>X509UsernameRetrieverClassName</code></td><td align="left" valign="center">
+ <p>When using X509 client certificates, this specifies the class name
+ that will be used to retrieve the user name from the certificate.
+ The class must implement the
+ <code>org.apache.catalina.realm.X509UsernameRetriever</code>
+ interface. The default is to use the certificate's SubjectDN
+ as the username.</p>
+ </td></tr></table>
+
+ <p>See the <a href="../realm-howto.html#DataSourceRealm">
+ DataSource Realm HOW-TO</a> for more information on setting up container
+ managed security using the DataSource Database Realm component.</p>
+
+ </blockquote></td></tr></table>
+
+
+ <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="JNDI Directory Realm - org.apache.catalina.realm.JNDIRealm"><!--()--></a><a name="JNDI_Directory_Realm_-_org.apache.catalina.realm.JNDIRealm"><strong>JNDI Directory Realm - org.apache.catalina.realm.JNDIRealm</strong></a></font></td></tr><tr><td><blockquote>
+
+ <p>The <strong>JNDI Directory Realm</strong> connects Catalina to
+ an LDAP Directory, accessed through an appropriate JNDI driver,
+ that stores usernames, passwords, and their associated
+ roles. Changes to the directory are immediately reflected in the
+ information used to authenticate new logins.</p>
+
+
+ <p>The directory realm supports a variety of approaches to using
+ LDAP for authentication:</p>
+
+ <ul>
+ <li>The realm can either use a pattern to determine the
+ distinguished name (DN) of the user's directory entry, or search
+ the directory to locate that entry.
+ </li>
+
+ <li>The realm can authenticate the user either by binding to the
+ directory with the DN of the user's entry and the password
+ presented by the user, or by retrieving the password from the
+ user's entry and performing a comparison locally.
+ </li>
+
+ <li>Roles may be represented in the directory as explicit entries
+ found by a directory search (e.g. group entries of which the user
+ is a member), as the values of an attribute in the user's entry,
+ or both.
+ </li>
+ </ul>
+
+ <p> A rich set of additional attributes lets you configure the
+ required behaviour as well as the connection to the underlying
+ directory and the element and attribute names used to retrieve
+ information from the directory:</p>
+
+ <table border="1" cellpadding="5"><tr><th width="15%" bgcolor="#023264"><font color="#ffffff">Attribute</font></th><th width="85%" bgcolor="#023264"><font color="#ffffff">Description</font></th></tr><tr><td align="left" valign="center"><code>adCompat</code></td><td align="left" valign="center">
+ <p>Microsoft Active Directory often returns referrals.
+ When iterating over NamingEnumerations these lead to
+ PartialResultExceptions. If you want us to ignore those exceptions,
+ set this attribute to "true". Unfortunately there's no stable way
+ to detect, if the Exceptions really come from an AD referral.
+ The default value is "false".</p>
+ </td></tr><tr><td align="left" valign="center"><code>allRolesMode</code></td><td align="left" valign="center">
+ <p>This attribute controls how the special role name <code>*</code> is
+ handled when processing authorization constraints in web.xml. By
+ default, the specification compliant value of <code>strict</code> is
+ used which means that the user must be assigned one of the roles defined
+ in web.xml. The alternative values are <code>authOnly</code> which means
+ that the user must be authenticated but no check is made for assigned
+ roles and <code>strictAuthOnly</code> which means that the user must be
+ authenticated and no check will be made for assigned roles unless roles
+ are defined in web.xml in which case the user must be assigned at least
+ one of those roles.</p>
+ </td></tr><tr><td align="left" valign="center"><code>alternateURL</code></td><td align="left" valign="center">
+ <p>If a socket connection can not be made to the provider at
+ the <code>connectionURL</code> an attempt will be made to use the
+ <code>alternateURL</code>.</p>
+ </td></tr><tr><td align="left" valign="center"><code>authentication</code></td><td align="left" valign="center">
+ <p>A string specifying the type of authentication to use.
+ "none", "simple", "strong" or a provider specific definition
+ can be used. If no value is given the providers default is used.</p>
+ </td></tr><tr><td align="left" valign="center"><code>commonRole</code></td><td align="left" valign="center">
+ <p>A role name assigned to each successfully authenticated user in
+ addition to the roles retrieved from LDAP. If not specified, only
+ the roles retrieved via LDAP are used.</p>
+ </td></tr><tr><td align="left" valign="center"><code>connectionName</code></td><td align="left" valign="center">
+ <p>The directory username to use when establishing a
+ connection to the directory for LDAP search operations. If not
+ specified an anonymous connection is made, which is often
+ sufficient unless you specify the <code>userPassword</code>
+ property.</p>
+ </td></tr><tr><td align="left" valign="center"><code>connectionPassword</code></td><td align="left" valign="center">
+ <p>The directory password to use when establishing a
+ connection to the directory for LDAP search operations. If not
+ specified an anonymous connection is made, which is often
+ sufficient unless you specify the <code>userPassword</code>
+ property.</p>
+ </td></tr><tr><td align="left" valign="center"><code>connectionTimeout</code></td><td align="left" valign="center">
+ <p>The timeout in milliseconds to use when establishing the connection
+ to the LDAP directory. If not specified, a value of 5000 (5 seconds) is
+ used.</p>
+ </td></tr><tr><td align="left" valign="center"><strong><code>connectionURL</code></strong></td><td align="left" valign="center">
+ <p>The connection URL to be passed to the JNDI driver when
+ establishing a connection to the directory.</p>
+ </td></tr><tr><td align="left" valign="center"><code>contextFactory</code></td><td align="left" valign="center">
+ <p>Fully qualified Java class name of the factory class used
+ to acquire our JNDI <code>InitialContext</code>. By default,
+ assumes that the standard JNDI LDAP provider will be utilized.</p>
+ </td></tr><tr><td align="left" valign="center"><code>derefAliases</code></td><td align="left" valign="center">
+ <p>A string specifying how aliases are to be dereferenced during
+ search operations. The allowed values are "always", "never",
+ "finding" and "searching". If not specified, "always" is used.</p>
+ </td></tr><tr><td align="left" valign="center"><code>digest</code></td><td align="left" valign="center">
+ <p>The digest algorithm to apply to the plaintext password offered
+ by the user before comparing it with the value retrieved from the
+ directory. Valid values are those accepted for the algorithm name
+ by the <code>java.security.MessageDigest</code> class. If not
+ specified the plaintext password is assumed to be retrieved. Not
+ required unless <code>userPassword</code> is specified</p>
+ </td></tr><tr><td align="left" valign="center"><code>protocol</code></td><td align="left" valign="center">
+ <p>A string specifying the security protocol to use. If not given
+ the providers default is used.</p>
+ </td></tr><tr><td align="left" valign="center"><code>referrals</code></td><td align="left" valign="center">
+ <p>How do we handle JNDI referrals? Allowed values are
+ "ignore", "follow", or "throw" (see javax.naming.Context.REFERRAL
+ for more information).
+ Microsoft Active Directory often returns referrals.
+ If you need to follow them set referrals to "follow".
+ Caution: if your DNS is not part of AD, the LDAP client lib might try
+ to resolve your domain name in DNS to find another LDAP server.</p>
+ </td></tr><tr><td align="left" valign="center"><code>roleBase</code></td><td align="left" valign="center">
+ <p>The base directory entry for performing role searches. If
+ not specified the top-level element in the directory context
+ will be used.</p>
+ </td></tr><tr><td align="left" valign="center"><code>roleName</code></td><td align="left" valign="center">
+ <p>The name of the attribute that contains role names in the
+ directory entries found by a role search. In addition you can
+ use the <code>userRoleName</code> property to specify the name
+ of an attribute, in the user's entry, containing additional
+ role names. If <code>roleName</code> is not specified a role
+ search does not take place, and roles are taken only from the
+ user's entry.</p>
+ </td></tr><tr><td align="left" valign="center"><code>roleSearch</code></td><td align="left" valign="center">
+ <p>The LDAP filter expression used for performing role
+ searches. Use <code>{0}</code> to substitute the
+ distinguished name (DN) of the user, and/or <code>{1}</code> to
+ substitute the username. If not specified a role search does
+ not take place and roles are taken only from the attribute in
+ the user's entry specified by the <code>userRoleName</code>
+ property.</p>
+ </td></tr><tr><td align="left" valign="center"><code>roleSubtree</code></td><td align="left" valign="center">
+ <p>Set to <code>true</code> if you want to search the entire
+ subtree of the element specified by the <code>roleBase</code>
+ property for role entries associated with the user. The
+ default value of <code>false</code> causes only the top level
+ to be searched.</p>
+ </td></tr><tr><td align="left" valign="center"><code>userBase</code></td><td align="left" valign="center">
+ <p>The base element for user searches performed using the
+ <code>userSearch</code> expression. Not used if you are using
+ the <code>userPattern</code> expression.</p>
+ </td></tr><tr><td align="left" valign="center"><code>userPassword</code></td><td align="left" valign="center">
+ <p>Name of the attribute in the user's entry containing the
+ user's password. If you specify this value, JNDIRealm will
+ bind to the directory using the values specified by
+ <code>connectionName</code> and
+ <code>connectionPassword</code> properties, and retrieve the
+ corresponding attribute for comparison to the value specified
+ by the user being authenticated. If you do
+ <strong>not</strong> specify this value, JNDIRealm will
+ attempt a simple bind to the directory using the DN of the
+ user's entry and the password presented by the user, with a
+ successful bind being interpreted as an authenticated
+ user.</p>
+ </td></tr><tr><td align="left" valign="center"><code>userPattern</code></td><td align="left" valign="center">
+ <p>Pattern for the distinguished name (DN) of the user's
+ directory entry, with <code>{0}</code> marking where the
+ actual username should be inserted. You can use this property
+ instead of <code>userSearch</code>, <code>userSubtree</code>
+ and <code>userBase</code> when the distinguished name contains
+ the username and is otherwise the same for all users.</p>
+ </td></tr><tr><td align="left" valign="center"><code>userRoleName</code></td><td align="left" valign="center">
+ <p>The name of an attribute in the user's directory entry
+ containing zero or more values for the names of roles assigned
+ to this user. In addition you can use the
+ <code>roleName</code> property to specify the name of an
+ attribute to be retrieved from individual role entries found
+ by searching the directory. If <code>userRoleName</code> is
+ not specified all the roles for a user derive from the role
+ search.</p>
+ </td></tr><tr><td align="left" valign="center"><code>userSearch</code></td><td align="left" valign="center">
+ <p>The LDAP filter expression to use when searching for a
+ user's directory entry, with <code>{0}</code> marking where
+ the actual username should be inserted. Use this property
+ (along with the <code>userBase</code> and
+ <code>userSubtree</code> properties) instead of
+ <code>userPattern</code> to search the directory for the
+ user's entry.</p>
+ </td></tr><tr><td align="left" valign="center"><code>userSubtree</code></td><td align="left" valign="center">
+ <p>Set to <code>true</code> if you want to search the entire
+ subtree of the element specified by the <code>userBase</code>
+ property for the user's entry. The default value of
+ <code>false</code> causes only the top level to be searched.
+ Not used if you are using the <code>userPattern</code>
+ expression.</p>
+ </td></tr><tr><td align="left" valign="center"><code>X509UsernameRetrieverClassName</code></td><td align="left" valign="center">
+ <p>When using X509 client certificates, this specifies the class name
+ that will be used to retrieve the user name from the certificate.
+ The class must implement the
+ <code>org.apache.catalina.realm.X509UsernameRetriever</code>
+ interface. The default is to use the certificate's SubjectDN
+ as the username.</p>
+ </td></tr></table>
+
+ <p>See the <a href="../realm-howto.html">Container-Managed Security Guide</a> for more
+ information on setting up container managed security using the
+ JNDI Directory Realm component.</p>
+
+ </blockquote></td></tr></table>
+
+
+ <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="UserDatabase Realm - org.apache.catalina.realm.UserDatabaseRealm"><!--()--></a><a name="UserDatabase_Realm_-_org.apache.catalina.realm.UserDatabaseRealm"><strong>UserDatabase Realm - org.apache.catalina.realm.UserDatabaseRealm</strong></a></font></td></tr><tr><td><blockquote>
+
+ <p>The <strong>UserDatabase Realm</strong> is a Realm implementation
+ that is based on a UserDatabase resource made available through the global
+ JNDI resources configured for this Tomcat instance.</p>
+
+ <p>The UserDatabase Realm implementation supports the following
+ additional attributes:</p>
+
+ <table border="1" cellpadding="5"><tr><th width="15%" bgcolor="#023264"><font color="#ffffff">Attribute</font></th><th width="85%" bgcolor="#023264"><font color="#ffffff">Description</font></th></tr><tr><td align="left" valign="center"><code>allRolesMode</code></td><td align="left" valign="center">
+ <p>This attribute controls how the special role name <code>*</code> is
+ handled when processing authorization constraints in web.xml. By
+ default, the specification compliant value of <code>strict</code> is
+ used which means that the user must be assigned one of the roles defined
+ in web.xml. The alternative values are <code>authOnly</code> which means
+ that the user must be authenticated but no check is made for assigned
+ roles and <code>strictAuthOnly</code> which means that the user must be
+ authenticated and no check will be made for assigned roles unless roles
+ are defined in web.xml in which case the user must be assigned at least
+ one of those roles.</p>
+ </td></tr><tr><td align="left" valign="center"><strong><code>resourceName</code></strong></td><td align="left" valign="center">
+ <p>The name of the global <code>UserDatabase</code> resource
+ that this realm will use for user, password and role information.</p>
+ </td></tr><tr><td align="left" valign="center"><code>X509UsernameRetrieverClassName</code></td><td align="left" valign="center">
+ <p>When using X509 client certificates, this specifies the class name
+ that will be used to retrieve the user name from the certificate.
+ The class must implement the
+ <code>org.apache.catalina.realm.X509UsernameRetriever</code>
+ interface. The default is to use the certificate's SubjectDN
+ as the username.</p>
+ </td></tr></table>
+
+ <p>See the
+ <a href="../realm-howto.html">Container-Managed Security Guide</a> for more
+ information on setting up container managed security using the UserDatabase
+ Realm component and the
+ <a href="../jndi-resources-howto.html">JNDI resources how-to</a> for more
+ information on how to configure a UserDatabase resource.</p>
+
+ </blockquote></td></tr></table>
+
+
+ <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Memory Based Realm - org.apache.catalina.realm.MemoryRealm"><!--()--></a><a name="Memory_Based_Realm_-_org.apache.catalina.realm.MemoryRealm"><strong>Memory Based Realm - org.apache.catalina.realm.MemoryRealm</strong></a></font></td></tr><tr><td><blockquote>
+
+ <p>The <strong>Memory Based Realm</strong> is a simple Realm implementation
+ that reads user information from an XML format, and represents it as a
+ collection of Java objects in memory. This implementation is intended
+ solely to get up and running with container managed security - it is NOT
+ intended for production use. As such, there are no mechanisms for
+ updating the in-memory collection of users when the content of the
+ underlying data file is changed.</p>
+
+ <p>The Memory Based Realm implementation supports the following
+ additional attributes:</p>
+
+ <table border="1" cellpadding="5"><tr><th width="15%" bgcolor="#023264"><font color="#ffffff">Attribute</font></th><th width="85%" bgcolor="#023264"><font color="#ffffff">Description</font></th></tr><tr><td align="left" valign="center"><code>allRolesMode</code></td><td align="left" valign="center">
+ <p>This attribute controls how the special role name <code>*</code> is
+ handled when processing authorization constraints in web.xml. By
+ default, the specification compliant value of <code>strict</code> is
+ used which means that the user must be assigned one of the roles defined
+ in web.xml. The alternative values are <code>authOnly</code> which means
+ that the user must be authenticated but no check is made for assigned
+ roles and <code>strictAuthOnly</code> which means that the user must be
+ authenticated and no check will be made for assigned roles unless roles
+ are defined in web.xml in which case the user must be assigned at least
+ one of those roles.</p>
+ </td></tr><tr><td align="left" valign="center"><code>digest</code></td><td align="left" valign="center">
+ <p>The digest algorithm used to store passwords in non-plaintext
+ formats. Valid values are those accepted for the algorithm name by the
+ <code>java.security.MessageDigest</code> class. If not specified,
+ passwords are stored in clear text.</p>
+ </td></tr><tr><td align="left" valign="center"><code>pathname</code></td><td align="left" valign="center">
+ <p>Absolute or relative (to $CATALINA_BASE) pathname to the XML file
+ containing our user information. See below for details on the
+ XML element format required. If no pathname is specified, the
+ default value is <code>conf/tomcat-users.xml</code>.</p>
+ </td></tr><tr><td align="left" valign="center"><code>X509UsernameRetrieverClassName</code></td><td align="left" valign="center">
+ <p>When using X509 client certificates, this specifies the class name
+ that will be used to retrieve the user name from the certificate.
+ The class must implement the
+ <code>org.apache.catalina.realm.X509UsernameRetriever</code>
+ interface. The default is to use the certificate's SubjectDN
+ as the username.</p>
+ </td></tr></table>
+
+ <p>The XML document referenced by the <code>pathname</code> attribute must
+ conform to the following requirements:</p>
+ <ul>
+ <li>The root (outer) element must be <code><tomcat-users></code>.
+ </li>
+ <li>Each authorized user must be represented by a single XML element
+ <code><user></code>, nested inside the root element.</li>
+ <li>Each <code><user></code> element must have the following
+ attributes:
+ <ul>
+ <li><strong>name</strong> - Username of this user (must be unique
+ within this file).</li>
+ <li><strong>password</strong> - Password of this user (in
+ clear text).</li>
+ <li><strong>roles</strong> - Comma-delimited list of the role names
+ assigned to this user.</li>
+ </ul></li>
+ </ul>
+
+ <p>See the <a href="../realm-howto.html">Container-Managed Security Guide</a> for more
+ information on setting up container managed security using the
+ Memory Based Realm component.</p>
+
+ </blockquote></td></tr></table>
+
+
+ <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="JAAS Realm - org.apache.catalina.realm.JAASRealm"><!--()--></a><a name="JAAS_Realm_-_org.apache.catalina.realm.JAASRealm"><strong>JAAS Realm - org.apache.catalina.realm.JAASRealm</strong></a></font></td></tr><tr><td><blockquote>
+
+ <p><strong>JAASRealm</strong> is an implementation of the Tomcat 6
+ <code>Realm</code> interface that authenticates users through the Java
+ Authentication & Authorization Service (JAAS) framework which is now
+ provided as part of the standard J2SE API.</p>
+
+ <p>Using JAASRealm gives the developer the ability to combine practically
+ any conceivable security realm with Tomcat's CMA.</p>
+
+ <p>JAASRealm is prototype for Tomcat of the JAAS-based J2EE authentication
+ framework for J2EE v1.4, based on the <a href="http://www.jcp.org/en/jsr/detail?id=196">JCP Specification Request
+ 196</a> to enhance container-managed security and promote 'pluggable'
+ authentication mechanisms whose implementations would be
+ container-independent.</p>
+
+ <p>Based on the JAAS login module and principal
+ (see <code>javax.security.auth.spi.LoginModule</code> and
+ <code>javax.security.Principal</code>), you can develop your own security
+ mechanism or wrap another third-party mechanism for integration with the CMA
+ as implemented by Tomcat.</p>
+
+ <p>The JAAS Realm implementation supports the following additional
+ attributes:</p>
+
+ <table border="1" cellpadding="5"><tr><th width="15%" bgcolor="#023264"><font color="#ffffff">Attribute</font></th><th width="85%" bgcolor="#023264"><font color="#ffffff">Description</font></th></tr><tr><td align="left" valign="center"><code>allRolesMode</code></td><td align="left" valign="center">
+ <p>This attribute controls how the special role name <code>*</code> is
+ handled when processing authorization constraints in web.xml. By
+ default, the specification compliant value of <code>strict</code> is
+ used which means that the user must be assigned one of the roles defined
+ in web.xml. The alternative values are <code>authOnly</code> which means
+ that the user must be authenticated but no check is made for assigned
+ roles and <code>strictAuthOnly</code> which means that the user must be
+ authenticated and no check will be made for assigned roles unless roles
+ are defined in web.xml in which case the user must be assigned at least
+ one of those roles.</p>
+ </td></tr><tr><td align="left" valign="center"><strong><code>appName</code></strong></td><td align="left" valign="center">
+ <p>The name of the application as configured in your login configuration
+ file
+ (<a href="http://docs.oracle.com/javase/1.4.2/docs/guide/security/jaas/tutorials/LoginConfigFile.html">JAAS LoginConfig</a>).</p>
+ </td></tr><tr><td align="left" valign="center"><strong><code>userClassNames</code></strong></td><td align="left" valign="center">
+ <p>A comma-separated list of the names of the classes that you have made
+ for your user <code>Principals</code>.</p>
+ </td></tr><tr><td align="left" valign="center"><code>roleClassNames</code></td><td align="left" valign="center">
+ <p>A comma-separated list of the names of the classes that you have made
+ for your role <code>Principals</code>.</p>
+ </td></tr><tr><td align="left" valign="center"><code>useContextClassLoader</code></td><td align="left" valign="center">
+ <p>Instructs JAASRealm to use the context class loader for loading the
+ user-specified <code>LoginModule</code> class and associated
+ <code>Principal</code> classes. The default value is <code>true</code>,
+ which is backwards-compatible with the way Tomcat 5 works. To load
+ classes using the container's classloader, specify
+ <code>false</code>.</p>
+ </td></tr><tr><td align="left" valign="center"><code>X509UsernameRetrieverClassName</code></td><td align="left" valign="center">
+ <p>When using X509 client certificates, this specifies the class name
+ that will be used to retrieve the user name from the certificate.
+ The class must implement the
+ <code>org.apache.catalina.realm.X509UsernameRetriever</code>
+ interface. The default is to use the certificate's SubjectDN
+ as the username.</p>
+ </td></tr></table>
+
+ <p>See the <a href="../realm-howto.html">Container-Managed Security
+ Guide</a> for more information on setting up container managed security
+ using the JAAS Realm component.</p>
+
+ </blockquote></td></tr></table>
+
+
+ <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Combined Realm - org.apache.catalina.realm.CombinedRealm"><!--()--></a><a name="Combined_Realm_-_org.apache.catalina.realm.CombinedRealm"><strong>Combined Realm - org.apache.catalina.realm.CombinedRealm</strong></a></font></td></tr><tr><td><blockquote>
+
+ <p><strong>CombinedRealm</strong> is an implementation of the Tomcat 6
+ <code>Realm</code> interface that authenticates users through one or more
+ sub-Realms.</p>
+
+ <p>Using CombinedRealm gives the developer the ability to combine multiple
+ Realms of the same or different types. This can be used to authenticate
+ against different sources, provide fall back in case one Realm fails or for
+ any other purpose that requires multiple Realms.</p>
+
+ <p>Sub-realms are defined by nesting <code>Realm</code> elements inside the
+ <code>Realm</code> element that defines the CombinedRealm. Authentication
+ will be attempted against each <code>Realm</code> in the order they are
+ listed. Authentication against any Realm will be sufficient to authenticate
+ the user.</p>
+
+ <p>See the <a href="../realm-howto.html">Container-Managed Security
+ Guide</a> for more information on setting up container managed security
+ using the CombinedRealm component.</p>
+
+ <p>The CombinedRealm implementation supports the following additional
+ attributes.</p>
+
+ <table border="1" cellpadding="5"><tr><th width="15%" bgcolor="#023264"><font color="#ffffff">Attribute</font></th><th width="85%" bgcolor="#023264"><font color="#ffffff">Description</font></th></tr><tr><td align="left" valign="center"><code>allRolesMode</code></td><td align="left" valign="center">
+ <p>This attribute controls how the special role name <code>*</code> is
+ handled when processing authorization constraints in web.xml. By
+ default, the specification compliant value of <code>strict</code> is
+ used which means that the user must be assigned one of the roles defined
+ in web.xml. The alternative values are <code>authOnly</code> which means
+ that the user must be authenticated but no check is made for assigned
+ roles and <code>strictAuthOnly</code> which means that the user must be
+ authenticated and no check will be made for assigned roles unless roles
+ are defined in web.xml in which case the user must be assigned at least
+ one of those roles.</p>
+ </td></tr></table>
+ </blockquote></td></tr></table>
+
+
+ <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="LockOut Realm - org.apache.catalina.realm.LockOutRealm"><!--()--></a><a name="LockOut_Realm_-_org.apache.catalina.realm.LockOutRealm"><strong>LockOut Realm - org.apache.catalina.realm.LockOutRealm</strong></a></font></td></tr><tr><td><blockquote>
+
+ <p><strong>LockOutRealm</strong> is an implementation of the Tomcat 6
+ <code>Realm</code> interface that extends the CombinedRealm to provide lock
+ out functionality to provide a user lock out mechanism if there are too many
+ failed authentication attempts in a given period of time.</p>
+
+ <p>To ensure correct operation, there is a reasonable degree of
+ synchronization in this Realm.</p>
+
+ <p>This Realm does not require modification to the underlying Realms or the
+ associated user storage mechanisms. It achieves this by recording all failed
+ logins, including those for users that do not exist. To prevent a DOS by
+ deliberating making requests with invalid users (and hence causing this
+ cache to grow) the size of the list of users that have failed authentication
+ is limited.</p>
+
+ <p>Sub-realms are defined by nesting <code>Realm</code> elements inside the
+ <code>Realm</code> element that defines the LockOutRealm. Authentication
+ will be attempted against each <code>Realm</code> in the order they are
+ listed. Authentication against any Realm will be sufficient to authenticate
+ the user.</p>
+
+ <p>The LockOutRealm implementation supports the following additional
+ attributes.</p>
+
+ <table border="1" cellpadding="5"><tr><th width="15%" bgcolor="#023264"><font color="#ffffff">Attribute</font></th><th width="85%" bgcolor="#023264"><font color="#ffffff">Description</font></th></tr><tr><td align="left" valign="center"><code>allRolesMode</code></td><td align="left" valign="center">
+ <p>This attribute controls how the special role name <code>*</code> is
+ handled when processing authorization constraints in web.xml. By
+ default, the specification compliant value of <code>strict</code> is
+ used which means that the user must be assigned one of the roles defined
+ in web.xml. The alternative values are <code>authOnly</code> which means
+ that the user must be authenticated but no check is made for assigned
+ roles and <code>strictAuthOnly</code> which means that the user must be
+ authenticated and no check will be made for assigned roles unless roles
+ are defined in web.xml in which case the user must be assigned at least
+ one of those roles.</p>
+ </td></tr><tr><td align="left" valign="center"><code>cacheRemovalWarningTime</code></td><td align="left" valign="center">
+ <p>If a failed user is removed from the cache because the cache is too
+ big before it has been in the cache for at least this period of time (in
+ seconds) a warning message will be logged. Defaults to 3600 (1 hour).</p>
+ </td></tr><tr><td align="left" valign="center"><code>cacheSize</code></td><td align="left" valign="center">
+ <p>Number of users that have failed authentication to keep in cache. Over
+ time the cache will grow to this size and may not shrink. Defaults to
+ 1000.</p>
+ </td></tr><tr><td align="left" valign="center"><code>failureCount</code></td><td align="left" valign="center">
+ <p>The number of times in a row a user has to fail authentication to be
+ locked out. Defaults to 5.</p>
+ </td></tr><tr><td align="left" valign="center"><code>lockOutTime</code></td><td align="left" valign="center">
+ <p>The time (in seconds) a user is locked out for after too many
+ authentication failures. Defaults to 300 (5 minutes).</p>
+ </td></tr></table>
+
+ <p>See the <a href="../realm-howto.html">Container-Managed Security
+ Guide</a> for more information on setting up container managed security
+ using the LockOutRealm component.</p>
+
+ </blockquote></td></tr></table>
+
+</blockquote></td></tr></table><table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Nested Components"><!--()--></a><a name="Nested_Components"><strong>Nested Components</strong></a></font></td></tr><tr><td><blockquote>
+
+ <h3>CombinedRealm Implementation</h3>
+
+ <p>If you are using the <em>CombinedRealm Implementation</em> or a Realm
+ that extends the CombinedRealm, e.g. the LockOutRealm,
+ <strong><Realm></strong> elements may be nested inside it.</p>
+
+ <h3>Other Realm Implementations</h3>
+
+ <p>No other Realm implementation supports nested components.</p>
+
+</blockquote></td></tr></table><table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Special Features"><!--()--></a><a name="Special_Features"><strong>Special Features</strong></a></font></td></tr><tr><td><blockquote>
+
+ <p>See <a href="host.html">Single Sign On</a> for information about
+ configuring Single Sign On support for a virtual host.</p>
+
+</blockquote></td></tr></table></td></tr><!--FOOTER SEPARATOR--><tr><td colspan="2"><hr noshade="noshade" size="1"></td></tr><!--PAGE FOOTER--><tr><td colspan="2"><div align="center"><font color="#525D76" size="-1"><em>
+ Copyright © 1999-2014, Apache Software Foundation
+ </em></font></div></td></tr></table></body></html>
\ No newline at end of file
diff --git a/tomcat-uid/webapps/docs/config/resources.html b/tomcat-uid/webapps/docs/config/resources.html
new file mode 100644
index 0000000..bf8c9ce
--- /dev/null
+++ b/tomcat-uid/webapps/docs/config/resources.html
@@ -0,0 +1,74 @@
+<html><head><META http-equiv="Content-Type" content="text/html; charset=iso-8859-1"><title>Apache Tomcat Configuration Reference (6.0.39) - The Resources Component</title><meta name="author" content="Remy Maucherat"><style type="text/css" media="print">
+ .noPrint {display: none;}
+ td#mainBody {width: 100%;}
+ </style></head><body bgcolor="#ffffff" text="#000000" link="#525D76" alink="#525D76" vlink="#525D76"><table border="0" width="100%" cellspacing="0"><!--PAGE HEADER--><tr><td><!--PROJECT LOGO--><a href="http://tomcat.apache.org/"><img src="../images/tomcat.gif" align="right" alt="
+ The Apache Tomcat Servlet/JSP Container
+ " border="0"></a></td><td><h1><font face="arial,helvetica,sanserif">Apache Tomcat 6.0</font></h1><font face="arial,helvetica,sanserif">Version 6.0.39, Jan 27 2014</font></td><td><!--APACHE LOGO--><a href="http://www.apache.org/"><img src="../images/asf-logo.gif" align="right" alt="Apache Logo" border="0"></a></td></tr></table><table border="0" width="100%" cellspacing="4"><!--HEADER SEPARATOR--><tr><td colspan="2"><hr noshade="noshade" size="1"></td></tr><tr><!--LEFT SIDE NAVIGATION--><td width="20%" valign="top" nowrap="nowrap" class="noPrint"><p><strong>Links</strong></p><ul><li><a href="../index.html">Docs Home</a></li><li><a href="index.html">Config Ref. Home</a></li></ul><p><strong>Top Level Elements</strong></p><ul><li><a href="server.html">Server</a></li><li><a href="service.html">Service</a></li></ul><p><strong>Executors</strong></p><ul><li><a href="executor.html">Executor</a></li></ul><p><strong>Connectors</strong></p><ul><li><a href="http.html">HTTP</a></li><li><a href="ajp.html">AJP</a></li></ul><p><strong>Containers</strong></p><ul><li><a href="context.html">Context</a></li><li><a href="engine.html">Engine</a></li><li><a href="host.html">Host</a></li><li><a href="cluster.html">Cluster</a></li></ul><p><strong>Nested Components</strong></p><ul><li><a href="globalresources.html">Global Resources</a></li><li><a href="listeners.html">Listeners</a></li><li><a href="loader.html">Loader</a></li><li><a href="manager.html">Manager</a></li><li><a href="realm.html">Realm</a></li><li><a href="resources.html">Resources</a></li><li><a href="valve.html">Valve</a></li></ul><p><strong>Cluster Elements</strong></p><ul><li><a href="cluster.html">Cluster</a></li><li><a href="cluster-manager.html">Manager</a></li><li><a href="cluster-channel.html">Channel</a></li><li><a href="cluster-membership.html">Channel/Membership</a></li><li><a href="cluster-sender.html">Channel/Sender</a></li><li><a href="cluster-receiver.html">Channel/Receiver</a></li><li><a href="cluster-interceptor.html">Channel/Interceptor</a></li><li><a href="cluster-valve.html">Valve</a></li><li><a href="cluster-deployer.html">Deployer</a></li><li><a href="cluster-listener.html">ClusterListener</a></li></ul><p><strong>Other</strong></p><ul><li><a href="filter.html">Filter</a></li><li><a href="systemprops.html">System properties</a></li></ul></td><!--RIGHT SIDE MAIN BODY--><td width="80%" valign="top" align="left" id="mainBody"><h1>Apache Tomcat Configuration Reference</h1><h2>The Resources Component</h2><table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Table of Contents"><!--()--></a><a name="Table_of_Contents"><strong>Table of Contents</strong></a></font></td></tr><tr><td><blockquote>
+<ul><li><a href="#Introduction">Introduction</a></li><li><a href="#Attributes">Attributes</a><ol><li><a href="#Common_Attributes">Common Attributes</a></li><li><a href="#Standard_Implementation">Standard Implementation</a></li></ol></li><li><a href="#Nested_Components">Nested Components</a></li><li><a href="#Special_Features">Special Features</a></li></ul>
+</blockquote></td></tr></table><table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Introduction"><strong>Introduction</strong></a></font></td></tr><tr><td><blockquote>
+
+ <p>The <strong>Resources</strong> element represents the <em>web
+ application static resources</em>, from which classes will be loaded,
+ HTML, JSP and the other static files will be served. This allows the webapp
+ to reside on various mediums other than the filesystem, like compressed
+ in a WAR file, in a JDBC database, or in a more advanced versioning
+ repository.</p>
+
+ <p>A unified caching engine is provided for all accesses to the webapp
+ resources made by the servlet container and web applications which use the
+ container provided mechanisms to access such resources, such as classloader
+ access, access through the <code>ServletContext</code> interface, or native
+ access through the <code>DirectoryContext</code> interface.</p>
+
+ <p><strong>Note: Running a webapp with non-filesystem based
+ Resources implementations is only possible when the webapp does not
+ rely on direct filesystem access to its own resources, and uses the methods
+ in the ServletContext interface to access them.</strong></p>
+
+ <p>A Resources element MAY be nested inside a
+ <a href="context.html">Context</a> component. If it is not included,
+ a default filesystem based Resources will be created automatically,
+ which is sufficient for most requirements.</p>
+
+</blockquote></td></tr></table><table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Attributes"><strong>Attributes</strong></a></font></td></tr><tr><td><blockquote>
+
+ <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Common Attributes"><!--()--></a><a name="Common_Attributes"><strong>Common Attributes</strong></a></font></td></tr><tr><td><blockquote>
+
+ <p>All implementations of <strong>Resources</strong>
+ support the following attributes:</p>
+
+ <table border="1" cellpadding="5"><tr><th width="15%" bgcolor="#023264"><font color="#ffffff">Attribute</font></th><th width="85%" bgcolor="#023264"><font color="#ffffff">Description</font></th></tr><tr><td align="left" valign="center"><code>className</code></td><td align="left" valign="center">
+ <p>Java class name of the implementation to use. This class must
+ implement the <code>javax.naming.directory.DirContext</code> interface.
+ It is recommended for optimal functionality and performance,
+ but not mandatory, that the class extend
+ <code>org.apache.naming.resources.BaseDirContext</code>, as well as
+ use the special object types provided in the
+ <code>org.apache.naming.resources</code> for returned objects.
+ If not specified, the standard value (defined below) will be used.</p>
+ </td></tr></table>
+
+ </blockquote></td></tr></table>
+
+
+ <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Standard Implementation"><!--()--></a><a name="Standard_Implementation"><strong>Standard Implementation</strong></a></font></td></tr><tr><td><blockquote>
+
+ <p>The standard implementation of <strong>Resources</strong> is
+ <strong>org.apache.naming.resources.FileDirContext</strong>, and
+ is configured by its parent Context element.</p>
+
+ </blockquote></td></tr></table>
+
+
+</blockquote></td></tr></table><table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Nested Components"><!--()--></a><a name="Nested_Components"><strong>Nested Components</strong></a></font></td></tr><tr><td><blockquote>
+
+ <p>No components may be nested inside a <strong>Resources</strong> element.</p>
+
+</blockquote></td></tr></table><table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Special Features"><!--()--></a><a name="Special_Features"><strong>Special Features</strong></a></font></td></tr><tr><td><blockquote>
+
+ <p>No special features are associated with a <strong>Resources</strong>
+ element.</p>
+
+</blockquote></td></tr></table></td></tr><!--FOOTER SEPARATOR--><tr><td colspan="2"><hr noshade="noshade" size="1"></td></tr><!--PAGE FOOTER--><tr><td colspan="2"><div align="center"><font color="#525D76" size="-1"><em>
+ Copyright © 1999-2014, Apache Software Foundation
+ </em></font></div></td></tr></table></body></html>
\ No newline at end of file
diff --git a/tomcat-uid/webapps/docs/config/server.html b/tomcat-uid/webapps/docs/config/server.html
new file mode 100644
index 0000000..dc55b96
--- /dev/null
+++ b/tomcat-uid/webapps/docs/config/server.html
@@ -0,0 +1,74 @@
+<html><head><META http-equiv="Content-Type" content="text/html; charset=iso-8859-1"><title>Apache Tomcat Configuration Reference (6.0.39) - The Server Component</title><meta name="author" content="Craig R. McClanahan"><style type="text/css" media="print">
+ .noPrint {display: none;}
+ td#mainBody {width: 100%;}
+ </style></head><body bgcolor="#ffffff" text="#000000" link="#525D76" alink="#525D76" vlink="#525D76"><table border="0" width="100%" cellspacing="0"><!--PAGE HEADER--><tr><td><!--PROJECT LOGO--><a href="http://tomcat.apache.org/"><img src="../images/tomcat.gif" align="right" alt="
+ The Apache Tomcat Servlet/JSP Container
+ " border="0"></a></td><td><h1><font face="arial,helvetica,sanserif">Apache Tomcat 6.0</font></h1><font face="arial,helvetica,sanserif">Version 6.0.39, Jan 27 2014</font></td><td><!--APACHE LOGO--><a href="http://www.apache.org/"><img src="../images/asf-logo.gif" align="right" alt="Apache Logo" border="0"></a></td></tr></table><table border="0" width="100%" cellspacing="4"><!--HEADER SEPARATOR--><tr><td colspan="2"><hr noshade="noshade" size="1"></td></tr><tr><!--LEFT SIDE NAVIGATION--><td width="20%" valign="top" nowrap="nowrap" class="noPrint"><p><strong>Links</strong></p><ul><li><a href="../index.html">Docs Home</a></li><li><a href="index.html">Config Ref. Home</a></li></ul><p><strong>Top Level Elements</strong></p><ul><li><a href="server.html">Server</a></li><li><a href="service.html">Service</a></li></ul><p><strong>Executors</strong></p><ul><li><a href="executor.html">Executor</a></li></ul><p><strong>Connectors</strong></p><ul><li><a href="http.html">HTTP</a></li><li><a href="ajp.html">AJP</a></li></ul><p><strong>Containers</strong></p><ul><li><a href="context.html">Context</a></li><li><a href="engine.html">Engine</a></li><li><a href="host.html">Host</a></li><li><a href="cluster.html">Cluster</a></li></ul><p><strong>Nested Components</strong></p><ul><li><a href="globalresources.html">Global Resources</a></li><li><a href="listeners.html">Listeners</a></li><li><a href="loader.html">Loader</a></li><li><a href="manager.html">Manager</a></li><li><a href="realm.html">Realm</a></li><li><a href="resources.html">Resources</a></li><li><a href="valve.html">Valve</a></li></ul><p><strong>Cluster Elements</strong></p><ul><li><a href="cluster.html">Cluster</a></li><li><a href="cluster-manager.html">Manager</a></li><li><a href="cluster-channel.html">Channel</a></li><li><a href="cluster-membership.html">Channel/Membership</a></li><li><a href="cluster-sender.html">Channel/Sender</a></li><li><a href="cluster-receiver.html">Channel/Receiver</a></li><li><a href="cluster-interceptor.html">Channel/Interceptor</a></li><li><a href="cluster-valve.html">Valve</a></li><li><a href="cluster-deployer.html">Deployer</a></li><li><a href="cluster-listener.html">ClusterListener</a></li></ul><p><strong>Other</strong></p><ul><li><a href="filter.html">Filter</a></li><li><a href="systemprops.html">System properties</a></li></ul></td><!--RIGHT SIDE MAIN BODY--><td width="80%" valign="top" align="left" id="mainBody"><h1>Apache Tomcat Configuration Reference</h1><h2>The Server Component</h2><table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Table of Contents"><!--()--></a><a name="Table_of_Contents"><strong>Table of Contents</strong></a></font></td></tr><tr><td><blockquote>
+<ul><li><a href="#Introduction">Introduction</a></li><li><a href="#Attributes">Attributes</a><ol><li><a href="#Common_Attributes">Common Attributes</a></li><li><a href="#Standard_Implementation">Standard Implementation</a></li></ol></li><li><a href="#Nested_Components">Nested Components</a></li><li><a href="#Special_Features">Special Features</a></li></ul>
+</blockquote></td></tr></table><table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Introduction"><strong>Introduction</strong></a></font></td></tr><tr><td><blockquote>
+
+ <p>A <strong>Server</strong> element represents the entire Catalina
+ servlet container. Therefore, it must be the single outermost element
+ in the <code>conf/server.xml</code> configuration file. Its attributes
+ represent the characteristics of the servlet container as a whole.</p>
+
+</blockquote></td></tr></table><table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Attributes"><strong>Attributes</strong></a></font></td></tr><tr><td><blockquote>
+
+ <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Common Attributes"><!--()--></a><a name="Common_Attributes"><strong>Common Attributes</strong></a></font></td></tr><tr><td><blockquote>
+
+ <p>All implementations of <strong>Server</strong>
+ support the following attributes:</p>
+
+ <table border="1" cellpadding="5"><tr><th width="15%" bgcolor="#023264"><font color="#ffffff">Attribute</font></th><th width="85%" bgcolor="#023264"><font color="#ffffff">Description</font></th></tr><tr><td align="left" valign="center"><code>className</code></td><td align="left" valign="center">
+ <p>Java class name of the implementation to use. This class must
+ implement the <code>org.apache.catalina.Server</code> interface.
+ If no class name is specified, the standard implementation will
+ be used.</p>
+ </td></tr><tr><td align="left" valign="center"><strong><code>port</code></strong></td><td align="left" valign="center">
+ <p>The TCP/IP port number on which this server waits for a shutdown
+ command. This connection must be initiated from the same server
+ computer that is running this instance of Tomcat. Set to <code>-1</code>
+ to disable the shutdown port.</p>
+ <p>Note: Disabling the shutdown port works well when Tomcat is started
+ using <a href="http://commons.apache.org/daemon/">Apache Commons Daemon</a>
+ (running as a service on Windows or with jsvc on un*xes). It cannot be
+ used when running Tomcat with the standard shell scripts though, as it
+ will prevent shutdown.bat|.sh and catalina.bat|.sh from stopping it
+ gracefully.</p>
+ </td></tr><tr><td align="left" valign="center"><strong><code>shutdown</code></strong></td><td align="left" valign="center">
+ <p>The command string that must be received via a TCP/IP connection
+ to the specified port number, in order to shut down Tomcat.</p>
+ </td></tr></table>
+
+ </blockquote></td></tr></table>
+
+ <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Standard Implementation"><!--()--></a><a name="Standard_Implementation"><strong>Standard Implementation</strong></a></font></td></tr><tr><td><blockquote>
+
+ <p>The standard implementation of <strong>Server</strong> is
+ <strong>org.apache.catalina.core.StandardServer</strong>.
+ It supports the following additional attributes (in addition to the
+ common attributes listed above):</p>
+
+ <table border="1" cellpadding="5"><tr><th width="15%" bgcolor="#023264"><font color="#ffffff">Attribute</font></th><th width="85%" bgcolor="#023264"><font color="#ffffff">Description</font></th></tr></table>
+
+ </blockquote></td></tr></table>
+
+</blockquote></td></tr></table><table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Nested Components"><!--()--></a><a name="Nested_Components"><strong>Nested Components</strong></a></font></td></tr><tr><td><blockquote>
+
+ <p>The following components may be nested inside a <strong>Server</strong>
+ element:</p>
+ <ul>
+ <li><a href="service.html"><strong>Service</strong></a> -
+ One or more service element.</li>
+ <li><a href="globalresources.html"><strong>GlobalNamingResources</strong></a> -
+ Configure the JNDI global resources for the server.</li>
+ </ul>
+
+</blockquote></td></tr></table><table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Special Features"><!--()--></a><a name="Special_Features"><strong>Special Features</strong></a></font></td></tr><tr><td><blockquote>
+
+ <p>There are no special features associated with a <strong>Server</strong>.
+ </p>
+
+</blockquote></td></tr></table></td></tr><!--FOOTER SEPARATOR--><tr><td colspan="2"><hr noshade="noshade" size="1"></td></tr><!--PAGE FOOTER--><tr><td colspan="2"><div align="center"><font color="#525D76" size="-1"><em>
+ Copyright © 1999-2014, Apache Software Foundation
+ </em></font></div></td></tr></table></body></html>
\ No newline at end of file
diff --git a/tomcat-uid/webapps/docs/config/service.html b/tomcat-uid/webapps/docs/config/service.html
new file mode 100644
index 0000000..d7a2f42
--- /dev/null
+++ b/tomcat-uid/webapps/docs/config/service.html
@@ -0,0 +1,62 @@
+<html><head><META http-equiv="Content-Type" content="text/html; charset=iso-8859-1"><title>Apache Tomcat Configuration Reference (6.0.39) - The Service Component</title><meta name="author" content="Craig R. McClanahan"><style type="text/css" media="print">
+ .noPrint {display: none;}
+ td#mainBody {width: 100%;}
+ </style></head><body bgcolor="#ffffff" text="#000000" link="#525D76" alink="#525D76" vlink="#525D76"><table border="0" width="100%" cellspacing="0"><!--PAGE HEADER--><tr><td><!--PROJECT LOGO--><a href="http://tomcat.apache.org/"><img src="../images/tomcat.gif" align="right" alt="
+ The Apache Tomcat Servlet/JSP Container
+ " border="0"></a></td><td><h1><font face="arial,helvetica,sanserif">Apache Tomcat 6.0</font></h1><font face="arial,helvetica,sanserif">Version 6.0.39, Jan 27 2014</font></td><td><!--APACHE LOGO--><a href="http://www.apache.org/"><img src="../images/asf-logo.gif" align="right" alt="Apache Logo" border="0"></a></td></tr></table><table border="0" width="100%" cellspacing="4"><!--HEADER SEPARATOR--><tr><td colspan="2"><hr noshade="noshade" size="1"></td></tr><tr><!--LEFT SIDE NAVIGATION--><td width="20%" valign="top" nowrap="nowrap" class="noPrint"><p><strong>Links</strong></p><ul><li><a href="../index.html">Docs Home</a></li><li><a href="index.html">Config Ref. Home</a></li></ul><p><strong>Top Level Elements</strong></p><ul><li><a href="server.html">Server</a></li><li><a href="service.html">Service</a></li></ul><p><strong>Executors</strong></p><ul><li><a href="executor.html">Executor</a></li></ul><p><strong>Connectors</strong></p><ul><li><a href="http.html">HTTP</a></li><li><a href="ajp.html">AJP</a></li></ul><p><strong>Containers</strong></p><ul><li><a href="context.html">Context</a></li><li><a href="engine.html">Engine</a></li><li><a href="host.html">Host</a></li><li><a href="cluster.html">Cluster</a></li></ul><p><strong>Nested Components</strong></p><ul><li><a href="globalresources.html">Global Resources</a></li><li><a href="listeners.html">Listeners</a></li><li><a href="loader.html">Loader</a></li><li><a href="manager.html">Manager</a></li><li><a href="realm.html">Realm</a></li><li><a href="resources.html">Resources</a></li><li><a href="valve.html">Valve</a></li></ul><p><strong>Cluster Elements</strong></p><ul><li><a href="cluster.html">Cluster</a></li><li><a href="cluster-manager.html">Manager</a></li><li><a href="cluster-channel.html">Channel</a></li><li><a href="cluster-membership.html">Channel/Membership</a></li><li><a href="cluster-sender.html">Channel/Sender</a></li><li><a href="cluster-receiver.html">Channel/Receiver</a></li><li><a href="cluster-interceptor.html">Channel/Interceptor</a></li><li><a href="cluster-valve.html">Valve</a></li><li><a href="cluster-deployer.html">Deployer</a></li><li><a href="cluster-listener.html">ClusterListener</a></li></ul><p><strong>Other</strong></p><ul><li><a href="filter.html">Filter</a></li><li><a href="systemprops.html">System properties</a></li></ul></td><!--RIGHT SIDE MAIN BODY--><td width="80%" valign="top" align="left" id="mainBody"><h1>Apache Tomcat Configuration Reference</h1><h2>The Service Component</h2><table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Table of Contents"><!--()--></a><a name="Table_of_Contents"><strong>Table of Contents</strong></a></font></td></tr><tr><td><blockquote>
+<ul><li><a href="#Introduction">Introduction</a></li><li><a href="#Attributes">Attributes</a><ol><li><a href="#Common_Attributes">Common Attributes</a></li><li><a href="#Standard_Implementation">Standard Implementation</a></li></ol></li><li><a href="#Nested_Components">Nested Components</a></li><li><a href="#Special_Features">Special Features</a></li></ul>
+</blockquote></td></tr></table><table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Introduction"><strong>Introduction</strong></a></font></td></tr><tr><td><blockquote>
+
+ <p>A <strong>Service</strong> element represents the combination of one or
+ more <strong>Connector</strong> components that share a single
+ <a href="engine.html">Engine</a> component for processing incoming
+ requests. One or more <strong>Service</strong> elements may be nested
+ inside a <a href="server.html">Server</a> element.</p>
+
+</blockquote></td></tr></table><table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Attributes"><strong>Attributes</strong></a></font></td></tr><tr><td><blockquote>
+
+ <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Common Attributes"><!--()--></a><a name="Common_Attributes"><strong>Common Attributes</strong></a></font></td></tr><tr><td><blockquote>
+
+ <p>All implementations of <strong>Service</strong>
+ support the following attributes:</p>
+
+ <table border="1" cellpadding="5"><tr><th width="15%" bgcolor="#023264"><font color="#ffffff">Attribute</font></th><th width="85%" bgcolor="#023264"><font color="#ffffff">Description</font></th></tr><tr><td align="left" valign="center"><code>className</code></td><td align="left" valign="center">
+ <p>Java class name of the implementation to use. This class must
+ implement the <code>org.apache.catalina.Service</code> interface.
+ If no class name is specified, the standard implementation will
+ be used.</p>
+ </td></tr><tr><td align="left" valign="center"><strong><code>name</code></strong></td><td align="left" valign="center">
+ <p>The display name of this <strong>Service</strong>, which will
+ be included in log messages if you utilize standard Catalina
+ components. The name of each <strong>Service</strong> that is
+ associated with a particular <a href="server.html">Server</a>
+ must be unique.</p>
+ </td></tr></table>
+
+ </blockquote></td></tr></table>
+
+ <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Standard Implementation"><!--()--></a><a name="Standard_Implementation"><strong>Standard Implementation</strong></a></font></td></tr><tr><td><blockquote>
+
+ <p>The standard implementation of <strong>Service</strong> is
+ <strong>org.apache.catalina.core.StandardService</strong>.
+ It supports the following additional attributes (in addition to the
+ common attributes listed above):</p>
+
+ <table border="1" cellpadding="5"><tr><th width="15%" bgcolor="#023264"><font color="#ffffff">Attribute</font></th><th width="85%" bgcolor="#023264"><font color="#ffffff">Description</font></th></tr></table>
+
+ </blockquote></td></tr></table>
+
+</blockquote></td></tr></table><table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Nested Components"><!--()--></a><a name="Nested_Components"><strong>Nested Components</strong></a></font></td></tr><tr><td><blockquote>
+
+ <p>The only components that may be nested inside a <strong>Service</strong>
+ element are one or more <strong>Connector</strong> elements,
+ followed by exactly one <a href="engine.html">Engine</a> element.</p>
+
+</blockquote></td></tr></table><table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Special Features"><!--()--></a><a name="Special_Features"><strong>Special Features</strong></a></font></td></tr><tr><td><blockquote>
+
+ <p>There are no special features associated with a <strong>Service</strong>.
+ </p>
+
+</blockquote></td></tr></table></td></tr><!--FOOTER SEPARATOR--><tr><td colspan="2"><hr noshade="noshade" size="1"></td></tr><!--PAGE FOOTER--><tr><td colspan="2"><div align="center"><font color="#525D76" size="-1"><em>
+ Copyright © 1999-2014, Apache Software Foundation
+ </em></font></div></td></tr></table></body></html>
\ No newline at end of file
diff --git a/tomcat-uid/webapps/docs/config/systemprops.html b/tomcat-uid/webapps/docs/config/systemprops.html
new file mode 100644
index 0000000..55eeaa8
--- /dev/null
+++ b/tomcat-uid/webapps/docs/config/systemprops.html
@@ -0,0 +1,345 @@
+<html><head><META http-equiv="Content-Type" content="text/html; charset=iso-8859-1"><title>Apache Tomcat Configuration Reference (6.0.39) - System Properties</title><style type="text/css" media="print">
+ .noPrint {display: none;}
+ td#mainBody {width: 100%;}
+ </style></head><body bgcolor="#ffffff" text="#000000" link="#525D76" alink="#525D76" vlink="#525D76"><table border="0" width="100%" cellspacing="0"><!--PAGE HEADER--><tr><td><!--PROJECT LOGO--><a href="http://tomcat.apache.org/"><img src="../images/tomcat.gif" align="right" alt="
+ The Apache Tomcat Servlet/JSP Container
+ " border="0"></a></td><td><h1><font face="arial,helvetica,sanserif">Apache Tomcat 6.0</font></h1><font face="arial,helvetica,sanserif">Version 6.0.39, Jan 27 2014</font></td><td><!--APACHE LOGO--><a href="http://www.apache.org/"><img src="../images/asf-logo.gif" align="right" alt="Apache Logo" border="0"></a></td></tr></table><table border="0" width="100%" cellspacing="4"><!--HEADER SEPARATOR--><tr><td colspan="2"><hr noshade="noshade" size="1"></td></tr><tr><!--LEFT SIDE NAVIGATION--><td width="20%" valign="top" nowrap="nowrap" class="noPrint"><p><strong>Links</strong></p><ul><li><a href="../index.html">Docs Home</a></li><li><a href="index.html">Config Ref. Home</a></li></ul><p><strong>Top Level Elements</strong></p><ul><li><a href="server.html">Server</a></li><li><a href="service.html">Service</a></li></ul><p><strong>Executors</strong></p><ul><li><a href="executor.html">Executor</a></li></ul><p><strong>Connectors</strong></p><ul><li><a href="http.html">HTTP</a></li><li><a href="ajp.html">AJP</a></li></ul><p><strong>Containers</strong></p><ul><li><a href="context.html">Context</a></li><li><a href="engine.html">Engine</a></li><li><a href="host.html">Host</a></li><li><a href="cluster.html">Cluster</a></li></ul><p><strong>Nested Components</strong></p><ul><li><a href="globalresources.html">Global Resources</a></li><li><a href="listeners.html">Listeners</a></li><li><a href="loader.html">Loader</a></li><li><a href="manager.html">Manager</a></li><li><a href="realm.html">Realm</a></li><li><a href="resources.html">Resources</a></li><li><a href="valve.html">Valve</a></li></ul><p><strong>Cluster Elements</strong></p><ul><li><a href="cluster.html">Cluster</a></li><li><a href="cluster-manager.html">Manager</a></li><li><a href="cluster-channel.html">Channel</a></li><li><a href="cluster-membership.html">Channel/Membership</a></li><li><a href="cluster-sender.html">Channel/Sender</a></li><li><a href="cluster-receiver.html">Channel/Receiver</a></li><li><a href="cluster-interceptor.html">Channel/Interceptor</a></li><li><a href="cluster-valve.html">Valve</a></li><li><a href="cluster-deployer.html">Deployer</a></li><li><a href="cluster-listener.html">ClusterListener</a></li></ul><p><strong>Other</strong></p><ul><li><a href="filter.html">Filter</a></li><li><a href="systemprops.html">System properties</a></li></ul></td><!--RIGHT SIDE MAIN BODY--><td width="80%" valign="top" align="left" id="mainBody"><h1>Apache Tomcat Configuration Reference</h1><h2>System Properties</h2><table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Table of Contents"><!--()--></a><a name="Table_of_Contents"><strong>Table of Contents</strong></a></font></td></tr><tr><td><blockquote>
+<ul><li><a href="#Introduction">Introduction</a></li><li><a href="#Clustering">Clustering</a></li><li><a href="#Expression_Language">Expression Language</a></li><li><a href="#Jasper">Jasper</a></li><li><a href="#Security">Security</a></li><li><a href="#Specification">Specification</a></li><li><a href="#Sessions">Sessions</a></li><li><a href="#Logging">Logging</a></li><li><a href="#Other">Other</a></li></ul>
+</blockquote></td></tr></table><table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Introduction"><strong>Introduction</strong></a></font></td></tr><tr><td><blockquote>
+ <p>The following sections list the system properties that may be set to modify
+ the default Tomcat behaviour.</p>
+</blockquote></td></tr></table><table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Clustering"><strong>Clustering</strong></a></font></td></tr><tr><td><blockquote>
+ <table border="1" cellpadding="5"><tr><th width="15%" bgcolor="#023264"><font color="#ffffff">Property</font></th><th width="85%" bgcolor="#023264"><font color="#ffffff">Description</font></th></tr><tr><td align="left" valign="center"><code>org.apache.catalina. tribes.dns_lookups</code></td><td align="left" valign="center">
+ <p>If <code>true</code>, the clustering module will attempt to use DNS to
+ resolve any host names provided in the cluster configuration.</p>
+ <p>If not specified, the default value of <code>false</code> will be used.</p>
+ </td></tr></table>
+
+</blockquote></td></tr></table><table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Expression Language"><!--()--></a><a name="Expression_Language"><strong>Expression Language</strong></a></font></td></tr><tr><td><blockquote>
+ <table border="1" cellpadding="5"><tr><th width="15%" bgcolor="#023264"><font color="#ffffff">Property</font></th><th width="85%" bgcolor="#023264"><font color="#ffffff">Description</font></th></tr><tr><td align="left" valign="center"><code>org.apache.el.BeanELResolver. CACHE_SIZE</code></td><td align="left" valign="center">
+ <p>The number of javax.el.BeanELResolver.BeanProperties objects that will
+ be cached by the EL Parser.</p>
+ <p>If not specified, the default of <code>1000</code> will be used.</p>
+ </td></tr><tr><td align="left" valign="center"><code>org.apache.el.ExpressionBuilder. CACHE_SIZE</code></td><td align="left" valign="center">
+ <p>The number of parsed EL expressions that will be cached by the EL
+ Parser.</p>
+ <p>If not specified, the default of <code>5000</code> will be used.</p>
+ </td></tr><tr><td align="left" valign="center"><code>org.apache.el.parser. COERCE_TO_ZERO</code></td><td align="left" valign="center">
+ <p>If <code>true</code>, when coercing EL expressions to numbers
+ <code>""</code> and <code>null</code> will be coerced to zero as required
+ by the specification.</p>
+ <p>If not specified, the default value of <code>true</code> will be used.</p>
+ </td></tr><tr><td align="left" valign="center"><code>org.apache.el.parser. SKIP_IDENTIFIER_CHECK</code></td><td align="left" valign="center">
+ <p>If <code>true</code>, when parsing EL expressions, identifiers will not be
+ checked to ensure that they conform to the Java Language Specification for
+ Java identifiers.</p>
+ <p>If not specified, the default value of <code>true</code> will be used.</p>
+ </td></tr></table>
+</blockquote></td></tr></table><table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Jasper"><strong>Jasper</strong></a></font></td></tr><tr><td><blockquote>
+ <table border="1" cellpadding="5"><tr><th width="15%" bgcolor="#023264"><font color="#ffffff">Property</font></th><th width="85%" bgcolor="#023264"><font color="#ffffff">Description</font></th></tr><tr><td align="left" valign="center"><code>org.apache.jasper.compiler. Generator.POOL_TAGS_WITH_EXTENDS</code></td><td align="left" valign="center">
+ <p>By default, JSPs that use their own base class via the extends
+ attribute of the page directive, will have Tag pooling disabled since
+ Jasper cannot guarantee that the necessary initialisation will have taken
+ place. This can have a negative impact on performance. Providing the
+ alternative base class calls _jspInit() from Servlet.init(), setting this
+ property to <code>true</code> will enable pooling with an alternative base
+ class. If the alternative base class does not call _jspInit() and this
+ property is <code>true</code>, NPEs will occur when attempting to use
+ tags.</p>
+ <p>If not specified, the default value of <code>false</code> will be used.
+ </p>
+ </td></tr><tr><td align="left" valign="center"><code>org.apache.jasper.compiler. Generator.VAR_EXPRESSIONFACTORY</code></td><td align="left" valign="center">
+ <p>The name of the variable to use for the expression language expression
+ factory.</p>
+ <p>If not specified, the default value of <code>_el_expressionfactory</code>
+ will be used.</p>
+ </td></tr><tr><td align="left" valign="center"><code>org.apache.jasper.compiler. Generator.VAR_INSTANCEMANAGER</code></td><td align="left" valign="center">
+ <p>The name of the variable to use for the instance manager factory.</p>
+ <p>If not specified, the default value of <code>_jsp_instancemanager</code>
+ will be used.</p>
+ </td></tr><tr><td align="left" valign="center"><code>org.apache.jasper.compiler. Generator.STRICT_GET_PROPERTY</code></td><td align="left" valign="center">
+ <p>If <code>true</code>, the requirement to have the object referenced in
+ <code>jsp:getProperty</code> action to be previously "introduced"
+ to the JSP processor, as specified in the chapter JSP.5.3 of JSP 2.0 and
+ later specifications, is enforced.</p>
+ <p>If not specified, the specification compliant default of <code>true</code>
+ will be used.</p>
+ </td></tr><tr><td align="left" valign="center"><code>org.apache.jasper.compiler. Parser.STRICT_QUOTE_ESCAPING</code></td><td align="left" valign="center">
+ <p>If <code>false</code> the requirements for escaping quotes in JSP
+ attributes will be relaxed so that an unescaped quote will not
+ cause an error.</p>
+ <p>If not specified, the specification compliant default of
+ <code>true</code> will be used.</p>
+ </td></tr><tr><td align="left" valign="center"><code>org.apache.jasper.runtime. BodyContentImpl.LIMIT_BUFFER</code></td><td align="left" valign="center">
+ <p>If <code>true</code>, any tag buffer that expands beyond
+ <code>org.apache.jasper.Constants.DEFAULT_TAG_BUFFER_SIZE</code> will be
+ destroyed and a new buffer created of the default size.</p>
+ <p>If not specified, the default value of <code>false</code> will be used.</p>
+ </td></tr><tr><td align="left" valign="center"><code>org.apache.jasper.runtime. JspFactoryImpl.USE_POOL</code></td><td align="left" valign="center">
+ <p>If <code>true</code>, a ThreadLocal <code>PageContext</code> pool will
+ be used.</p>
+ <p>If not specified, the default value of <code>true</code> will be used.</p>
+ </td></tr><tr><td align="left" valign="center"><code>org.apache.jasper.runtime. JspFactoryImpl.POOL_SIZE</code></td><td align="left" valign="center">
+ <p>The size of the ThreadLocal <code>PageContext</code>.</p>
+ <p>If not specified, the default value of <code>8</code> will be used.</p>
+ </td></tr><tr><td align="left" valign="center"><code>org.apache.jasper.Constants. JSP_SERVLET_BASE</code></td><td align="left" valign="center">
+ <p>The base class of the Servlets generated from the JSPs.</p>
+ <p>If not specified, the default value of
+ <code>org.apache.jasper.runtime.HttpJspBase</code> will be used.</p>
+ </td></tr><tr><td align="left" valign="center"><code>org.apache.jasper.Constants. SERVICE_METHOD_NAME</code></td><td align="left" valign="center">
+ <p>The name of the service method called by the base class.</p>
+ <p>If not specified, the default value of <code>_jspService</code>
+ will be used.</p>
+ </td></tr><tr><td align="left" valign="center"><code>org.apache.jasper.Constants. SERVLET_CLASSPATH</code></td><td align="left" valign="center">
+ <p>The name of the ServletContext attribute that provides the classpath
+ for the JSP.</p>
+ <p>If not specified, the default value of
+ <code>org.apache.catalina.jsp_classpath</code> will be used.</p>
+ </td></tr><tr><td align="left" valign="center"><code>org.apache.jasper.Constants. JSP_FILE</code></td><td align="left" valign="center">
+ <p>The name of the request attribute for <code><jsp-file></code>
+ element of a servlet definition. If present on a request, this overrides
+ the value returned by <code>request.getServletPath()</code> to select the
+ JSP page to be executed.</p>
+ <p>If not specified, the default value of
+ <code>org.apache.catalina.jsp_file</code> will be used.</p>
+ </td></tr><tr><td align="left" valign="center"><code>org.apache.jasper.Constants. PRECOMPILE</code></td><td align="left" valign="center">
+ <p>The name of the query parameter that causes the JSP engine to just
+ pregenerate the servlet but not invoke it.</p>
+ <p>If not specified, the default value of <code>jsp_precompile</code>
+ will be used, as defined by JSP specification (JSP.11.4.2).</p>
+ </td></tr><tr><td align="left" valign="center"><code>org.apache.jasper.Constants. JSP_PACKAGE_NAME</code></td><td align="left" valign="center">
+ <p>The default package name for compiled jsp pages.</p>
+ <p>If not specified, the default value of <code>org.apache.jsp</code>
+ will be used.</p>
+ </td></tr><tr><td align="left" valign="center"><code>org.apache.jasper.Constants. TAG_FILE_PACKAGE_NAME</code></td><td align="left" valign="center">
+ <p>The default package name for tag handlers generated from tag files.</p>
+ <p>If not specified, the default value of <code>org.apache.jsp.tag</code>
+ will be used.</p>
+ </td></tr><tr><td align="left" valign="center"><code>org.apache.jasper.Constants. ALT_DD_ATTR</code></td><td align="left" valign="center">
+ <p>The servlet context attribute under which the alternate deployment
+ descriptor for this web application is stored.</p>
+ <p>If not specified, the
+ default value of <code>org.apache.catalina.deploy.alt_dd</code> will
+ be used.</p>
+ </td></tr><tr><td align="left" valign="center"><code>org.apache.jasper.Constants. TEMP_VARIABLE_NAME_PREFIX</code></td><td align="left" valign="center">
+ <p>Prefix to use for generated temporary variable names.</p>
+ <p>If not specified,
+ the default value of <code>_jspx_temp</code> will be used.</p>
+ </td></tr><tr><td align="left" valign="center"><code>org.apache.jasper.Constants. USE_INSTANCE_MANAGER_FOR_TAGS</code></td><td align="left" valign="center">
+ <p>If <code>true</code>, the instance manager is used to obtain tag
+ handler instances.</p>
+ <p>If not specified, the default value of <code>false</code> will be used.</p>
+ </td></tr></table>
+
+</blockquote></td></tr></table><table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Security"><strong>Security</strong></a></font></td></tr><tr><td><blockquote>
+
+ <table border="1" cellpadding="5"><tr><th width="15%" bgcolor="#023264"><font color="#ffffff">Property</font></th><th width="85%" bgcolor="#023264"><font color="#ffffff">Description</font></th></tr><tr><td align="left" valign="center"><code>org.apache.catalina.connector. RECYCLE_FACADES</code></td><td align="left" valign="center">
+ <p>If this is <code>true</code> or if a security manager is in use a new
+ facade object will be created for each request.</p>
+ <p>If not specified, the
+ default value of <code>false</code> will be used.</p>
+ </td></tr><tr><td align="left" valign="center"><code>org.apache.catalina.connector. CoyoteAdapter.ALLOW_BACKSLASH</code></td><td align="left" valign="center">
+ <p>If this is <code>true</code> the '\' character will be permitted as a
+ path delimiter.</p>
+ <p>If not specified, the default value of <code>false</code>
+ will be used.</p>
+ </td></tr><tr><td align="left" valign="center"><code>org.apache.tomcat.util.buf. UDecoder.ALLOW_ENCODED_SLASH</code></td><td align="left" valign="center">
+ <p>If this is <code>true</code> '%2F' and '%5C' will be permitted as path
+ delimiters.</p>
+ <p>If not specified, the default value of <code>false</code> will
+ be used.</p>
+ </td></tr><tr><td align="left" valign="center"><code>org.apache.coyote. USE_CUSTOM_STATUS_MSG_IN_HEADER</code></td><td align="left" valign="center"><p>If this is
+ <code>true</code>, custom HTTP status messages will be used within HTTP
+ headers. If a custom message is specified that is not valid for use in an
+ HTTP header (as defined by RFC2616) then the custom message will be
+ ignored and the default message used.</p>
+ <p>If not specified, the default value of <code>false</code> will be used.</p>
+ </td></tr></table>
+
+</blockquote></td></tr></table><table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Specification"><strong>Specification</strong></a></font></td></tr><tr><td><blockquote>
+
+ <table border="1" cellpadding="5"><tr><th width="15%" bgcolor="#023264"><font color="#ffffff">Property</font></th><th width="85%" bgcolor="#023264"><font color="#ffffff">Description</font></th></tr><tr><td align="left" valign="center"><code>org.apache.catalina. STRICT_SERVLET_COMPLIANCE</code></td><td align="left" valign="center">
+ <p>If this is <code>true</code> the following actions will occur:
+ <ul>
+ <li>any wrapped request or response object passed to an application
+ dispatcher will be checked to ensure that it has wrapped the original
+ request or response. (SRV.8.2 / SRV.14.2.5.1)
+ </li>
+ <li>a call to <code>Response.getWriter()</code> if no character encoding
+ has been specified will result in subsequent calls to
+ <code>Response.getCharacterEncoding()</code> returning
+ <code>ISO-8859-1</code> and the <code>Content-Type</code> response header
+ will include a <code>charset=ISO-8859-1</code> component. (SRV.15.2.22.1)
+ </li>
+ <li>every request that is associated with a session will cause the
+ session's last accessed time to be updated regardless of whether or not
+ the request explicitly accesses the session. (SRV.7.6)
+ </li>
+ <li>
+ cookies will be parsed strictly, by default v0 cookies will not work with any invalid characters.
+ <br>If set to <code>false</code>, any v0 cookie with invalid character
+ will be switched to a v1 cookie and the value will be quoted.
+ </li>
+ <li>
+ the path in <code>ServletContext.getResource</code> /
+ <code>getResourceAsStream</code> calls must start with a "/".<br>
+ If set to <code>false</code>, code like <code>getResource("myfolder/myresource.txt")</code> will work.
+ </li>
+ </ul>
+ </p>
+ <p>If this is <code>true</code> the default value will be changed for:
+ <ul>
+ <li><code>org.apache.catalina.connector.Request. ALLOW_EMPTY_QUERY_STRING</code> property</li>
+ <li>The <code>webXmlValidation</code> attribute of any
+ <a href="context.html">Context</a> element.</li>
+ <li>The <code>webXmlNamespaceAware</code> attribute of any
+ <a href="context.html">Context</a> element.</li>
+ <li>The <code>tldValidation</code> attribute of any
+ <a href="context.html">Context</a> element.</li>
+ </ul>
+ </p>
+ <p>If not specified, the default value of <code>false</code> will be used.</p>
+ </td></tr><tr><td align="left" valign="center"><code>org.apache.catalina.connector. Request.ALLOW_EMPTY_QUERY_STRING</code></td><td align="left" valign="center">
+ <p>If this is <code>true</code> Tomcat will return an empty string rather
+ than <code>null</code> for empty query strings - i.e. query strings where
+ only <code>?</code> is present.</p>
+ <p>If not specified, the value of
+ <code>org.apache.catalina.STRICT_SERVLET_COMPLIANCE</code> will be used as
+ the default.</p>
+ </td></tr><tr><td align="left" valign="center"><code>org.apache.catalina.session. StandardSession.ACTIVITY_CHECK</code></td><td align="left" valign="center">
+ <p>If this is <code>true</code> or if
+ <code>org.apache.catalina.STRICT_SERVLET_COMPLIANCE</code> is
+ <code>true</code> Tomcat will track the number of active requests for each
+ session. When determining if a session is valid, any session with at least
+ one active request will always be considered valid.</p>
+ <p>If not specified, the default value of <code>false</code> will be used.</p>
+ </td></tr><tr><td align="left" valign="center"><code>org.apache.tomcat.util.http. ServerCookie.ALLOW_EQUALS_IN_VALUE</code></td><td align="left" valign="center">
+ <p>If this is <code>true</code> Tomcat will allow '<code>=</code>'
+ characters when parsing unquoted cookie values. If <code>false</code>,
+ cookie values containing '<code>=</code>' will be terminated when the
+ '<code>=</code>' is encountered and the remainder of the cookie value will
+ be dropped.</p>
+ <p>If not specified, the default specification compliant value of
+ <code>false</code> will be used.</p>
+ </td></tr><tr><td align="left" valign="center"><code>org.apache.tomcat.util.http. ServerCookie.ALWAYS_ADD_EXPIRES</code></td><td align="left" valign="center">
+ <p>If this is <code>true</code> Tomcat will always add an expires
+ parameter to a SetCookie header even for cookies with version greater than
+ zero. This is to work around a known IE6 and IE7 bug that causes IE to
+ ignore the Max-Age parameter in a SetCookie header.</p>
+ <p>If not specified, the default value of <code>true</code> will be used.</p>
+ </td></tr></table>
+
+</blockquote></td></tr></table><table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Sessions"><strong>Sessions</strong></a></font></td></tr><tr><td><blockquote>
+
+ <table border="1" cellpadding="5"><tr><th width="15%" bgcolor="#023264"><font color="#ffffff">Property</font></th><th width="85%" bgcolor="#023264"><font color="#ffffff">Description</font></th></tr><tr><td align="left" valign="center"><code>org.apache.catalina.SESSION_COOKIE_NAME</code></td><td align="left" valign="center">
+ <p>An alternative name for the session cookie. Defaults to
+ <code>JSESSIONID</code>. Note that the Servlet specification requires
+ this to be <code>JSESSIONID</code>. You should not rely on being able to
+ change this.</p>
+ </td></tr><tr><td align="left" valign="center"><code>org.apache.catalina.SESSION_PARAMETER_NAME</code></td><td align="left" valign="center">
+ <p>An alternative name for the session path parameter. Defaults to
+ <code>jsessionid</code>. Note that the Servlet specification requires
+ this to be <code>jsessionid</code>. You should not rely on being able to
+ change this.</p>
+ </td></tr><tr><td align="left" valign="center"><code>org.apache.catalina.authenticator. Constants.SSO_SESSION_COOKIE_NAME</code></td><td align="left" valign="center">
+ <p>An alternative name for the single sign on session cookie. Defaults to
+ <code>JSESSIONIDSSO</code>.</p>
+ </td></tr></table>
+
+</blockquote></td></tr></table><table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Logging"><strong>Logging</strong></a></font></td></tr><tr><td><blockquote>
+
+ <table border="1" cellpadding="5"><tr><th width="15%" bgcolor="#023264"><font color="#ffffff">Property</font></th><th width="85%" bgcolor="#023264"><font color="#ffffff">Description</font></th></tr><tr><td align="left" valign="center"><code>org.apache.juli.logging. UserDataHelper.CONFIG</code></td><td align="left" valign="center">
+ <p>The type of logging to use for errors generated by invalid input data.
+ The options are: <code>DEBUG_ALL</code>, <code>INFO_THEN_DEBUG</code>,
+ <code>INFO_ALL</code> and <code>NONE</code>. When
+ <code>INFO_THEN_DEBUG</code> is used, the period for which errors are
+ logged at DEBUG rather than INFO is controlled by the system property
+ <code>org.apache.juli.logging.UserDataHelper.SUPPRESSION_TIME</code>.
+ </p>
+ <p>The default value is <code>INFO_THEN_DEBUG</code>.</p>
+ <p>The errors currently logged using this system are:
+ <ul>
+ <li>invalid parameters.</li>
+ </ul>
+ Other errors triggered by invalid input data may be added to this
+ system in later versions.</p>
+ </td></tr><tr><td align="left" valign="center"><code>org.apache.juli.logging. UserDataHelper.SUPPRESSION_TIME</code></td><td align="left" valign="center">
+ <p>When using <code>INFO_THEN_DEBUG</code> for
+ <code>org.apache.juli.logging.UserDataHelper.CONFIG</code> this system
+ property controls how long messages are logged at DEBUG after a message
+ has been logged at INFO. Once this period has elapsed, the next message
+ will be logged at INFO followed by a new suppression period where
+ messages are logged at DEBUG and so on. The value is measured
+ in seconds.</p>
+ <p>A value of <code>0</code> is equivalent to using <code>INFO_ALL</code>
+ for <code>org.apache.juli.logging.UserDataHelper.CONFIG</code>.</p>
+ <p>A negative value means an infinite suppression period.</p>
+ <p>The default value is <code>86400</code> (24 hours).</p>
+ </td></tr></table>
+
+</blockquote></td></tr></table><table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Other"><strong>Other</strong></a></font></td></tr><tr><td><blockquote>
+
+ <table border="1" cellpadding="5"><tr><th width="15%" bgcolor="#023264"><font color="#ffffff">Property</font></th><th width="85%" bgcolor="#023264"><font color="#ffffff">Description</font></th></tr><tr><td align="left" valign="center"><code>org.apache.coyote.MAX_EXTENSION_SIZE</code></td><td align="left" valign="center">
+ <p>Limits the total length of extension data when using chunked encoding.
+ If the value is <code>-1</code>, no limit will be imposed.</p>
+ <p>If not specified, the default value of <code>8192</code> will be
+ used.</p>
+ </td></tr><tr><td align="left" valign="center"><code>org.apache.coyote.MAX_TRAILER_SIZE</code></td><td align="left" valign="center">
+ <p>Limits the total length of trailing headers in the last chunk of
+ a chunked HTTP request.
+ If the value is <code>-1</code>, no limit will be imposed.</p>
+ <p>If not specified, the default value of <code>8192</code> will be used.</p>
+ </td></tr><tr><td align="left" valign="center"><code>catalina.useNaming</code></td><td align="left" valign="center">
+ <p>If this is <code>false</code> it will override the
+ <code>useNaming</code> attribute for all <a href="context.html">
+ Context</a> elements.</p>
+ </td></tr><tr><td align="left" valign="center"><code>jvmRoute</code></td><td align="left" valign="center">
+ <p>Provides a default value for the <code>jvmRoute</code> attribute of the
+ <a href="engine.html">Engine</a> element. It does not override the value
+ configured on the <a href="engine.html">Engine</a> element.</p>
+ </td></tr><tr><td align="left" valign="center"><code>org.apache.catalina.loader. WebappClassLoader.ENABLE_CLEAR_REFERENCES</code></td><td align="left" valign="center">
+ <p>If <code>true</code>, Tomcat attempts to null out any static or final
+ fields from loaded classes when a web application is stopped as a work
+ around for apparent garbage collection bugs and application coding errors.
+ </p>
+ <p>There have been some issues reported with log4j when this option is
+ <code>true</code>.</p>
+ <p>Applications without memory leaks using recent JVMs should operate
+ correctly with this option set to <code>false</code>.</p>
+ <p>If not specified, the default value of <code>true</code> will be used.
+ </p>
+ </td></tr><tr><td align="left" valign="center"><code>catalina.config</code></td><td align="left" valign="center">
+ <p>The URL for the catalina.properties configuration file.</p>
+ </td></tr><tr><td align="left" valign="center"><code>tomcat.util.buf.StringCache.byte.enabled</code></td><td align="left" valign="center">
+ <p>If <code>true</code>, the String cache is enabled for
+ <code>ByteChunk</code>.</p>
+ <p>If not specified, the default value of <code>false</code> will be used.</p>
+ </td></tr><tr><td align="left" valign="center"><code>tomcat.util.buf.StringCache.char.enabled</code></td><td align="left" valign="center">
+ <p>If <code>true</code>, the String cache is enabled for
+ <code>CharChunk</code>.</p>
+ <p>If not specified, the default value of <code>false</code> will be used.</p>
+ </td></tr><tr><td align="left" valign="center"><code>tomcat.util.buf.StringCache.trainThreshold</code></td><td align="left" valign="center">
+ <p>The number of times <code>toString()</code> must be called before the
+ cache is activated.</p>
+ <p>If not specified, the default value of <code>20000</code> will be used.</p>
+ </td></tr><tr><td align="left" valign="center"><code>tomcat.util.buf.StringCache.cacheSize</code></td><td align="left" valign="center">
+ <p>The size of the String cache.</p>
+ <p>If not specified, the default value of <code>200</code> will be used.</p>
+ </td></tr><tr><td align="left" valign="center"><code>tomcat.util.buf.StringCache.maxStringSize</code></td><td align="left" valign="center">
+ <p>The maximum length of String that will be cached.</p>
+ <p>If not specified, the default value of <code>128</code> will be used.</p>
+ </td></tr><tr><td align="left" valign="center"><code>org.apache.tomcat.util. http.FastHttpDateFormat.CACHE_SIZE</code></td><td align="left" valign="center">
+ <p>The size of the cache to use parsed and formatted date value.</p>
+ <p>If not specified, the default value of <code>1000</code> will be used.</p>
+ </td></tr><tr><td align="left" valign="center"><code>org.apache.tomcat.util. net.NioSelectorShared</code></td><td align="left" valign="center">
+ <p>If <code>true</code>, use a shared selector for servlet write/read.</p>
+ <p>If not specified, the default value of <code>true</code> will be used.</p>
+ </td></tr><tr><td align="left" valign="center"><code>org.apache.catalina.startup. EXIT_ON_INIT_FAILURE</code></td><td align="left" valign="center">
+ <p>If <code>true</code>, the server will exit if an exception happens
+ during the server initialization phase.</p>
+ <p>If not specified, the default value of <code>false</code> will be used.</p>
+ </td></tr></table>
+
+</blockquote></td></tr></table></td></tr><!--FOOTER SEPARATOR--><tr><td colspan="2"><hr noshade="noshade" size="1"></td></tr><!--PAGE FOOTER--><tr><td colspan="2"><div align="center"><font color="#525D76" size="-1"><em>
+ Copyright © 1999-2014, Apache Software Foundation
+ </em></font></div></td></tr></table></body></html>
\ No newline at end of file
diff --git a/tomcat-uid/webapps/docs/config/valve.html b/tomcat-uid/webapps/docs/config/valve.html
new file mode 100644
index 0000000..8dbdf0f
--- /dev/null
+++ b/tomcat-uid/webapps/docs/config/valve.html
@@ -0,0 +1,753 @@
+<html><head><META http-equiv="Content-Type" content="text/html; charset=iso-8859-1"><title>Apache Tomcat Configuration Reference (6.0.39) - The Valve Component</title><meta name="author" content="Craig R. McClanahan"><style type="text/css" media="print">
+ .noPrint {display: none;}
+ td#mainBody {width: 100%;}
+ </style></head><body bgcolor="#ffffff" text="#000000" link="#525D76" alink="#525D76" vlink="#525D76"><table border="0" width="100%" cellspacing="0"><!--PAGE HEADER--><tr><td><!--PROJECT LOGO--><a href="http://tomcat.apache.org/"><img src="../images/tomcat.gif" align="right" alt="
+ The Apache Tomcat Servlet/JSP Container
+ " border="0"></a></td><td><h1><font face="arial,helvetica,sanserif">Apache Tomcat 6.0</font></h1><font face="arial,helvetica,sanserif">Version 6.0.39, Jan 27 2014</font></td><td><!--APACHE LOGO--><a href="http://www.apache.org/"><img src="../images/asf-logo.gif" align="right" alt="Apache Logo" border="0"></a></td></tr></table><table border="0" width="100%" cellspacing="4"><!--HEADER SEPARATOR--><tr><td colspan="2"><hr noshade="noshade" size="1"></td></tr><tr><!--LEFT SIDE NAVIGATION--><td width="20%" valign="top" nowrap="nowrap" class="noPrint"><p><strong>Links</strong></p><ul><li><a href="../index.html">Docs Home</a></li><li><a href="index.html">Config Ref. Home</a></li></ul><p><strong>Top Level Elements</strong></p><ul><li><a href="server.html">Server</a></li><li><a href="service.html">Service</a></li></ul><p><strong>Executors</strong></p><ul><li><a href="executor.html">Executor</a></li></ul><p><strong>Connectors</strong></p><ul><li><a href="http.html">HTTP</a></li><li><a href="ajp.html">AJP</a></li></ul><p><strong>Containers</strong></p><ul><li><a href="context.html">Context</a></li><li><a href="engine.html">Engine</a></li><li><a href="host.html">Host</a></li><li><a href="cluster.html">Cluster</a></li></ul><p><strong>Nested Components</strong></p><ul><li><a href="globalresources.html">Global Resources</a></li><li><a href="listeners.html">Listeners</a></li><li><a href="loader.html">Loader</a></li><li><a href="manager.html">Manager</a></li><li><a href="realm.html">Realm</a></li><li><a href="resources.html">Resources</a></li><li><a href="valve.html">Valve</a></li></ul><p><strong>Cluster Elements</strong></p><ul><li><a href="cluster.html">Cluster</a></li><li><a href="cluster-manager.html">Manager</a></li><li><a href="cluster-channel.html">Channel</a></li><li><a href="cluster-membership.html">Channel/Membership</a></li><li><a href="cluster-sender.html">Channel/Sender</a></li><li><a href="cluster-receiver.html">Channel/Receiver</a></li><li><a href="cluster-interceptor.html">Channel/Interceptor</a></li><li><a href="cluster-valve.html">Valve</a></li><li><a href="cluster-deployer.html">Deployer</a></li><li><a href="cluster-listener.html">ClusterListener</a></li></ul><p><strong>Other</strong></p><ul><li><a href="filter.html">Filter</a></li><li><a href="systemprops.html">System properties</a></li></ul></td><!--RIGHT SIDE MAIN BODY--><td width="80%" valign="top" align="left" id="mainBody"><h1>Apache Tomcat Configuration Reference</h1><h2>The Valve Component</h2><table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Table of Contents"><!--()--></a><a name="Table_of_Contents"><strong>Table of Contents</strong></a></font></td></tr><tr><td><blockquote>
+<ul><li><a href="#Introduction">Introduction</a></li><li><a href="#Access_Log_Valve">Access Log Valve</a><ol><li><a href="#Access_Log_Valve/Introduction">Introduction</a></li><li><a href="#Access_Log_Valve/Attributes">Attributes</a></li></ol></li><li><a href="#Remote_Address_Filter">Remote Address Filter</a><ol><li><a href="#Remote_Address_Filter/Introduction">Introduction</a></li><li><a href="#Remote_Address_Filter/Attributes">Attributes</a></li></ol></li><li><a href="#Remote_Host_Filter">Remote Host Filter</a><ol><li><a href="#Remote_Host_Filter/Introduction">Introduction</a></li><li><a href="#Remote_Host_Filter/Attributes">Attributes</a></li></ol></li><li><a href="#Request_Dumper_Valve">Request Dumper Valve</a><ol><li><a href="#Request_Dumper_Valve/Introduction">Introduction</a></li><li><a href="#Request_Dumper_Valve/Attributes">Attributes</a></li></ol></li><li><a href="#Single_Sign_On_Valve">Single Sign On Valve</a><ol><li><a href="#Single_Sign_On_Valve/Introduction">Introduction</a></li><li><a href="#Single_Sign_On_Valve/Attributes">Attributes</a></li></ol></li><li><a href="#Basic_Authenticator_Valve">Basic Authenticator Valve</a><ol><li><a href="#Basic_Authenticator_Valve/Introduction">Introduction</a></li><li><a href="#Basic_Authenticator_Valve/Attributes">Attributes</a></li></ol></li><li><a href="#Digest_Authenticator_Valve">Digest Authenticator Valve</a><ol><li><a href="#Digest_Authenticator_Valve/Introduction">Introduction</a></li><li><a href="#Digest_Authenticator_Valve/Attributes">Attributes</a></li></ol></li><li><a href="#Form_Authenticator_Valve">Form Authenticator Valve</a><ol><li><a href="#Form_Authenticator_Valve/Introduction">Introduction</a></li><li><a href="#Form_Authenticator_Valve/Attributes">Attributes</a></li></ol></li><li><a href="#SSL_Authenticator_Valve">SSL Authenticator Valve</a><ol><li><a href="#SSL_Authenticator_Valve/Introduction">Introduction</a></li><li><a href="#SSL_Authenticator_Valve/Attributes">Attributes</a></li></ol></li><li><a href="#WebDAV_Fix_Valve">WebDAV Fix Valve</a><ol><li><a href="#WebDAV_Fix_Valve/Introduction">Introduction</a></li><li><a href="#WebDAV_Fix_Valve/Attributes">Attributes</a></li></ol></li><li><a href="#Remote_IP_Valve">Remote IP Valve</a><ol><li><a href="#Remote_IP_Valve/Introduction">Introduction</a></li><li><a href="#Remote_IP_Valve/Attributes">Attributes</a></li></ol></li><li><a href="#Stuck_Thread_Detection_Valve">Stuck Thread Detection Valve</a><ol><li><a href="#Stuck_Thread_Detection_Valve/Introduction">Introduction</a></li><li><a href="#Stuck_Thread_Detection_Valve/Attributes">Attributes</a></li></ol></li></ul>
+</blockquote></td></tr></table><table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Introduction"><strong>Introduction</strong></a></font></td></tr><tr><td><blockquote>
+
+ <p>A <strong>Valve</strong> element represents a component that will be
+ inserted into the request processing pipeline for the associated
+ Catalina container (<a href="engine.html">Engine</a>,
+ <a href="host.html">Host</a>, or <a href="context.html">Context</a>).
+ Individual Valves have distinct processing capabilities, and are
+ described individually below.</p>
+
+ <blockquote><em>
+ <p>The description below uses the variable name $CATALINA_BASE to refer the
+ base directory against which most relative paths are resolved. If you have
+ not configured Tomcat 6 for multiple instances by setting a CATALINA_BASE
+ directory, then $CATALINA_BASE will be set to the value of $CATALINA_HOME,
+ the directory into which you have installed Tomcat 6.</p>
+ </em></blockquote>
+
+</blockquote></td></tr></table><table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Access Log Valve"><!--()--></a><a name="Access_Log_Valve"><strong>Access Log Valve</strong></a></font></td></tr><tr><td><blockquote>
+
+ <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Access Log Valve/Introduction"><!--()--></a><a name="Access_Log_Valve/Introduction"><strong>Introduction</strong></a></font></td></tr><tr><td><blockquote>
+
+ <p>The <strong>Access Log Valve</strong> creates log files in the same
+ format as those created by standard web servers. These logs can later
+ be analyzed by standard log analysis tools to track page hit counts,
+ user session activity, and so on. The files produces by this <code>Valve</code>
+ are rolled over nightly at midnight. This <code>Valve</code>
+ may be associated with any Catalina container (<code>Context</code>,
+ <code>Host</code>, or <code>Engine</code>), and
+ will record ALL requests processed by that container.</p>
+
+ <p>Some requests may be handled by Tomcat before they are passed to a
+ container. These include redirects from /foo to /foo/ and the rejection of
+ invalid requests. Where Tomcat can identify the <code>Context</code> that
+ would have handled the request, the request/response will be logged in the
+ <code>AccessLog</code>(s) associated <code>Context</code>, <code>Host</code>
+ and <code>Engine</code>. Where Tomcat cannot identify the
+ <code>Context</code> that would have handled the request, e.g. in cases
+ where the URL is invalid, Tomcat will look first in the <code>Engine</code>,
+ then the default <code>Host</code> for the <code>Engine</code> and finally
+ the ROOT (or default) <code>Context</code> for the default <code>Host</code>
+ for an <code>AccessLog</code> implementation. Tomcat will use the first
+ <code>AccessLog</code> implementation found to log those requests that are
+ rejected before they are passed to a container.</p>
+
+ </blockquote></td></tr></table>
+
+ <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Access Log Valve/Attributes"><!--()--></a><a name="Access_Log_Valve/Attributes"><strong>Attributes</strong></a></font></td></tr><tr><td><blockquote>
+
+ <p>The <strong>Access Log Valve</strong> supports the following
+ configuration attributes:</p>
+
+ <table border="1" cellpadding="5"><tr><th width="15%" bgcolor="#023264"><font color="#ffffff">Attribute</font></th><th width="85%" bgcolor="#023264"><font color="#ffffff">Description</font></th></tr><tr><td align="left" valign="center"><strong><code>className</code></strong></td><td align="left" valign="center">
+ <p>Java class name of the implementation to use. This MUST be set to
+ <strong>org.apache.catalina.valves.AccessLogValve</strong> to use the
+ default access log valve.</p>
+ </td></tr><tr><td align="left" valign="center"><code>directory</code></td><td align="left" valign="center">
+ <p>Absolute or relative pathname of a directory in which log files
+ created by this valve will be placed. If a relative path is
+ specified, it is interpreted as relative to $CATALINA_BASE. If
+ no directory attribute is specified, the default value is "logs"
+ (relative to $CATALINA_BASE).</p>
+ </td></tr><tr><td align="left" valign="center"><code>encoding</code></td><td align="left" valign="center">
+ <p>Character set used to write the log file. An empty string means
+ to use the system default character set. Default value: use the
+ system default character set.
+ </p>
+ </td></tr><tr><td align="left" valign="center"><code>pattern</code></td><td align="left" valign="center">
+ <p>A formatting layout identifying the various information fields
+ from the request and response to be logged, or the word
+ <code>common</code> or <code>combined</code> to select a
+ standard format. See below for more information on configuring
+ this attribute. Note that the optimized access does only support
+ <code>common</code> and <code>combined</code> as the value for this
+ attribute.</p>
+ </td></tr><tr><td align="left" valign="center"><code>prefix</code></td><td align="left" valign="center">
+ <p>The prefix added to the start of each log file's name. If not
+ specified, the default value is "access_log.". To specify no prefix,
+ use a zero-length string.</p>
+ </td></tr><tr><td align="left" valign="center"><code>resolveHosts</code></td><td align="left" valign="center">
+ <p>Set to <code>true</code> to convert the IP address of the remote
+ host into the corresponding host name via a DNS lookup. Set to
+ <code>false</code> to skip this lookup, and report the remote IP
+ address instead.</p>
+ </td></tr><tr><td align="left" valign="center"><code>suffix</code></td><td align="left" valign="center">
+ <p>The suffix added to the end of each log file's name. If not
+ specified, the default value is "". To specify no suffix,
+ use a zero-length string.</p>
+ </td></tr><tr><td align="left" valign="center"><code>rotatable</code></td><td align="left" valign="center">
+ <p>Flag to determine if log rotation should occur.
+ If set to <code>false</code>, then this file is never rotated and
+ <code>fileDateFormat</code> is ignored. Use with caution!
+ Default value: <code>true</code>
+ </p>
+ </td></tr><tr><td align="left" valign="center"><code>condition</code></td><td align="left" valign="center">
+ <p>Turns on conditional logging. If set, requests will be
+ logged only if <code>ServletRequest.getAttribute()</code> is
+ null. For example, if this value is set to
+ <code>junk</code>, then a particular request will only be logged
+ if <code>ServletRequest.getAttribute("junk") == null</code>.
+ The use of Filters is an easy way to set/unset the attribute
+ in the ServletRequest on many different requests.
+ </p>
+ </td></tr><tr><td align="left" valign="center"><code>fileDateFormat</code></td><td align="left" valign="center">
+ <p>Allows a customized date format in the access log file name.
+ The date format also decides how often the file is rotated.
+ If you wish to rotate every hour, then set this value
+ to: <code>yyyy-MM-dd.HH</code>
+ </p>
+ </td></tr><tr><td align="left" valign="center"><code>buffered</code></td><td align="left" valign="center">
+ <p>Flag to determine if logging will be buffered.
+ If set to <code>false</code>, then access logging will be written after each
+ request. Default value: <code>true</code>
+ </p>
+ </td></tr></table>
+
+ <p>Values for the <code>pattern</code> attribute are made up of literal
+ text strings, combined with pattern identifiers prefixed by the "%"
+ character to cause replacement by the corresponding variable value from
+ the current request and response. The following pattern codes are
+ supported:</p>
+ <ul>
+ <li><b>%a</b> - Remote IP address</li>
+ <li><b>%A</b> - Local IP address</li>
+ <li><b>%b</b> - Bytes sent, excluding HTTP headers, or '-' if zero</li>
+ <li><b>%B</b> - Bytes sent, excluding HTTP headers</li>
+ <li><b>%h</b> - Remote host name (or IP address if
+ <code>resolveHosts</code> is false)</li>
+ <li><b>%H</b> - Request protocol</li>
+ <li><b>%l</b> - Remote logical username from identd (always returns
+ '-')</li>
+ <li><b>%m</b> - Request method (GET, POST, etc.)</li>
+ <li><b>%p</b> - Local port on which this request was received</li>
+ <li><b>%q</b> - Query string (prepended with a '?' if it exists)</li>
+ <li><b>%r</b> - First line of the request (method and request URI)</li>
+ <li><b>%s</b> - HTTP status code of the response</li>
+ <li><b>%S</b> - User session ID</li>
+ <li><b>%t</b> - Date and time, in Common Log Format</li>
+ <li><b>%u</b> - Remote user that was authenticated (if any), else '-'</li>
+ <li><b>%U</b> - Requested URL path</li>
+ <li><b>%v</b> - Local server name</li>
+ <li><b>%D</b> - Time taken to process the request, in millis</li>
+ <li><b>%T</b> - Time taken to process the request, in seconds</li>
+ <li><b>%I</b> - current request thread name (can compare later with stacktraces)</li>
+ </ul>
+
+ <p>
+ There is also support to write information from the cookie, incoming
+ header, the Session or something else in the ServletRequest.
+ It is modeled after the
+ <a href="http://httpd.apache.org/">Apache HTTP Server</a> log configuration
+ syntax:</p>
+ <ul>
+ <li><b><code>%{xxx}i</code></b> for incoming headers</li>
+ <li><b><code>%{xxx}o</code></b> for outgoing response headers</li>
+ <li><b><code>%{xxx}c</code></b> for a specific cookie</li>
+ <li><b><code>%{xxx}r</code></b> xxx is an attribute in the ServletRequest</li>
+ <li><b><code>%{xxx}s</code></b> xxx is an attribute in the HttpSession</li>
+ </ul>
+
+
+ <p>The shorthand pattern name <code>common</code> (which is also the
+ default) corresponds to <strong>'%h %l %u %t "%r" %s %b'</strong>.</p>
+
+ <p>The shorthand pattern name <code>combined</code> appends the
+ values of the <code>Referer</code> and <code>User-Agent</code> headers,
+ each in double quotes, to the <code>common</code> pattern
+ described in the previous paragraph.</p>
+
+ </blockquote></td></tr></table>
+
+</blockquote></td></tr></table><table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Remote Address Filter"><!--()--></a><a name="Remote_Address_Filter"><strong>Remote Address Filter</strong></a></font></td></tr><tr><td><blockquote>
+
+ <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Remote Address Filter/Introduction"><!--()--></a><a name="Remote_Address_Filter/Introduction"><strong>Introduction</strong></a></font></td></tr><tr><td><blockquote>
+
+ <p>The <strong>Remote Address Filter</strong> allows you to compare the
+ IP address of the client that submitted this request against one or more
+ <em>regular expressions</em>, and either allow the request to continue
+ or refuse to process the request from this client. A Remote Address
+ Filter can be associated with any Catalina container
+ (<a href="engine.html">Engine</a>, <a href="host.html">Host</a>, or
+ <a href="context.html">Context</a>), and must accept any request
+ presented to this container for processing before it will be passed on.</p>
+
+ <p>The syntax for <em>regular expressions</em> is different than that for
+ 'standard' wildcard matching. Tomcat uses the <code>java.util.regex</code>
+ package. Please consult the Java documentation for details of the
+ expressions supported.</p>
+
+ <p>See also: <a href="#Remote_Host_Filter">Remote Host Filter</a>,
+ <a href="#Remote_IP_Valve">Remote IP Valve</a>.</p>
+
+ </blockquote></td></tr></table>
+
+ <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Remote Address Filter/Attributes"><!--()--></a><a name="Remote_Address_Filter/Attributes"><strong>Attributes</strong></a></font></td></tr><tr><td><blockquote>
+
+ <p>The <strong>Remote Address Filter</strong> supports the following
+ configuration attributes:</p>
+
+ <table border="1" cellpadding="5"><tr><th width="15%" bgcolor="#023264"><font color="#ffffff">Attribute</font></th><th width="85%" bgcolor="#023264"><font color="#ffffff">Description</font></th></tr><tr><td align="left" valign="center"><strong><code>className</code></strong></td><td align="left" valign="center">
+ <p>Java class name of the implementation to use. This MUST be set to
+ <strong>org.apache.catalina.valves.RemoteAddrValve</strong>.</p>
+ </td></tr><tr><td align="left" valign="center"><code>allow</code></td><td align="left" valign="center">
+ <p>A comma-separated list of <em>regular expression</em> patterns
+ that the remote client's IP address is compared to. If this attribute
+ is specified, the remote address MUST match for this request to be
+ accepted. If this attribute is not specified, all requests will be
+ accepted UNLESS the remote address matches a <code>deny</code>
+ pattern.</p>
+ </td></tr><tr><td align="left" valign="center"><code>deny</code></td><td align="left" valign="center">
+ <p>A comma-separated list of <em>regular expression</em> patterns
+ that the remote client's IP address is compared to. If this attribute
+ is specified, the remote address MUST NOT match for this request to be
+ accepted. If this attribute is not specified, request acceptance is
+ governed solely by the <code>accept</code> attribute.</p>
+ </td></tr><tr><td align="left" valign="center"><code>denyStatus</code></td><td align="left" valign="center">
+ <p>HTTP response status code that is used when rejecting denied
+ request. The default value is <code>403</code>. For example,
+ it can be set to the value <code>404</code>.</p>
+ </td></tr></table>
+
+ </blockquote></td></tr></table>
+
+</blockquote></td></tr></table><table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Remote Host Filter"><!--()--></a><a name="Remote_Host_Filter"><strong>Remote Host Filter</strong></a></font></td></tr><tr><td><blockquote>
+
+ <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Remote Host Filter/Introduction"><!--()--></a><a name="Remote_Host_Filter/Introduction"><strong>Introduction</strong></a></font></td></tr><tr><td><blockquote>
+
+ <p>The <strong>Remote Host Filter</strong> allows you to compare the
+ hostname of the client that submitted this request against one or more
+ <em>regular expressions</em>, and either allow the request to continue
+ or refuse to process the request from this client. A Remote Host
+ Filter can be associated with any Catalina container
+ (<a href="engine.html">Engine</a>, <a href="host.html">Host</a>, or
+ <a href="context.html">Context</a>), and must accept any request
+ presented to this container for processing before it will be passed on.</p>
+
+ <p>The syntax for <em>regular expressions</em> is different than that for
+ 'standard' wildcard matching. Tomcat uses the <code>java.util.regex</code>
+ package. Please consult the Java documentation for details of the
+ expressions supported.</p>
+
+ <p><strong>Note:</strong> This filter processes the value returned by
+ method <code>ServletRequest.getRemoteHost()</code>. To allow the method
+ to return proper host names, you have to enable "DNS lookups" feature on
+ a <strong>Connector</strong>.</p>
+
+ <p>See also: <a href="#Remote_Address_Filter">Remote Address Filter</a>,
+ <a href="http.html">HTTP Connector</a> configuration.</p>
+
+ </blockquote></td></tr></table>
+
+ <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Remote Host Filter/Attributes"><!--()--></a><a name="Remote_Host_Filter/Attributes"><strong>Attributes</strong></a></font></td></tr><tr><td><blockquote>
+
+ <p>The <strong>Remote Host Filter</strong> supports the following
+ configuration attributes:</p>
+
+ <table border="1" cellpadding="5"><tr><th width="15%" bgcolor="#023264"><font color="#ffffff">Attribute</font></th><th width="85%" bgcolor="#023264"><font color="#ffffff">Description</font></th></tr><tr><td align="left" valign="center"><strong><code>className</code></strong></td><td align="left" valign="center">
+ <p>Java class name of the implementation to use. This MUST be set to
+ <strong>org.apache.catalina.valves.RemoteHostValve</strong>.</p>
+ </td></tr><tr><td align="left" valign="center"><code>allow</code></td><td align="left" valign="center">
+ <p>A comma-separated list of <em>regular expression</em> patterns
+ that the remote client's hostname is compared to. If this attribute
+ is specified, the remote hostname MUST match for this request to be
+ accepted. If this attribute is not specified, all requests will be
+ accepted UNLESS the remote hostname matches a <code>deny</code>
+ pattern.</p>
+ </td></tr><tr><td align="left" valign="center"><code>deny</code></td><td align="left" valign="center">
+ <p>A comma-separated list of <em>regular expression</em> patterns
+ that the remote client's hostname is compared to. If this attribute
+ is specified, the remote hostname MUST NOT match for this request to be
+ accepted. If this attribute is not specified, request acceptance is
+ governed solely by the <code>accept</code> attribute.</p>
+ </td></tr><tr><td align="left" valign="center"><code>denyStatus</code></td><td align="left" valign="center">
+ <p>HTTP response status code that is used when rejecting denied
+ request. The default value is <code>403</code>. For example,
+ it can be set to the value <code>404</code>.</p>
+ </td></tr></table>
+
+ </blockquote></td></tr></table>
+
+</blockquote></td></tr></table><table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Request Dumper Valve"><!--()--></a><a name="Request_Dumper_Valve"><strong>Request Dumper Valve</strong></a></font></td></tr><tr><td><blockquote>
+
+
+ <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Request Dumper Valve/Introduction"><!--()--></a><a name="Request_Dumper_Valve/Introduction"><strong>Introduction</strong></a></font></td></tr><tr><td><blockquote>
+
+ <p>The <em>Request Dumper Valve</em> is a useful tool in debugging
+ interactions with a client application (or browser) that is sending
+ HTTP requests to your Tomcat-based server. When configured, it causes
+ details about each request processed by its associated <code>Engine</code>,
+ <code>Host</code>, or <code>Context</code> to be logged according to
+ the logging configuration for that container.</p>
+
+ <p><strong>WARNING: Using this valve has side-effects.</strong> The
+ output from this valve includes any parameters included with the request.
+ The parameters will be decoded using the default platform encoding. Any
+ subsequent calls to <code>request.setCharacterEncoding()</code> within
+ the web application will have no effect. NOTE: Since all parameters are
+ included in the output, the InputStream is consumed for requests made with
+ the method POST and content-type application/x-www-form-urlencoded.</p>
+
+ </blockquote></td></tr></table>
+
+
+ <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Request Dumper Valve/Attributes"><!--()--></a><a name="Request_Dumper_Valve/Attributes"><strong>Attributes</strong></a></font></td></tr><tr><td><blockquote>
+
+ <p>The <strong>Request Dumper Valve</strong> supports the following
+ configuration attributes:</p>
+
+ <table border="1" cellpadding="5"><tr><th width="15%" bgcolor="#023264"><font color="#ffffff">Attribute</font></th><th width="85%" bgcolor="#023264"><font color="#ffffff">Description</font></th></tr><tr><td align="left" valign="center"><strong><code>className</code></strong></td><td align="left" valign="center">
+ <p>Java class name of the implementation to use. This MUST be set to
+ <strong>org.apache.catalina.valves.RequestDumperValve</strong>.</p>
+ </td></tr></table>
+
+ </blockquote></td></tr></table>
+
+
+</blockquote></td></tr></table><table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Single Sign On Valve"><!--()--></a><a name="Single_Sign_On_Valve"><strong>Single Sign On Valve</strong></a></font></td></tr><tr><td><blockquote>
+
+ <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Single Sign On Valve/Introduction"><!--()--></a><a name="Single_Sign_On_Valve/Introduction"><strong>Introduction</strong></a></font></td></tr><tr><td><blockquote>
+
+ <p>The <em>Single Sign On Valve</em> is utilized when you wish to give users
+ the ability to sign on to any one of the web applications associated with
+ your virtual host, and then have their identity recognized by all other
+ web applications on the same virtual host.</p>
+
+ <p>See the <a href="host.html#Single Sign On">Single Sign On</a> special
+ feature on the <strong>Host</strong> element for more information.</p>
+
+ </blockquote></td></tr></table>
+
+
+ <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Single Sign On Valve/Attributes"><!--()--></a><a name="Single_Sign_On_Valve/Attributes"><strong>Attributes</strong></a></font></td></tr><tr><td><blockquote>
+
+ <p>The <strong>Single Sign On</strong> Valve supports the following
+ configuration attributes:</p>
+
+ <table border="1" cellpadding="5"><tr><th width="15%" bgcolor="#023264"><font color="#ffffff">Attribute</font></th><th width="85%" bgcolor="#023264"><font color="#ffffff">Description</font></th></tr><tr><td align="left" valign="center"><strong><code>className</code></strong></td><td align="left" valign="center">
+ <p>Java class name of the implementation to use. This MUST be set to
+ <strong>org.apache.catalina.authenticator.SingleSignOn</strong>.</p>
+ </td></tr><tr><td align="left" valign="center"><code>requireReauthentication</code></td><td align="left" valign="center">
+ <p>Default false. Flag to determine whether each request needs to be
+ reauthenticated to the security <strong>Realm</strong>. If "true", this
+ Valve uses cached security credentials (username and password) to
+ reauthenticate to the <strong>Realm</strong> each request associated
+ with an SSO session. If "false", the Valve can itself authenticate
+ requests based on the presence of a valid SSO cookie, without
+ rechecking with the <strong>Realm</strong>.</p>
+ </td></tr><tr><td align="left" valign="center"><code>cookieDomain</code></td><td align="left" valign="center">
+ <p>Sets the host domain to be used for sso cookies.</p>
+ </td></tr></table>
+
+ </blockquote></td></tr></table>
+
+
+</blockquote></td></tr></table><table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Basic Authenticator Valve"><!--()--></a><a name="Basic_Authenticator_Valve"><strong>Basic Authenticator Valve</strong></a></font></td></tr><tr><td><blockquote>
+
+ <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Basic Authenticator Valve/Introduction"><!--()--></a><a name="Basic_Authenticator_Valve/Introduction"><strong>Introduction</strong></a></font></td></tr><tr><td><blockquote>
+
+ <p>The <strong>Basic Authenticator Valve</strong> is automatically added to
+ any <a href="context.html">Context</a> that is configured to use BASIC
+ authentication.</p>
+
+ <p>If any non-default settings are required, the valve may be configured
+ within <a href="context.html">Context</a> element with the required
+ values.</p>
+
+ </blockquote></td></tr></table>
+
+ <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Basic Authenticator Valve/Attributes"><!--()--></a><a name="Basic_Authenticator_Valve/Attributes"><strong>Attributes</strong></a></font></td></tr><tr><td><blockquote>
+
+ <p>The <strong>Basic Authenticator Valve</strong> supports the following
+ configuration attributes:</p>
+
+ <table border="1" cellpadding="5"><tr><th width="15%" bgcolor="#023264"><font color="#ffffff">Attribute</font></th><th width="85%" bgcolor="#023264"><font color="#ffffff">Description</font></th></tr><tr><td align="left" valign="center"><strong><code>className</code></strong></td><td align="left" valign="center">
+ <p>Java class name of the implementation to use. This MUST be set to
+ <strong>org.apache.catalina.authenticator.BasicAuthenticator</strong>.</p>
+ </td></tr><tr><td align="left" valign="center"><code>changeSessionIdOnAuthentication</code></td><td align="left" valign="center">
+ <p>Controls if the session ID is changed if a session exists at the
+ point where users are authenticated. This is to prevent session fixation
+ attacks. If not set, the default value of <code>true</code> will be
+ used.</p>
+ </td></tr><tr><td align="left" valign="center"><code>cnonceCacheSize</code></td><td align="left" valign="center">
+ <p>To protect against replay attacks, the DIGEST authenticator tracks
+ client nonce and nonce count values. This attribute controls the size
+ of that cache. If not specified, the default value of 1000 is used.</p>
+ </td></tr><tr><td align="left" valign="center"><code>disableProxyCaching</code></td><td align="left" valign="center">
+ <p>Controls the caching of pages that are protected by security
+ constraints. Setting this to <code>false</code> may help work around
+ caching issues in some browsers but will also cause secured pages to be
+ cached by proxies which will almost certainly be a security issue.
+ <code>securePagesWithPragma</code> offers an alternative, secure,
+ workaround for browser caching issues. If not set, the default value of
+ <code>true</code> will be used.</p>
+ </td></tr><tr><td align="left" valign="center"><code>key</code></td><td align="left" valign="center">
+ <p>The secret key used by digest authentication. If not set, a secure
+ random value is generated. This should normally only be set when it is
+ necessary to keep key values constant either across server restarts
+ and/or across a cluster.</p>
+ </td></tr><tr><td align="left" valign="center"><code>nonceValidity</code></td><td align="left" valign="center">
+ <p>The time, in milliseconds, that a server generated nonce will be
+ considered valid for use in authentication. If not specified, the
+ default value of 300000 (5 minutes) will be used.</p>
+ </td></tr><tr><td align="left" valign="center"><code>opaque</code></td><td align="left" valign="center">
+ <p>The opaque server string used by digest authentication. If not set, a
+ random value is generated. This should normally only be set when it is
+ necessary to keep opaque values constant either across server restarts
+ and/or across a cluster.</p>
+ </td></tr><tr><td align="left" valign="center"><code>securePagesWithPragma</code></td><td align="left" valign="center">
+ <p>Controls the caching of pages that are protected by security
+ constraints. Setting this to <code>false</code> may help work around
+ caching issues in some browsers by using
+ <code>Cache-Control: private</code> rather than the default of
+ <code>Pragma: No-cache</code> and <code>Cache-control: No-cache</code>.
+ If not set, the default value of <code>true</code> will be used.</p>
+ </td></tr><tr><td align="left" valign="center"><code>validateUri</code></td><td align="left" valign="center">
+ <p>Should the URI be validated as required by RFC2617? If not specified,
+ the default value of <code>true</code> will be used. This should
+ normally only be set when Tomcat is located behind a reverse proxy and
+ the proxy is modifying the URI passed to Tomcat such that DIGEST
+ authentication always fails.</p>
+ </td></tr></table>
+
+ </blockquote></td></tr></table>
+
+</blockquote></td></tr></table><table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Digest Authenticator Valve"><!--()--></a><a name="Digest_Authenticator_Valve"><strong>Digest Authenticator Valve</strong></a></font></td></tr><tr><td><blockquote>
+
+ <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Digest Authenticator Valve/Introduction"><!--()--></a><a name="Digest_Authenticator_Valve/Introduction"><strong>Introduction</strong></a></font></td></tr><tr><td><blockquote>
+
+ <p>The <strong>Digest Authenticator Valve</strong> is automatically added to
+ any <a href="context.html">Context</a> that is configured to use DIGEST
+ authentication.</p>
+
+ <p>If any non-default settings are required, the valve may be configured
+ within <a href="context.html">Context</a> element with the required
+ values.</p>
+
+ </blockquote></td></tr></table>
+
+ <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Digest Authenticator Valve/Attributes"><!--()--></a><a name="Digest_Authenticator_Valve/Attributes"><strong>Attributes</strong></a></font></td></tr><tr><td><blockquote>
+
+ <p>The <strong>Digest Authenticator Valve</strong> supports the following
+ configuration attributes:</p>
+
+ <table border="1" cellpadding="5"><tr><th width="15%" bgcolor="#023264"><font color="#ffffff">Attribute</font></th><th width="85%" bgcolor="#023264"><font color="#ffffff">Description</font></th></tr><tr><td align="left" valign="center"><code>cache</code></td><td align="left" valign="center">
+ <p>Should we cache authenticated Principals if the request is part of an
+ HTTP session? If not specified, the default value of <code>false</code>
+ will be used.</p>
+ </td></tr><tr><td align="left" valign="center"><strong><code>className</code></strong></td><td align="left" valign="center">
+ <p>Java class name of the implementation to use. This MUST be set to
+ <strong>org.apache.catalina.authenticator.DigestAuthenticator</strong>.</p>
+ </td></tr><tr><td align="left" valign="center"><code>changeSessionIdOnAuthentication</code></td><td align="left" valign="center">
+ <p>Controls if the session ID is changed if a session exists at the
+ point where users are authenticated. This is to prevent session fixation
+ attacks. If not set, the default value of <code>true</code> will be
+ used.</p>
+ </td></tr><tr><td align="left" valign="center"><code>disableProxyCaching</code></td><td align="left" valign="center">
+ <p>Controls the caching of pages that are protected by security
+ constraints. Setting this to <code>false</code> may help work around
+ caching issues in some browsers but will also cause secured pages to be
+ cached by proxies which will almost certainly be a security issue.
+ <code>securePagesWithPragma</code> offers an alternative, secure,
+ workaround for browser caching issues. If not set, the default value of
+ <code>true</code> will be used.</p>
+ </td></tr><tr><td align="left" valign="center"><code>key</code></td><td align="left" valign="center">
+ <p>The secret key used by digest authentication. If not set, a secure
+ random value is generated. This should normally only be set when it is
+ necessary to keep key values constant either across server restarts
+ and/or across a cluster.</p>
+ </td></tr><tr><td align="left" valign="center"><code>nonceCacheSize</code></td><td align="left" valign="center">
+ <p>To protect against replay attacks, the DIGEST authenticator tracks
+ server nonce and nonce count values. This attribute controls the size
+ of that cache. If not specified, the default value of 1000 is used.</p>
+ </td></tr><tr><td align="left" valign="center"><code>nonceValidity</code></td><td align="left" valign="center">
+ <p>The time, in milliseconds, that a server generated nonce will be
+ considered valid for use in authentication. If not specified, the
+ default value of 300000 (5 minutes) will be used.</p>
+ </td></tr><tr><td align="left" valign="center"><code>opaque</code></td><td align="left" valign="center">
+ <p>The opaque server string used by digest authentication. If not set, a
+ random value is generated. This should normally only be set when it is
+ necessary to keep opaque values constant either across server restarts
+ and/or across a cluster.</p>
+ </td></tr><tr><td align="left" valign="center"><code>securePagesWithPragma</code></td><td align="left" valign="center">
+ <p>Controls the caching of pages that are protected by security
+ constraints. Setting this to <code>false</code> may help work around
+ caching issues in some browsers by using
+ <code>Cache-Control: private</code> rather than the default of
+ <code>Pragma: No-cache</code> and <code>Cache-control: No-cache</code>.
+ If not set, the default value of <code>true</code> will be used.</p>
+ </td></tr><tr><td align="left" valign="center"><code>validateUri</code></td><td align="left" valign="center">
+ <p>Should the URI be validated as required by RFC2617? If not specified,
+ the default value of <code>true</code> will be used. This should
+ normally only be set when Tomcat is located behind a reverse proxy and
+ the proxy is modifying the URI passed to Tomcat such that DIGEST
+ authentication always fails.</p>
+ </td></tr></table>
+
+ </blockquote></td></tr></table>
+
+</blockquote></td></tr></table><table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Form Authenticator Valve"><!--()--></a><a name="Form_Authenticator_Valve"><strong>Form Authenticator Valve</strong></a></font></td></tr><tr><td><blockquote>
+
+ <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Form Authenticator Valve/Introduction"><!--()--></a><a name="Form_Authenticator_Valve/Introduction"><strong>Introduction</strong></a></font></td></tr><tr><td><blockquote>
+
+ <p>The <strong>Form Authenticator Valve</strong> is automatically added to
+ any <a href="context.html">Context</a> that is configured to use FORM
+ authentication.</p>
+
+ <p>If any non-default settings are required, the valve may be configured
+ within <a href="context.html">Context</a> element with the required
+ values.</p>
+
+ </blockquote></td></tr></table>
+
+ <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Form Authenticator Valve/Attributes"><!--()--></a><a name="Form_Authenticator_Valve/Attributes"><strong>Attributes</strong></a></font></td></tr><tr><td><blockquote>
+
+ <p>The <strong>Form Authenticator Valve</strong> supports the following
+ configuration attributes:</p>
+
+ <table border="1" cellpadding="5"><tr><th width="15%" bgcolor="#023264"><font color="#ffffff">Attribute</font></th><th width="85%" bgcolor="#023264"><font color="#ffffff">Description</font></th></tr><tr><td align="left" valign="center"><strong><code>className</code></strong></td><td align="left" valign="center">
+ <p>Java class name of the implementation to use. This MUST be set to
+ <strong>org.apache.catalina.authenticator.FormAuthenticator</strong>.</p>
+ </td></tr><tr><td align="left" valign="center"><code>changeSessionIdOnAuthentication</code></td><td align="left" valign="center">
+ <p>Controls if the session ID is changed if a session exists at the
+ point where users are authenticated. This is to prevent session fixation
+ attacks. If not set, the default value of <code>true</code> will be
+ used.</p>
+ </td></tr><tr><td align="left" valign="center"><code>characterEncoding</code></td><td align="left" valign="center">
+ <p>Character encoding to use to read the username and password parameters
+ from the request. If not set, the encoding of the request body will be
+ used.</p>
+ </td></tr><tr><td align="left" valign="center"><code>disableProxyCaching</code></td><td align="left" valign="center">
+ <p>Controls the caching of pages that are protected by security
+ constraints. Setting this to <code>false</code> may help work around
+ caching issues in some browsers but will also cause secured pages to be
+ cached by proxies which will almost certainly be a security issue.
+ <code>securePagesWithPragma</code> offers an alternative, secure,
+ workaround for browser caching issues. If not set, the default value of
+ <code>true</code> will be used.</p>
+ </td></tr><tr><td align="left" valign="center"><code>securePagesWithPragma</code></td><td align="left" valign="center">
+ <p>Controls the caching of pages that are protected by security
+ constraints. Setting this to <code>false</code> may help work around
+ caching issues in some browsers by using
+ <code>Cache-Control: private</code> rather than the default of
+ <code>Pragma: No-cache</code> and <code>Cache-control: No-cache</code>.
+ If not set, the default value of <code>true</code> will be used.</p>
+ </td></tr></table>
+
+ </blockquote></td></tr></table>
+
+</blockquote></td></tr></table><table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="SSL Authenticator Valve"><!--()--></a><a name="SSL_Authenticator_Valve"><strong>SSL Authenticator Valve</strong></a></font></td></tr><tr><td><blockquote>
+
+ <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="SSL Authenticator Valve/Introduction"><!--()--></a><a name="SSL_Authenticator_Valve/Introduction"><strong>Introduction</strong></a></font></td></tr><tr><td><blockquote>
+
+ <p>The <strong>SSL Authenticator Valve</strong> is automatically added to
+ any <a href="context.html">Context</a> that is configured to use SSL
+ authentication.</p>
+
+ <p>If any non-default settings are required, the valve may be configured
+ within <a href="context.html">Context</a> element with the required
+ values.</p>
+
+ </blockquote></td></tr></table>
+
+ <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="SSL Authenticator Valve/Attributes"><!--()--></a><a name="SSL_Authenticator_Valve/Attributes"><strong>Attributes</strong></a></font></td></tr><tr><td><blockquote>
+
+ <p>The <strong>SSL Authenticator Valve</strong> supports the following
+ configuration attributes:</p>
+
+ <table border="1" cellpadding="5"><tr><th width="15%" bgcolor="#023264"><font color="#ffffff">Attribute</font></th><th width="85%" bgcolor="#023264"><font color="#ffffff">Description</font></th></tr><tr><td align="left" valign="center"><strong><code>className</code></strong></td><td align="left" valign="center">
+ <p>Java class name of the implementation to use. This MUST be set to
+ <strong>org.apache.catalina.authenticator.SSLAuthenticator</strong>.</p>
+ </td></tr><tr><td align="left" valign="center"><code>changeSessionIdOnAuthentication</code></td><td align="left" valign="center">
+ <p>Controls if the session ID is changed if a session exists at the
+ point where users are authenticated. This is to prevent session fixation
+ attacks. If not set, the default value of <code>true</code> will be
+ used.</p>
+ </td></tr><tr><td align="left" valign="center"><code>disableProxyCaching</code></td><td align="left" valign="center">
+ <p>Controls the caching of pages that are protected by security
+ constraints. Setting this to <code>false</code> may help work around
+ caching issues in some browsers but will also cause secured pages to be
+ cached by proxies which will almost certainly be a security issue.
+ <code>securePagesWithPragma</code> offers an alternative, secure,
+ workaround for browser caching issues. If not set, the default value of
+ <code>true</code> will be used.</p>
+ </td></tr><tr><td align="left" valign="center"><code>securePagesWithPragma</code></td><td align="left" valign="center">
+ <p>Controls the caching of pages that are protected by security
+ constraints. Setting this to <code>false</code> may help work around
+ caching issues in some browsers by using
+ <code>Cache-Control: private</code> rather than the default of
+ <code>Pragma: No-cache</code> and <code>Cache-control: No-cache</code>.
+ If not set, the default value of <code>true</code> will be used.</p>
+ </td></tr></table>
+
+ </blockquote></td></tr></table>
+
+</blockquote></td></tr></table><table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="WebDAV Fix Valve"><!--()--></a><a name="WebDAV_Fix_Valve"><strong>WebDAV Fix Valve</strong></a></font></td></tr><tr><td><blockquote>
+
+ <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="WebDAV Fix Valve/Introduction"><!--()--></a><a name="WebDAV_Fix_Valve/Introduction"><strong>Introduction</strong></a></font></td></tr><tr><td><blockquote>
+
+ <p>Microsoft operating systems have two WebDAV clients. One is used with
+ port 80, the other is used for all other ports. The implementation used with
+ port 80 does not adhere to the WebDAV specification and fails when trying to
+ communicate with the Tomcat WebDAV Servlet. This valve provides a fix for
+ this by forcing the use of the WebDAV implementation that works, even when
+ connecting via port 80.</p>
+
+ <p>This Valve may be used at the <code>Engine</code>, <code>Host</code> or
+ <code>Context</code> level as required. Normally, this Valve would be used
+ at the <code>Context</code> level.</p>
+
+ </blockquote></td></tr></table>
+
+ <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="WebDAV Fix Valve/Attributes"><!--()--></a><a name="WebDAV_Fix_Valve/Attributes"><strong>Attributes</strong></a></font></td></tr><tr><td><blockquote>
+
+ <p>The <strong>WebDAV Fix Valve</strong> supports the following
+ configuration attributes:</p>
+
+ <table border="1" cellpadding="5"><tr><th width="15%" bgcolor="#023264"><font color="#ffffff">Attribute</font></th><th width="85%" bgcolor="#023264"><font color="#ffffff">Description</font></th></tr><tr><td align="left" valign="center"><strong><code>className</code></strong></td><td align="left" valign="center">
+ <p>Java class name of the implementation to use. This MUST be set to
+ <strong>org.apache.catalina.valves.WebdavFixValve</strong>.</p>
+ </td></tr></table>
+
+ </blockquote></td></tr></table>
+
+</blockquote></td></tr></table><table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Remote IP Valve"><!--()--></a><a name="Remote_IP_Valve"><strong>Remote IP Valve</strong></a></font></td></tr><tr><td><blockquote>
+
+ <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Remote IP Valve/Introduction"><!--()--></a><a name="Remote_IP_Valve/Introduction"><strong>Introduction</strong></a></font></td></tr><tr><td><blockquote>
+
+ <p>Tomcat port of
+ <a href="http://httpd.apache.org/docs/trunk/mod/mod_remoteip.html">mod_remoteip</a>,
+ this valve replaces the apparent client remote IP address and hostname for
+ the request with the IP address list presented by a proxy or a load balancer
+ via a request headers (e.g. "X-Forwarded-For").</p>
+
+ <p>Another feature of this valve is to replace the apparent scheme
+ (http/https), server port and <code>request.secure</code> with the scheme presented
+ by a proxy or a load balancer via a request header
+ (e.g. "X-Forwarded-Proto").</p>
+
+ <p>This Valve may be used at the <code>Engine</code>, <code>Host</code> or
+ <code>Context</code> level as required. Normally, this Valve would be used
+ at the <code>Engine</code> level.</p>
+
+ <p>If used in conjunction with Remote Address/Host valves then this valve
+ should be defined first to ensure that the correct client IP address is
+ presented to the Remote Address/Host valves.</p>
+
+ </blockquote></td></tr></table>
+
+ <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Remote IP Valve/Attributes"><!--()--></a><a name="Remote_IP_Valve/Attributes"><strong>Attributes</strong></a></font></td></tr><tr><td><blockquote>
+
+ <p>The <strong>Remote IP Valve</strong> supports the
+ following configuration attributes:</p>
+
+ <table border="1" cellpadding="5"><tr><th width="15%" bgcolor="#023264"><font color="#ffffff">Attribute</font></th><th width="85%" bgcolor="#023264"><font color="#ffffff">Description</font></th></tr><tr><td align="left" valign="center"><strong><code>className</code></strong></td><td align="left" valign="center">
+ <p>Java class name of the implementation to use. This MUST be set to
+ <strong>org.apache.catalina.valves.RemoteIpValve</strong>.</p>
+ </td></tr><tr><td align="left" valign="center"><code>remoteIpHeader</code></td><td align="left" valign="center">
+ <p>Name of the HTTP Header read by this valve that holds the list of
+ traversed IP addresses starting from the requesting client. If not
+ specified, the default of <code>x-forwarded-for</code> is used.</p>
+ </td></tr><tr><td align="left" valign="center"><code>internalProxies</code></td><td align="left" valign="center">
+ <p>List of internal proxies' IP addresses as comma separated regular
+ expressions. If they appear in the <strong>remoteIpHeader</strong>
+ value, they will be trusted and will not appear in the
+ <strong>proxiesHeader</strong> value. If not specified the default value
+ of <code>10\.\d\d?\d?\.\d\d?\d?\.\d\d?\d?,
+ 192\.168\.\d\d?\d?\.\d\d?\d?,
+ 169\.254\.\d\d?\d?\.\d\d?\d?,
+ 127\.\d\d?\d?\.\d\d?\d?\.\d\d?\d?</code> will
+ be used.</p>
+ <p>
+ Note that the individual regular expressions <i>must not</i>
+ contain commas themselves, as the <code>internalProxies</code>
+ value is first split by commas, then parsed into separate regular
+ expression patterns.
+ </p>
+ </td></tr><tr><td align="left" valign="center"><code>proxiesHeader</code></td><td align="left" valign="center">
+ <p>Name of the HTTP header created by this valve to hold the list of
+ proxies that have been processed in the incoming
+ <strong>remoteIpHeader</strong>. If not specified, the default of
+ <code>x-forwarded-by</code> is used.</p>
+ </td></tr><tr><td align="left" valign="center"><code>trustedProxies</code></td><td align="left" valign="center">
+ <p>List of trusted proxies' IP addresses as comma separated regular
+ expressions. If they appear in the <strong>remoteIpHeader</strong>
+ value, they will be trusted and will appear in the
+ <strong>proxiesHeader</strong> value. If not specified, no proxies will
+ be trusted.</p>
+ </td></tr><tr><td align="left" valign="center"><code>protocolHeader</code></td><td align="left" valign="center">
+ <p>Name of the HTTP Header read by this valve that holds the protocol
+ used by the client to connect to the proxy. If not specified, the
+ default of <code>null</code> is used.</p>
+ </td></tr><tr><td align="left" valign="center"><code>protocolHeaderHttpsValue</code></td><td align="left" valign="center">
+ <p>Value of the <strong>protocolHeader</strong> to indicate that it is
+ an HTTPS request. If not specified, the default of <code>https</code> is
+ used.</p>
+ </td></tr><tr><td align="left" valign="center"><code>httpServerPort</code></td><td align="left" valign="center">
+ <p>Value returned by <code>ServletRequest.getServerPort()</code>
+ when the <strong>protocolHeader</strong> indicates <code>http</code>
+ protocol. If not specified, the default of <code>80</code> is
+ used.</p>
+ </td></tr><tr><td align="left" valign="center"><code>httpsServerPort</code></td><td align="left" valign="center">
+ <p>Value returned by <code>ServletRequest.getServerPort()</code>
+ when the <strong>protocolHeader</strong> indicates <code>https</code>
+ protocol. If not specified, the default of <code>443</code> is
+ used.</p>
+ </td></tr></table>
+
+ </blockquote></td></tr></table>
+
+</blockquote></td></tr></table><table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Stuck Thread Detection Valve"><!--()--></a><a name="Stuck_Thread_Detection_Valve"><strong>Stuck Thread Detection Valve</strong></a></font></td></tr><tr><td><blockquote>
+
+ <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Stuck Thread Detection Valve/Introduction"><!--()--></a><a name="Stuck_Thread_Detection_Valve/Introduction"><strong>Introduction</strong></a></font></td></tr><tr><td><blockquote>
+
+ <p>This valve allows to detect requests that take a long time to process, which might
+ indicate that the thread that is processing it is stuck.</p>
+ <p>When such a request is detected, the current stack trace of its thread is written
+ to Tomcat log with a WARN level.</p>
+ <p>The IDs and names of the stuck threads are available through JMX in the
+ <code>stuckThreadIds</code> and <code>stuckThreadNames</code> attributes.
+ The IDs can be used with the standard Threading JVM MBean
+ (<code>java.lang:type=Threading</code>) to retrieve other information
+ about each stuck thread.</p>
+
+ </blockquote></td></tr></table>
+
+ <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Stuck Thread Detection Valve/Attributes"><!--()--></a><a name="Stuck_Thread_Detection_Valve/Attributes"><strong>Attributes</strong></a></font></td></tr><tr><td><blockquote>
+
+ <p>The <strong>Stuck Thread Detection Valve</strong> supports the
+ following configuration attributes:</p>
+
+ <table border="1" cellpadding="5"><tr><th width="15%" bgcolor="#023264"><font color="#ffffff">Attribute</font></th><th width="85%" bgcolor="#023264"><font color="#ffffff">Description</font></th></tr><tr><td align="left" valign="center"><strong><code>className</code></strong></td><td align="left" valign="center">
+ <p>Java class name of the implementation to use. This MUST be set to
+ <strong>org.apache.catalina.valves.StuckThreadDetectionValve</strong>.
+ </p>
+ </td></tr><tr><td align="left" valign="center"><code>threshold</code></td><td align="left" valign="center">
+ <p>Minimum duration in seconds after which a thread is considered stuck.
+ Default is 600 seconds. If set to 0, the detection is disabled.</p>
+ <p>Note: since the detection is done in the background thread of the Container
+ (Engine, Host or Context) declaring this Valve, the threshold should be higher
+ than the <code>backgroundProcessorDelay</code> of this Container.</p>
+ </td></tr></table>
+
+ </blockquote></td></tr></table>
+
+</blockquote></td></tr></table></td></tr><!--FOOTER SEPARATOR--><tr><td colspan="2"><hr noshade="noshade" size="1"></td></tr><!--PAGE FOOTER--><tr><td colspan="2"><div align="center"><font color="#525D76" size="-1"><em>
+ Copyright © 1999-2014, Apache Software Foundation
+ </em></font></div></td></tr></table></body></html>
\ No newline at end of file