You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tomcat.apache.org by ma...@apache.org on 2013/08/30 09:38:50 UTC
svn commit: r1518900 [1/2] - /tomcat/trunk/webapps/docs/
Author: markt
Date: Fri Aug 30 07:38:49 2013
New Revision: 1518900
URL: http://svn.apache.org/r1518900
Log:
Part of fix for https://issues.apache.org/bugzilla/show_bug.cgi?id=55383
Improve mark-up in docs part 2
Patch by Konstantin Preißer
Modified:
tomcat/trunk/webapps/docs/maven-jars.xml
tomcat/trunk/webapps/docs/mbeans-descriptor-howto.xml
tomcat/trunk/webapps/docs/monitoring.xml
tomcat/trunk/webapps/docs/proxy-howto.xml
tomcat/trunk/webapps/docs/realm-howto.xml
tomcat/trunk/webapps/docs/rewrite.xml
tomcat/trunk/webapps/docs/security-howto.xml
tomcat/trunk/webapps/docs/security-manager-howto.xml
tomcat/trunk/webapps/docs/setup.xml
tomcat/trunk/webapps/docs/ssi-howto.xml
tomcat/trunk/webapps/docs/ssl-howto.xml
tomcat/trunk/webapps/docs/virtual-hosting-howto.xml
tomcat/trunk/webapps/docs/windows-auth-howto.xml
tomcat/trunk/webapps/docs/windows-service-howto.xml
Modified: tomcat/trunk/webapps/docs/maven-jars.xml
URL: http://svn.apache.org/viewvc/tomcat/trunk/webapps/docs/maven-jars.xml?rev=1518900&r1=1518899&r2=1518900&view=diff
==============================================================================
--- tomcat/trunk/webapps/docs/maven-jars.xml (original)
+++ tomcat/trunk/webapps/docs/maven-jars.xml Fri Aug 30 07:38:49 2013
@@ -38,13 +38,17 @@
Tomcat snapshots are located in the
<a href="http://people.apache.org/repo/m2-snapshot-repository/org/apache/tomcat/">Apache Snapshot Repository</a>.
The official URL is <source>http://people.apache.org/repo/m2-snapshot-repository/org/apache/tomcat/</source>
- Snapshots are done periodically, not on a regular basis, but when changes happen and the Tomcat team deems a new snapshot might
- useful.
+ <p>
+ Snapshots are done periodically, not on a regular basis, but when changes happen and the Tomcat team deems a new snapshot might
+ useful.
+ </p>
</subsection>
<subsection name="Tomcat Releases">
- Stable releases are published to the
- <a href="http://repo2.maven.org/maven2/org/apache/tomcat/">Central
- Maven Repositories</a>. The URL for this is
+ <p>
+ Stable releases are published to the
+ <a href="http://repo2.maven.org/maven2/org/apache/tomcat/">Central
+ Maven Repositories</a>. The URL for this is
+ </p>
<source>http://repo2.maven.org/maven2/org/apache/tomcat/</source>
</subsection>
Modified: tomcat/trunk/webapps/docs/mbeans-descriptor-howto.xml
URL: http://svn.apache.org/viewvc/tomcat/trunk/webapps/docs/mbeans-descriptor-howto.xml?rev=1518900&r1=1518899&r2=1518900&view=diff
==============================================================================
--- tomcat/trunk/webapps/docs/mbeans-descriptor-howto.xml (original)
+++ tomcat/trunk/webapps/docs/mbeans-descriptor-howto.xml Fri Aug 30 07:38:49 2013
@@ -52,28 +52,26 @@ in order to avoid a "ManagedBean is not
a mbeans-descriptor.xml file, located in the same package as the class files
it describes.</p>
-<source>
- <mbean name="LDAPRealm"
+<source><![CDATA[ <mbean name="LDAPRealm"
className="org.apache.catalina.mbeans.ClassNameMBean"
description="Custom LDAPRealm"
domain="Catalina"
group="Realm"
- type="com.myfirm.mypackage.LDAPRealm">
+ type="com.myfirm.mypackage.LDAPRealm">
- <attribute name="className"
+ <attribute name="className"
description="Fully qualified class name of the managed object"
type="java.lang.String"
- writeable="false"/>
+ writeable="false"/>
- <attribute name="debug"
+ <attribute name="debug"
description="The debugging detail level for this component"
- type="int"/>
+ type="int"/>
.
.
.
- </mbean>
-</source>
+ </mbean>]]></source>
</section>
Modified: tomcat/trunk/webapps/docs/monitoring.xml
URL: http://svn.apache.org/viewvc/tomcat/trunk/webapps/docs/monitoring.xml?rev=1518900&r1=1518899&r2=1518900&view=diff
==============================================================================
--- tomcat/trunk/webapps/docs/monitoring.xml (original)
+++ tomcat/trunk/webapps/docs/monitoring.xml Fri Aug 30 07:38:49 2013
@@ -60,32 +60,24 @@
java options for the service.
For un*xes remove <code>"set "</code> from beginning of the line.
</p>
-<source>
-set CATALINA_OPTS=-Dcom.sun.management.jmxremote
+<source><![CDATA[set CATALINA_OPTS=-Dcom.sun.management.jmxremote
-Dcom.sun.management.jmxremote.port=%my.jmx.port%
-Dcom.sun.management.jmxremote.ssl=false
- -Dcom.sun.management.jmxremote.authenticate=false
-</source>
+ -Dcom.sun.management.jmxremote.authenticate=false]]></source>
<ol>
<li>If you require authorization, add and change this:
-<source>
- -Dcom.sun.management.jmxremote.authenticate=true
+<source><![CDATA[ -Dcom.sun.management.jmxremote.authenticate=true
-Dcom.sun.management.jmxremote.password.file=../conf/jmxremote.password
- -Dcom.sun.management.jmxremote.access.file=../conf/jmxremote.access
-</source>
+ -Dcom.sun.management.jmxremote.access.file=../conf/jmxremote.access]]></source>
</li>
<li>edit the access authorization file <em>$CATALINA_BASE/conf/jmxremote.access</em>:
-<source>
-monitorRole readonly
-controlRole readwrite
-</source>
+<source><![CDATA[monitorRole readonly
+controlRole readwrite]]></source>
</li>
<li>edit the password file <em>$CATALINA_BASE/conf/jmxremote.password</em>:
-<source>
-monitorRole tomcat
-controlRole tomcat
-</source>
+<source><![CDATA[monitorRole tomcat
+controlRole tomcat]]></source>
<b>Tip</b>: The password file should be read-only and only accessible by the
operating system user Tomcat is running as.
</li>
@@ -105,87 +97,85 @@ controlRole tomcat
<p>The following example shows the JMX Accessor usage:<br/>
<em>Note:</em> The <code>name</code> attribute value was wrapped here to be
more readable. It has to be all on the same line, without spaces.</p>
- <table border="1">
- <tr><td><pre>
-<project name="Catalina Ant JMX"
+ <source><![CDATA[<project name="Catalina Ant JMX"
xmlns:jmx="antlib:org.apache.catalina.ant.jmx"
default="state"
- basedir=".">
- <property name="jmx.server.name" value="localhost" />
- <property name="jmx.server.port" value="9012" />
- <property name="cluster.server.address" value="192.168.1.75" />
- <property name="cluster.server.port" value="9025" />
+ basedir=".">
+ <property name="jmx.server.name" value="localhost" />
+ <property name="jmx.server.port" value="9012" />
+ <property name="cluster.server.address" value="192.168.1.75" />
+ <property name="cluster.server.port" value="9025" />
- <target name="state" description="Show JMX Cluster state">
- <jmx:open
+ <target name="state" description="Show JMX Cluster state">
+ <jmx:open
host="${jmx.server.name}"
port="${jmx.server.port}"
username="controlRole"
- password="tomcat"/>
- <jmx:get
+ password="tomcat"/>
+ <jmx:get
name=
"Catalina:type=IDataSender,host=localhost,
senderAddress=${cluster.server.address},senderPort=${cluster.server.port}"
attribute="connected"
resultproperty="IDataSender.backup.connected"
echo="false"
- />
- <jmx:get
+ />
+ <jmx:get
name="Catalina:type=ClusterSender,host=localhost"
attribute="senderObjectNames"
resultproperty="senderObjectNames"
echo="false"
- />
- <!-- get current maxActiveSession from ClusterTest application
+ />
+ <!-- get current maxActiveSession from ClusterTest application
echo it to Ant output and store at
- property <em>clustertest.maxActiveSessions.orginal</em>
- -->
- <jmx:get
+ property <em>clustertest.maxActiveSessions.orginal</em>
+ -->
+ <jmx:get
name="Catalina:type=Manager,context=/ClusterTest,host=localhost"
attribute="maxActiveSessions"
resultproperty="clustertest.maxActiveSessions.orginal"
echo="true"
- />
- <!-- set maxActiveSession to 100
- -->
- <jmx:set
+ />
+ <!-- set maxActiveSession to 100
+ -->
+ <jmx:set
name="Catalina:type=Manager,context=/ClusterTest,host=localhost"
attribute="maxActiveSessions"
value="100"
type="int"
- />
- <!-- get all sessions and split result as delimiter <em>SPACE</em> for easy
+ />
+ <!-- get all sessions and split result as delimiter <em>SPACE</em> for easy
access all session ids directly with Ant property sessions.[0..n].
- -->
- <jmx:invoke
+ -->
+ <jmx:invoke
name="Catalina:type=Manager,context=/ClusterTest,host=localhost"
operation="listSessionIds"
resultproperty="sessions"
echo="false"
delimiter=" "
- />
- <!-- Access session attribute <em>Hello</em> from first session.
- -->
- <jmx:invoke
+ />
+ <!-- Access session attribute <em>Hello</em> from first session.
+ -->
+ <jmx:invoke
name="Catalina:type=Manager,context=/ClusterTest,host=localhost"
operation="getSessionAttribute"
resultproperty="Hello"
echo="false"
- >
- <arg value="${sessions.0}"/>
- <arg value="Hello"/>
- </jmx:invoke>
- <!-- Query for all application manager.of the server from all hosts
+ >
+ <arg value="${sessions.0}"/>
+ <arg value="Hello"/>
+ </jmx:invoke>
+ <!-- Query for all application manager.of the server from all hosts
and bind all attributes from all found manager MBeans.
- -->
- <jmx:query
+ -->
+ <jmx:query
name="Catalina:type=Manager,*"
resultproperty="manager"
echo="true"
attributebinding="true"
- />
- <!-- echo the create properties -->
-<echo>
+ />
+ <!-- echo the create properties -->
+<echo>
senderObjectNames: ${senderObjectNames.0}
IDataSender.backup.connected: ${IDataSender.backup.connected}
session: ${sessions.0}
@@ -199,14 +189,11 @@ manager.ClusterTest.0.counterSend_EVT_SE
${manager.ClusterTest.0.counterSend_EVT_SESSION_EXPIRED}
manager.ClusterTest.0.counterSend_EVT_GET_ALL_SESSIONS:
${manager.ClusterTest.0.counterSend_EVT_GET_ALL_SESSIONS}
-</echo>
+</echo>
- </target>
+ </target>
-</project>
-</pre>
- </td></tr>
-</table>
+</project>]]></source>
<p><b>import:</b> Import the JMX Accessor Project with
<em><import file="${CATALINA.HOME}/bin/catalina-tasks.xml" /></em> and
reference the tasks with <em>jmxOpen</em>, <em>jmxSet</em>, <em>jmxGet</em>,
@@ -219,13 +206,14 @@ manager.ClusterTest.0.counterSend_EVT_GE
<section name="JMXAccessorOpenTask - JMX open connection task">
<p>
-List of Attributes<br/>
-<table border="1" cellpadding="5">
+List of Attributes
+</p>
+<table class="defaultTable">
<tr>
- <th align="center" bgcolor="aqua">Attribute</th>
- <th align="center" bgcolor="aqua">Description</th>
- <th align="center" bgcolor="aqua">Default value</th>
+ <th>Attribute</th>
+ <th>Description</th>
+ <th>Default value</th>
</tr>
<tr>
@@ -239,14 +227,14 @@ List of Attributes<br/>
<td>host</td>
<td>Set the host, shortcut the very long URL syntax.
</td>
- <td><code>localhost</code></td>
+ <td><code class="noHighlight">localhost</code></td>
</tr>
<tr>
<td>port</td>
<td>Set the remote connection port
</td>
- <td><code>8050</code></td>
+ <td><code class="noHighlight">8050</code></td>
</tr>
<tr>
@@ -268,14 +256,14 @@ List of Attributes<br/>
<td>Name of the internal connection reference. With this attribute you can
configure more the one connection inside the same Ant project.
</td>
- <td><code>jmx.server</code></td>
+ <td><code class="noHighlight">jmx.server</code></td>
</tr>
<tr>
<td>echo</td>
<td>Echo the command usage (for access analysis or debugging)
</td>
- <td><code>false</code></td>
+ <td><code class="noHighlight">false</code></td>
</tr>
<tr>
@@ -293,44 +281,40 @@ List of Attributes<br/>
</tr>
</table>
-</p>
+
<p>
-Example to open a new JMX connection<br/>
-<source>
- <jmx:open
+Example to open a new JMX connection
+</p>
+<source><![CDATA[ <jmx:open
host="${jmx.server.name}"
port="${jmx.server.port}"
- />
-</source>
-</p>
+ />]]></source>
+
<p>
Example to open a JMX connection from URL, with authorization and
-store at other reference <br/>
-<source>
- <jmx:open
+store at other reference
+</p>
+<source><![CDATA[ <jmx:open
url="service:jmx:rmi:///jndi/rmi://localhost:9024/jmxrmi"
ref="jmx.server.9024"
username="controlRole"
password="tomcat"
- />
-</source>
-</p>
+ />]]></source>
<p>
Example to open a JMX connection from URL, with authorization and
store at other reference, but only when property <em>jmx.if</em> exists and
-<em>jmx.unless</em> not exists<br/>
-<source>
- <jmx:open
+<em>jmx.unless</em> not exists
+</p>
+<source><![CDATA[ <jmx:open
url="service:jmx:rmi:///jndi/rmi://localhost:9024/jmxrmi"
ref="jmx.server.9024"
username="controlRole"
password="tomcat"
if="jmx.if"
unless="jmx.unless"
- />
-</source>
-</p>
+ />]]></source>
+
<p><b>Note</b>: All properties from <em>jmxOpen</em> task also exists at all
other tasks and conditions.
</p>
@@ -342,13 +326,14 @@ other tasks and conditions.
<section name="JMXAccessorGetTask: get attribute value Ant task">
<p>
-List of Attributes<br/>
-<table border="1" cellpadding="5">
+List of Attributes
+</p>
+<table class="defaultTable">
<tr>
- <th align="center" bgcolor="aqua">Attribute</th>
- <th align="center" bgcolor="aqua">Description</th>
- <th align="center" bgcolor="aqua">Default value</th>
+ <th>Attribute</th>
+ <th>Description</th>
+ <th>Default value</th>
</tr>
<tr>
@@ -369,14 +354,14 @@ List of Attributes<br/>
<td>ref</td>
<td>JMX Connection reference
</td>
- <td><code>jmx.server</code></td>
+ <td><code class="noHighlight">jmx.server</code></td>
</tr>
<tr>
<td>echo</td>
<td>Echo command usage (access and result)
</td>
- <td><code>false</code></td>
+ <td><code class="noHighlight">false</code></td>
</tr>
<tr>
@@ -399,56 +384,53 @@ List of Attributes<br/>
<td>When return value is an array, save result as property list
(<em>$resultproperty.[0..N]</em> and <em>$resultproperty.length</em>)
</td>
- <td><code>true</code></td>
+ <td><code class="noHighlight">true</code></td>
</tr>
</table>
-</p>
+
<p>
-Example to get remote MBean attribute from default JMX connection <br/>
-<source>
- <jmx:get
+Example to get remote MBean attribute from default JMX connection
+</p>
+<source><![CDATA[ <jmx:get
name="Catalina:type=Manager,context=/servlets-examples,host=localhost"
attribute="maxActiveSessions"
resultproperty="servlets-examples.maxActiveSessions"
- />
-</source>
-</p>
+ />]]></source>
+
<p>
-Example to get and result array and split it at separate properties<br/>
-<source>
- <jmx:get
+Example to get and result array and split it at separate properties
+</p>
+<source><![CDATA[ <jmx:get
name="Catalina:type=ClusterSender,host=localhost"
attribute="senderObjectNames"
resultproperty="senderObjectNames"
- />
-</source>
+ />]]></source>
+<p>
Access the senderObjectNames properties with:
-<source>
- ${senderObjectNames.length} give the number of returned sender list.
- ${senderObjectNames.[0..N]} found all sender object names
-</source>
</p>
+<source><![CDATA[ ${senderObjectNames.length} give the number of returned sender list.
+ ${senderObjectNames.[0..N]} found all sender object names]]></source>
+
<p>
Example to get IDataSender attribute connected only when cluster is configured.<br/>
<em>Note:</em> The <code>name</code> attribute value was wrapped here to be
more readable. It has to be all on the same line, without spaces.
</p>
-<source>
- <jmx:query
+<source><![CDATA[
+ <jmx:query
failonerror="false"
name="Catalina:type=Cluster,host=${tomcat.application.host}"
resultproperty="cluster"
- />
- <jmx:get
+ />
+ <jmx:get
name=
"Catalina:type=IDataSender,host=${tomcat.application.host},
senderAddress=${cluster.backup.address},senderPort=${cluster.backup.port}"
attribute="connected"
resultproperty="datasender.connected"
- if="cluster.0.name" />
-</source>
+ if="cluster.0.name" />]]></source>
</section>
@@ -457,13 +439,14 @@ senderAddress=${cluster.backup.address},
<section name="JMXAccessorSetTask: set attribute value Ant task">
<p>
-List of Attributes<br/>
-<table border="1" cellpadding="5">
+List of Attributes
+</p>
+<table class="defaultTable">
<tr>
- <th align="center" bgcolor="aqua">Attribute</th>
- <th align="center" bgcolor="aqua">Description</th>
- <th align="center" bgcolor="aqua">Default value</th>
+ <th>Attribute</th>
+ <th>Description</th>
+ <th>Default value</th>
</tr>
<tr>
@@ -491,36 +474,35 @@ List of Attributes<br/>
<td>type</td>
<td>type of the attribute.
</td>
- <td>java.lang.String</td>
+ <td><code class="noHighlight">java.lang.String</code></td>
</tr>
<tr>
<td>ref</td>
<td>JMX Connection reference
</td>
- <td><code>jmx.server</code></td>
+ <td><code class="noHighlight">jmx.server</code></td>
</tr>
<tr>
<td>echo</td>
<td>Echo command usage (access and result)
</td>
- <td><code>false</code></td>
+ <td><code class="noHighlight">false</code></td>
</tr>
</table>
-</p>
+
<p>
-Example to set remote MBean attribute value<br/>
-<source>
- <jmx:set
+Example to set remote MBean attribute value
+</p>
+<source><![CDATA[ <jmx:set
name="Catalina:type=Manager,context=/servlets-examples,host=localhost"
attribute="maxActiveSessions"
value="500"
type="int"
- />
-</source>
-</p>
+ />]]></source>
+
</section>
@@ -529,13 +511,14 @@ Example to set remote MBean attribute va
<section name="JMXAccessorInvokeTask: invoke MBean operation Ant task">
<p>
-List of Attributes<br/>
-<table border="1" cellpadding="5">
+List of Attributes
+</p>
+<table class="defaultTable">
<tr>
- <th align="center" bgcolor="aqua">Attribute</th>
- <th align="center" bgcolor="aqua">Description</th>
- <th align="center" bgcolor="aqua">Default value</th>
+ <th>Attribute</th>
+ <th>Description</th>
+ <th>Default value</th>
</tr>
<tr>
@@ -557,14 +540,14 @@ List of Attributes<br/>
<td>ref</td>
<td>JMX Connection reference
</td>
- <td><code>jmx.server</code></td>
+ <td><code class="noHighlight">jmx.server</code></td>
</tr>
<tr>
<td>echo</td>
<td>Echo command usage (access and result)
</td>
- <td><code>false</code></td>
+ <td><code class="noHighlight">false</code></td>
</tr>
<tr>
@@ -587,57 +570,56 @@ List of Attributes<br/>
<td>When return value is an array, save result as property list
(<em>$resultproperty.[0..N]</em> and <em>$resultproperty.length</em>)
</td>
- <td><code>true</code></td>
+ <td><code class="noHighlight">true</code></td>
</tr>
</table>
-</p>
+
<p>
-stop an application <br/>
-<source>
- <jmx:invoke
+stop an application
+</p>
+<source><![CDATA[ <jmx:invoke
name="Catalina:type=Manager,context=/servlets-examples,host=localhost"
- operation="stop"/>
-</source>
+ operation="stop"/>]]></source>
+<p>
Now you can find the sessionid at <em>${sessions.[0..N}</em> properties and access the count
with ${sessions.length} property.
</p>
<p>
-Example to get all sessionids <br/>
-<source>
- <jmx:invoke
+Example to get all sessionids
+</p>
+<source><![CDATA[ <jmx:invoke
name="Catalina:type=Manager,context=/servlets-examples,host=localhost"
operation="listSessionIds"
resultproperty="sessions"
delimiter=" "
- />
-</source>
+ />]]></source>
+<p>
Now you can find the sessionid at <em>${sessions.[0..N}</em> properties and access the count
with ${sessions.length} property.
</p>
<p>
-Example to get remote MBean session attribute from session ${sessionid.0}<br/>
-<source>
- <jmx:invoke
+Example to get remote MBean session attribute from session ${sessionid.0}
+</p>
+<source><![CDATA[ <jmx:invoke
name="Catalina:type=Manager,context=/ClusterTest,host=localhost"
operation="getSessionAttribute"
- resultproperty="hello">
- <arg value="${sessionid.0}"/>
- <arg value="Hello" />
- </jmx:invoke>
-</source>
-</p>
+ resultproperty="hello">
+ <arg value="${sessionid.0}"/>
+ <arg value="Hello" />
+ </jmx:invoke>]]></source>
+
<p>
Example to create a new access logger valve at vhost <em>localhost</em>
-<source>
- <jmx:invoke
+</p>
+<source><![CDATA[ <jmx:invoke
name="Catalina:type=MBeanFactory"
operation="createAccessLoggerValve"
resultproperty="accessLoggerObjectName"
- >
- <arg value="Catalina:type=Host,host=localhost"/>
- </jmx:invoke>
-</source>
+ >
+ <arg value="Catalina:type=Host,host=localhost"/>
+ </jmx:invoke>]]></source>
+<p>
Now you can find new MBean with name stored at <em>${accessLoggerObjectName}</em>
property.
</p>
@@ -649,13 +631,14 @@ property.
<section name="JMXAccessorQueryTask: query MBean Ant task">
<p>
-List of Attributes<br/>
-<table border="1" cellpadding="5">
+List of Attributes
+</p>
+<table class="defaultTable">
<tr>
- <th align="center" bgcolor="aqua">Attribute</th>
- <th align="center" bgcolor="aqua">Description</th>
- <th align="center" bgcolor="aqua">Default value</th>
+ <th>Attribute</th>
+ <th>Description</th>
+ <th>Default value</th>
</tr>
<tr>
@@ -669,14 +652,14 @@ List of Attributes<br/>
<td>ref</td>
<td>JMX Connection reference
</td>
- <td><code>jmx.server</code></td>
+ <td><code class="noHighlight">jmx.server</code></td>
</tr>
<tr>
<td>echo</td>
<td>Echo command usage (access and result)
</td>
- <td><code>false</code></td>
+ <td><code class="noHighlight">false</code></td>
</tr>
<tr>
@@ -690,7 +673,7 @@ List of Attributes<br/>
<td>attributebinduing</td>
<td>bind ALL MBean attributes in addition to <em>name</em>
</td>
- <td><code>false</code></td>
+ <td><code class="noHighlight">false</code></td>
</tr>
<tr>
@@ -706,71 +689,71 @@ List of Attributes<br/>
<td>When return value is an array, save result as property list
(<em>$resultproperty.[0..N]</em> and <em>$resultproperty.length</em>)
</td>
- <td><code>true</code></td>
+ <td><code class="noHighlight">true</code></td>
</tr>
</table>
-</p>
+
<p>
-Get all Manager ObjectNames from all services and Hosts <br/>
-<source>
- <jmx:query
+Get all Manager ObjectNames from all services and Hosts
+</p>
+<source><![CDATA[ <jmx:query
name="Catalina:type=Manager,*
- resultproperty="manager" />
-</source>
+ resultproperty="manager" />]]></source>
+<p>
Now you can find the Session Manager at <em>${manager.[0..N].name}</em>
properties and access the result object counter with ${manager.length} property.
</p>
<p>
-Example to get the Manager from <em>servlet-examples</em> application an bind all MBean properties<br/>
-<source>
- <jmx:query
+Example to get the Manager from <em>servlet-examples</em> application an bind all MBean properties
+</p>
+<source><![CDATA[ <jmx:query
name="Catalina:type=Manager,context=/servlet-examples,host=localhost*"
attributebinding="true"
- resultproperty="manager.servletExamples" />
-</source>
+ resultproperty="manager.servletExamples" />]]></source>
+<p>
Now you can find the manager at <em>${manager.servletExamples.0.name}</em> property
and can access all properties from this manager with <em>${manager.servletExamples.0.[manager attribute names]</em>}.
The result object counter from MBeans is stored ad ${manager.length} property.
</p>
<p>
-Example to get all MBeans from a server and store inside an external XML property file<br/>
-<source>
-<project name="jmx.query"
+Example to get all MBeans from a server and store inside an external XML property file
+</p>
+<source><![CDATA[<project name="jmx.query"
xmlns:jmx="antlib:org.apache.catalina.ant.jmx"
- default="query-all" basedir=".">
-<property name="jmx.host" value="localhost"/>
-<property name="jmx.port" value="8050"/>
-<property name="jmx.username" value="controlRole"/>
-<property name="jmx.password" value="tomcat"/>
-
-<target name="query-all" description="Query all MBeans of a server">
- <!-- Configure connection -->
- <jmx:open
+ default="query-all" basedir=".">
+<property name="jmx.host" value="localhost"/>
+<property name="jmx.port" value="8050"/>
+<property name="jmx.username" value="controlRole"/>
+<property name="jmx.password" value="tomcat"/>
+
+<target name="query-all" description="Query all MBeans of a server">
+ <!-- Configure connection -->
+ <jmx:open
host="${jmx.host}"
port="${jmx.port}"
ref="jmx.server"
username="${jmx.username}"
- password="${jmx.password}"/>
+ password="${jmx.password}"/>
- <!-- Query MBean list -->
- <jmx:query
+ <!-- Query MBean list -->
+ <jmx:query
name="*:*"
resultproperty="mbeans"
- attributebinding="false"/>
+ attributebinding="false"/>
- <echoproperties
+ <echoproperties
destfile="mbeans.properties"
prefix="mbeans."
- format="xml"/>
+ format="xml"/>
- <!-- Print results -->
- <echo message=
- "Number of MBeans in server ${jmx.host}:${jmx.port} is ${mbeans.length}"/>
-</target>
-</project>
-</source>
+ <!-- Print results -->
+ <echo message=
+ "Number of MBeans in server ${jmx.host}:${jmx.port} is ${mbeans.length}"/>
+</target>
+</project>]]></source>
+<p>
Now you can find all MBeans inside the file <em>mbeans.properties</em>.
</p>
@@ -781,13 +764,14 @@ Now you can find all MBeans inside the f
<section name="JMXAccessorCreateTask: remote create MBean Ant task">
<p>
-List of Attributes<br/>
-<table border="1" cellpadding="5">
+List of Attributes
+</p>
+<table class="defaultTable">
<tr>
- <th align="center" bgcolor="aqua">Attribute</th>
- <th align="center" bgcolor="aqua">Description</th>
- <th align="center" bgcolor="aqua">Default value</th>
+ <th>Attribute</th>
+ <th>Description</th>
+ <th>Default value</th>
</tr>
<tr>
@@ -817,30 +801,29 @@ List of Attributes<br/>
<td>ref</td>
<td>JMX Connection reference
</td>
- <td><code>jmx.server</code></td>
+ <td><code class="noHighlight">jmx.server</code></td>
</tr>
<tr>
<td>echo</td>
<td>Echo command usage (access and result)
</td>
- <td><code>false</code></td>
+ <td><code class="noHighlight">false</code></td>
</tr>
</table>
-</p>
+
<p>
-Example to create remote MBean<br/>
-<source>
- <jmx:create
+Example to create remote MBean
+</p>
+<source><![CDATA[ <jmx:create
ref="${jmx.reference}"
name="Catalina:type=MBeanFactory"
className="org.apache.commons.modeler.BaseModelMBean"
- classLoader="Catalina:type=ServerClassLoader,name=server">
- <arg value="org.apache.catalina.mbeans.MBeanFactory" />
- </jmx:create>
-</source>
-</p>
+ classLoader="Catalina:type=ServerClassLoader,name=server">
+ <arg value="org.apache.catalina.mbeans.MBeanFactory" />
+ </jmx:create>]]></source>
+
<p>
<b>Warning</b>: Many Tomcat MBeans can't be linked to their parent once<br/>
created. The Valve, Cluster and Realm MBeans are not automatically<br/>
@@ -855,13 +838,14 @@ Example to create remote MBean<br/>
<section name="JMXAccessorUnregisterTask: remote unregister MBean Ant task">
<p>
-List of Attributes<br/>
-<table border="1" cellpadding="5">
+List of Attributes
+</p>
+<table class="defaultTable">
<tr>
- <th align="center" bgcolor="aqua">Attribute</th>
- <th align="center" bgcolor="aqua">Description</th>
- <th align="center" bgcolor="aqua">Default value</th>
+ <th>Attribute</th>
+ <th>Description</th>
+ <th>Default value</th>
</tr>
<tr>
@@ -875,26 +859,25 @@ List of Attributes<br/>
<td>ref</td>
<td>JMX Connection reference
</td>
- <td><code>jmx.server</code></td>
+ <td><code class="noHighlight">jmx.server</code></td>
</tr>
<tr>
<td>echo</td>
<td>Echo command usage (access and result)
</td>
- <td><code>false</code></td>
+ <td><code class="noHighlight">false</code></td>
</tr>
</table>
-</p>
+
<p>
-Example to unregister remote MBean<br/>
-<source>
- <jmx:unregister
- name="Catalina:type=MBeanFactory"
- />
-</source>
+Example to unregister remote MBean
</p>
+<source><![CDATA[ <jmx:unregister
+ name="Catalina:type=MBeanFactory"
+ />]]></source>
+
<p>
<b>Warning</b>: A lot of Tomcat MBeans can't be unregister.<br/>
The MBeans are not unlinked from their parent. Use <em>MBeanFacrory</em><br/>
@@ -908,13 +891,14 @@ Example to unregister remote MBean<br/>
<section name="JMXAccessorCondition: express condition">
<p>
-List of Attributes<br/>
-<table border="1" cellpadding="5">
+List of Attributes
+</p>
+<table class="defaultTable">
<tr>
- <th align="center" bgcolor="aqua">Attribute</th>
- <th align="center" bgcolor="aqua">Description</th>
- <th align="center" bgcolor="aqua">Default value</th>
+ <th>Attribute</th>
+ <th>Description</th>
+ <th>Default value</th>
</tr>
<tr>
@@ -928,14 +912,14 @@ List of Attributes<br/>
<td>host</td>
<td>Set the host, shortcut the very long URL syntax.
</td>
- <td><code>localhost</code></td>
+ <td><code class="noHighlight">localhost</code></td>
</tr>
<tr>
<td>port</td>
<td>Set the remote connection port
</td>
- <td><code>8050</code></td>
+ <td><code class="noHighlight">8050</code></td>
</tr>
<tr>
@@ -957,7 +941,7 @@ List of Attributes<br/>
<td>Name of the internal connection reference. With this attribute you can
configure more the one connection inside the same Ant project.
</td>
- <td><code>jmx.server</code></td>
+ <td><code class="noHighlight">jmx.server</code></td>
</tr>
<tr>
@@ -971,7 +955,7 @@ List of Attributes<br/>
<td>echo</td>
<td>Echo condition usage (access and result)
</td>
- <td><code>false</code></td>
+ <td><code class="noHighlight">false</code></td>
</tr>
<tr>
@@ -999,7 +983,7 @@ List of Attributes<br/>
<td>type</td>
<td>Value type to express operation (support <em>long</em> and <em>double</em>)
</td>
- <td><code>long</code></td>
+ <td><code class="noHighlight">long</code></td>
</tr>
<tr>
@@ -1014,20 +998,20 @@ List of Attributes<br/>
<li><= lesser than or equals (&lt;=)</li>
</ul>
</td>
- <td><code>==</code></td>
+ <td><code class="noHighlight">==</code></td>
</tr>
</table>
-</p>
+
<p>
-Wait for server connection and that cluster backup node is accessable<br/>
-<source>
-<target name="wait">
- <waitfor maxwait="${maxwait}" maxwaitunit="second" timeoutproperty="server.timeout" >
- <and>
- <socket server="${server.name}" port="${server.port}"/>
- <http url="${url}"/>
- <jmx:condition
+Wait for server connection and that cluster backup node is accessable
+</p>
+<source><![CDATA[<target name="wait">
+ <waitfor maxwait="${maxwait}" maxwaitunit="second" timeoutproperty="server.timeout" >
+ <and>
+ <socket server="${server.name}" port="${server.port}"/>
+ <http url="${url}"/>
+ <jmx:condition
operation="=="
host="localhost"
port="9014"
@@ -1037,14 +1021,12 @@ Wait for server connection and that clus
"Catalina:type=IDataSender,host=localhost,senderAddress=192.168.111.1,senderPort=9025"
attribute="connected"
value="true"
- />
- </and>
- </waitfor>
- <fail if="server.timeout" message="Server ${url} don't answer inside ${maxwait} sec" />
- <echo message="Server ${url} alive" />
-</target>
-</source>
-</p>
+ />
+ </and>
+ </waitfor>
+ <fail if="server.timeout" message="Server ${url} don't answer inside ${maxwait} sec" />
+ <echo message="Server ${url} alive" />
+</target>]]></source>
</section>
@@ -1053,13 +1035,14 @@ Wait for server connection and that clus
<section name="JMXAccessorEqualsCondition: equals MBean Ant condition">
<p>
-List of Attributes<br/>
-<table border="1" cellpadding="5">
+List of Attributes
+</p>
+<table class="defaultTable">
<tr>
- <th align="center" bgcolor="aqua">Attribute</th>
- <th align="center" bgcolor="aqua">Description</th>
- <th align="center" bgcolor="aqua">Default value</th>
+ <th>Attribute</th>
+ <th>Description</th>
+ <th>Default value</th>
</tr>
<tr>
@@ -1073,14 +1056,14 @@ List of Attributes<br/>
<td>host</td>
<td>Set the host, shortcut the very long URL syntax.
</td>
- <td><code>localhost</code></td>
+ <td><code class="noHighlight">localhost</code></td>
</tr>
<tr>
<td>port</td>
<td>Set the remote connection port
</td>
- <td><code>8050</code></td>
+ <td><code class="noHighlight">8050</code></td>
</tr>
<tr>
@@ -1102,7 +1085,7 @@ List of Attributes<br/>
<td>Name of the internal connection reference. With this attribute you can
configure more the one connection inside the same Ant project.
</td>
- <td><code>jmx.server</code></td>
+ <td><code class="noHighlight">jmx.server</code></td>
</tr>
<tr>
@@ -1117,20 +1100,20 @@ List of Attributes<br/>
<td>echo</td>
<td>Echo condition usage (access and result)
</td>
- <td><code>false</code></td>
+ <td><code class="noHighlight">false</code></td>
</tr>
</table>
-</p>
+
<p>
-Wait for server connection and that cluster backup node is accessible<br/>
-<source>
-<target name="wait">
- <waitfor maxwait="${maxwait}" maxwaitunit="second" timeoutproperty="server.timeout" >
- <and>
- <socket server="${server.name}" port="${server.port}"/>
- <http url="${url}"/>
- <jmx:equals
+Wait for server connection and that cluster backup node is accessible
+</p>
+<source><![CDATA[<target name="wait">
+ <waitfor maxwait="${maxwait}" maxwaitunit="second" timeoutproperty="server.timeout" >
+ <and>
+ <socket server="${server.name}" port="${server.port}"/>
+ <http url="${url}"/>
+ <jmx:equals
host="localhost"
port="9014"
username="controlRole"
@@ -1139,14 +1122,12 @@ Wait for server connection and that clus
"Catalina:type=IDataSender,host=localhost,senderAddress=192.168.111.1,senderPort=9025"
attribute="connected"
value="true"
- />
- </and>
- </waitfor>
- <fail if="server.timeout" message="Server ${url} don't answer inside ${maxwait} sec" />
- <echo message="Server ${url} alive" />
-</target>
-</source>
-</p>
+ />
+ </and>
+ </waitfor>
+ <fail if="server.timeout" message="Server ${url} don't answer inside ${maxwait} sec" />
+ <echo message="Server ${url} alive" />
+</target>]]></source>
</section>
Modified: tomcat/trunk/webapps/docs/proxy-howto.xml
URL: http://svn.apache.org/viewvc/tomcat/trunk/webapps/docs/proxy-howto.xml?rev=1518900&r1=1518899&r2=1518900&view=diff
==============================================================================
--- tomcat/trunk/webapps/docs/proxy-howto.xml (original)
+++ tomcat/trunk/webapps/docs/proxy-howto.xml Fri Aug 30 07:38:49 2013
@@ -71,54 +71,48 @@ forward requests for a particular web ap
without having to configure a web connector such as <code>mod_jk</code>.
To accomplish this, you need to perform the following tasks:</p>
<ol>
-<li>Configure your copy of Apache so that it includes the
+<li><p>Configure your copy of Apache so that it includes the
<code>mod_proxy</code> module. If you are building from source,
the easiest way to do this is to include the
<code>--enable-module=proxy</code> directive on the
- <code>./configure</code> command line.</li>
-<li>If not already added for you, make sure that you are loading the
+ <code>./configure</code> command line.</p></li>
+<li><p>If not already added for you, make sure that you are loading the
<code>mod_proxy</code> module at Apache startup time, by using the
- following directives in your <code>httpd.conf</code> file:
-<source>
-LoadModule proxy_module {path-to-modules}/mod_proxy.so
-AddModule mod_proxy.c
-</source></li>
-<li>Include two directives in your <code>httpd.conf</code> file for
+ following directives in your <code>httpd.conf</code> file:</p>
+<source><![CDATA[LoadModule proxy_module {path-to-modules}/mod_proxy.so
+AddModule mod_proxy.c]]></source></li>
+<li><p>Include two directives in your <code>httpd.conf</code> file for
each web application that you wish to forward to Tomcat. For
- example, to forward an application at context path <code>/myapp</code>:
-<source>
-ProxyPass /myapp http://localhost:8081/myapp
-ProxyPassReverse /myapp http://localhost:8081/myapp
-</source>
- which tells Apache to forward URLs of the form
+ example, to forward an application at context path <code>/myapp</code>:</p>
+<source><![CDATA[ProxyPass /myapp http://localhost:8081/myapp
+ProxyPassReverse /myapp http://localhost:8081/myapp]]></source>
+ <p>which tells Apache to forward URLs of the form
<code>http://localhost/myapp/*</code> to the Tomcat connector
- listening on port 8081.</li>
-<li>Configure your copy of Tomcat to include a special
+ listening on port 8081.</p></li>
+<li><p>Configure your copy of Tomcat to include a special
<code><Connector></code> element, with appropriate
- proxy settings, for example:
-<source>
-<Connector port="8081" ...
+ proxy settings, for example:</p>
+<source><![CDATA[<Connector port="8081" ...
proxyName="www.mycompany.com"
- proxyPort="80"/>
-</source>
- which will cause servlets inside this web application to think that
+ proxyPort="80"/>]]></source>
+ <p>which will cause servlets inside this web application to think that
all proxied requests were directed to <code>www.mycompany.com</code>
- on port 80.</li>
-<li>It is legal to omit the <code>proxyName</code> attribute from the
+ on port 80.</p></li>
+<li><p>It is legal to omit the <code>proxyName</code> attribute from the
<code><Connector></code> element. If you do so, the value
returned by <code>request.getServerName()</code> will by the host
name on which Tomcat is running. In the example above, it would be
- <code>localhost</code>.</li>
-<li>If you also have a <code><Connector></code> listening on port
+ <code>localhost</code>.</p></li>
+<li><p>If you also have a <code><Connector></code> listening on port
8080 (nested within the same <a href="config/service.html">Service</a>
element), the requests to either port will share the same set of
- virtual hosts and web applications.</li>
-<li>You might wish to use the IP filtering features of your operating
+ virtual hosts and web applications.</p></li>
+<li><p>You might wish to use the IP filtering features of your operating
system to restrict connections to port 8081 (in this example) to
be allowed <strong>only</strong> from the server that is running
- Apache.</li>
-<li>Alternatively, you can set up a series of web applications that are
- only available via proxying, as follows:
+ Apache.</p></li>
+<li><p>Alternatively, you can set up a series of web applications that are
+ only available via proxying, as follows:</p>
<ul>
<li>Configure another <code><Service></code> that contains
only a <code><Connector></code> for the proxy port.</li>
@@ -129,9 +123,9 @@ ProxyPassReverse /myapp http://localho
<li>Optionally, protect port 8081 with IP filters as described
earlier.</li>
</ul></li>
-<li>When requests are proxied by Apache, the web server will be recording
+<li><p>When requests are proxied by Apache, the web server will be recording
these requests in its access log. Therefore, you will generally want to
- disable any access logging performed by Tomcat itself.</li>
+ disable any access logging performed by Tomcat itself.</p></li>
</ol>
<p>When requests are proxied in this manner, <strong>all</strong> requests
Modified: tomcat/trunk/webapps/docs/realm-howto.xml
URL: http://svn.apache.org/viewvc/tomcat/trunk/webapps/docs/realm-howto.xml?rev=1518900&r1=1518899&r2=1518900&view=diff
==============================================================================
--- tomcat/trunk/webapps/docs/realm-howto.xml (original)
+++ tomcat/trunk/webapps/docs/realm-howto.xml Fri Aug 30 07:38:49 2013
@@ -53,7 +53,7 @@ Specification (Version 2.4)</a>, Section
<p>For information about utilizing the <em>Single Sign On</em> feature of
Tomcat (allowing a user to authenticate themselves once across the entire
set of web applications associated with a virtual host), see
-<a href="config/host.html#Single Sign On">here</a>.</p>
+<a href="config/host.html#Single_Sign_On">here</a>.</p>
</section>
@@ -104,14 +104,13 @@ sources of authentication information:</
</ul>
<p>It is also possible to write your own <code>Realm</code> implementation,
-and integrate it with Tomcat. To do so, you need to:
+and integrate it with Tomcat. To do so, you need to:</p>
<ul>
<li>Implement <code>org.apache.catalina.Realm</code>,</li>
<li>Place your compiled realm in $CATALINA_HOME/lib,</li>
<li>Declare your realm as described in the "Configuring a Realm" section below,</li>
<li>Declare your realm to the <a href="mbeans-descriptor-howto.html">MBeans Descriptor</a>.</li>
</ul>
-</p>
</subsection>
@@ -123,10 +122,8 @@ important to understand, in general term
general, you will be adding an XML element to your <code>conf/server.xml</code>
configuration file, that looks something like this:</p>
-<source>
-<Realm className="... class name for this implementation"
- ... other attributes for this implementation .../>
-</source>
+<source><![CDATA[<Realm className="... class name for this implementation"
+ ... other attributes for this implementation .../>]]></source>
<p>The <code><Realm></code> element can be nested inside any one of
of the following <code>Container</code> elements. The location of the
@@ -196,8 +193,7 @@ techniques are supported:</p>
method will return the digested password.</li>
<li>If you want to execute a command line utility to calculate the digested
password, simply execute
-<source>CATALINA_HOME/bin/digest.[bat|sh] -a {algorithm} {cleartext-password}
-</source>
+<source>CATALINA_HOME/bin/digest.[bat|sh] -a {algorithm} {cleartext-password}</source>
and the digested version of this cleartext password will be returned to
standard output.</li>
</ul>
@@ -213,10 +209,9 @@ techniques are supported:</p>
not specified in web.xml, the default value of <code>Authentication
required</code> is used.</p>
-<p>Non-ASCII usernames and/or passwords are supported using
-<source>CATALINA_HOME/bin/digest.[bat|sh] -a {algorithm} -e {encoding} {input}
-</source>
-but care is required to ensure that the non-ASCII input is
+<p>Non-ASCII usernames and/or passwords are supported using</p>
+<source>CATALINA_HOME/bin/digest.[bat|sh] -a {algorithm} -e {encoding} {input}</source>
+<p>but care is required to ensure that the non-ASCII input is
correctly passed to the digester.
The digester returns <code>{input}:{digest}</code>. If the input appears
corrupted in the return, the digest will be invalid.</p>
@@ -271,7 +266,7 @@ users.</p>
<subsection name="JDBCRealm">
-<h3>Introduction</h3>
+<h5>Introduction</h5>
<p><strong>JDBCRealm</strong> is an implementation of the Tomcat
<code>Realm</code> interface that looks up users in a relational database
@@ -303,7 +298,7 @@ database structure conforms to the follo
</ul></li>
</ul>
-<h3>Quick Start</h3>
+<h5>Quick Start</h5>
<p>To set up Tomcat to use JDBCRealm, you will need to follow these steps:</p>
<ol>
@@ -320,20 +315,19 @@ database structure conforms to the follo
<li>Restart Tomcat if it is already running.</li>
</ol>
-<h3>Realm Element Attributes</h3>
+<h5>Realm Element Attributes</h5>
<p>To configure JDBCRealm, you will create a <code><Realm></code>
element and nest it in your <code>$CATALINA_BASE/conf/server.xml</code> file,
-as described <a href="#Configuring a Realm">above</a>. The attributes for the
+as described <a href="#Configuring_a_Realm">above</a>. The attributes for the
JDBCRealm are defined in the <a href="config/realm.html">Realm</a> configuration
documentation.</p>
-<h3>Example</h3>
+<h5>Example</h5>
<p>An example SQL script to create the needed tables might look something
like this (adapt the syntax as required for your particular database):</p>
-<source>
-create table users (
+<source>create table users (
user_name varchar(15) not null primary key,
user_pass varchar(15) not null
);
@@ -342,22 +336,19 @@ create table user_roles (
user_name varchar(15) not null,
role_name varchar(15) not null,
primary key (user_name, role_name)
-);
-</source>
+);</source>
<p>Example <code>Realm</code> elements are included (commented out) in the
default <code>$CATALINA_BASE/conf/server.xml</code> file. Here's an example
for using a MySQL database called "authority", configured with the tables
described above, and accessed with username "dbuser" and password "dbpass":</p>
-<source>
-<Realm className="org.apache.catalina.realm.JDBCRealm"
+<source><![CDATA[<Realm className="org.apache.catalina.realm.JDBCRealm"
driverName="org.gjt.mm.mysql.Driver"
- connectionURL="jdbc:mysql://localhost/authority?user=dbuser&amp;password=dbpass"
+ connectionURL="jdbc:mysql://localhost/authority?user=dbuser&password=dbpass"
userTable="users" userNameCol="user_name" userCredCol="user_pass"
- userRoleTable="user_roles" roleNameCol="role_name"/>
-</source>
+ userRoleTable="user_roles" roleNameCol="role_name"/>]]></source>
-<h3>Additional Notes</h3>
+<h5>Additional Notes</h5>
<p>JDBCRealm operates according to the following rules:</p>
<ul>
@@ -384,7 +375,7 @@ described above, and accessed with usern
<subsection name="DataSourceRealm">
-<h3>Introduction</h3>
+<h5>Introduction</h5>
<p><strong>DataSourceRealm</strong> is an implementation of the Tomcat
<code>Realm</code> interface that looks up users in a relational database
@@ -416,7 +407,7 @@ as your database structure conforms to t
</ul></li>
</ul>
-<h3>Quick Start</h3>
+<h5>Quick Start</h5>
<p>To set up Tomcat to use DataSourceRealm, you will need to follow these steps:</p>
<ol>
@@ -433,20 +424,19 @@ as your database structure conforms to t
<li>Restart Tomcat if it is already running.</li>
</ol>
-<h3>Realm Element Attributes</h3>
+<h5>Realm Element Attributes</h5>
<p>To configure DataSourceRealm, you will create a <code><Realm></code>
element and nest it in your <code>$CATALINA_BASE/conf/server.xml</code> file,
-as described <a href="#Configuring a Realm">above</a>. The attributes for the
+as described <a href="#Configuring_a_Realm">above</a>. The attributes for the
DataSourceRealm are defined in the <a href="config/realm.html">Realm</a>
configuration documentation.</p>
-<h3>Example</h3>
+<h5>Example</h5>
<p>An example SQL script to create the needed tables might look something
like this (adapt the syntax as required for your particular database):</p>
-<source>
-create table users (
+<source>create table users (
user_name varchar(15) not null primary key,
user_pass varchar(15) not null
);
@@ -455,20 +445,17 @@ create table user_roles (
user_name varchar(15) not null,
role_name varchar(15) not null,
primary key (user_name, role_name)
-);
-</source>
+);</source>
<p>Here is an example for using a MySQL database called "authority", configured
with the tables described above, and accessed with the JNDI JDBC DataSource with
name "java:/comp/env/jdbc/authority".</p>
-<source>
-<Realm className="org.apache.catalina.realm.DataSourceRealm"
+<source><![CDATA[<Realm className="org.apache.catalina.realm.DataSourceRealm"
dataSourceName="jdbc/authority"
userTable="users" userNameCol="user_name" userCredCol="user_pass"
- userRoleTable="user_roles" roleNameCol="role_name"/>
-</source>
+ userRoleTable="user_roles" roleNameCol="role_name"/>]]></source>
-<h3>Additional Notes</h3>
+<h5>Additional Notes</h5>
<p>DataSourceRealm operates according to the following rules:</p>
<ul>
@@ -495,7 +482,7 @@ name "java:/comp/env/jdbc/authority".</p
<subsection name="JNDIRealm">
-<h3>Introduction</h3>
+<h5>Introduction</h5>
<p><strong>JNDIRealm</strong> is an implementation of the Tomcat
<code>Realm</code> interface that looks up users in an LDAP directory
@@ -504,7 +491,7 @@ provider that is available with the JNDI
supports a variety of approaches to using a directory for
authentication.</p>
-<h4>Connecting to the directory</h4>
+<h6>Connecting to the directory</h6>
<p>The realm's connection to the directory is defined by the
<strong>connectionURL</strong> configuration attribute. This is a URL
@@ -528,7 +515,7 @@ many cases.
</p>
-<h4>Selecting the user's directory entry</h4>
+<h6>Selecting the user's directory entry</h6>
<p>Each user that can be authenticated must be represented in the
directory by an individual entry that corresponds to an element in the
@@ -545,7 +532,7 @@ the username should be substituted.</p>
<p>Otherwise the realm must search the directory to find a unique entry
containing the username. The following attributes configure this
-search:
+search:</p>
<ul>
<li><strong>userBase</strong> - the entry that is the base of
@@ -562,10 +549,9 @@ search:
search filter to use after substitution of the username.</li>
</ul>
-</p>
-<h4>Authenticating the user</h4>
+<h6>Authenticating the user</h6>
<ul>
<li>
@@ -577,8 +563,8 @@ presented by the user. If this simple bi
be authenticated.</p>
<p>For security reasons a directory may store a digest of the user's
-password rather than the clear text version (see <a href="#Digested
-Passwords">Digested Passwords</a> for more information). In that case,
+password rather than the clear text version (see
+<a href="#Digested_Passwords">Digested Passwords</a> for more information). In that case,
as part of the simple bind operation the directory automatically
computes the correct digest of the plaintext password presented by the
user before validating it against the stored value. In bind mode,
@@ -612,7 +598,7 @@ the repository for user information as d
</li>
</ul>
-<h4>Assigning roles to the user</h4>
+<h6>Assigning roles to the user</h6>
<p>The directory realm supports two approaches to the representation
of roles in the directory:</p>
@@ -672,7 +658,7 @@ the name of this attribute.</p>
</ul>
<p>A combination of both approaches to role representation may be used.</p>
-<h3>Quick Start</h3>
+<h5>Quick Start</h5>
<p>To set up Tomcat to use JNDIRealm, you will need to follow these steps:</p>
<ol>
@@ -686,15 +672,15 @@ the name of this attribute.</p>
<li>Restart Tomcat if it is already running.</li>
</ol>
-<h3>Realm Element Attributes</h3>
+<h5>Realm Element Attributes</h5>
<p>To configure JNDIRealm, you will create a <code><Realm></code>
element and nest it in your <code>$CATALINA_BASE/conf/server.xml</code> file,
-as described <a href="#Configuring a Realm">above</a>. The attributes for the
+as described <a href="#Configuring_a_Realm">above</a>. The attributes for the
JNDIRealm are defined in the <a href="config/realm.html">Realm</a> configuration
documentation.</p>
-<h3>Example</h3>
+<h5>Example</h5>
<p>Creation of the appropriate schema in your directory server is beyond the
scope of this document, because it is unique to each directory server
@@ -704,12 +690,10 @@ can be downloaded from
<a href="http://www.openldap.org">http://www.openldap.org</a>. Assume that
your <code>slapd.conf</code> file contains the following settings
(among others):</p>
-<source>
-database ldbm
+<source>database ldbm
suffix dc="mycompany",dc="com"
rootdn "cn=Manager,dc=mycompany,dc=com"
-rootpw secret
-</source>
+rootpw secret</source>
<p>We will assume for <code>connectionURL</code> that the directory
server runs on the same machine as Tomcat. See <a
@@ -720,9 +704,7 @@ provider.</p>
<p>Next, assume that this directory server has been populated with elements
as shown below (in LDIF format):</p>
-<source>
-
-# Define top-level entry
+<source># Define top-level entry
dn: dc=mycompany,dc=com
objectClass: dcObject
dc:mycompany
@@ -768,8 +750,7 @@ uniqueMember: uid=fbloggs,ou=people,dc=m
dn: cn=role1,ou=groups,dc=mycompany,dc=com
objectClass: groupOfUniqueNames
cn: role1
-uniqueMember: uid=fbloggs,ou=people,dc=mycompany,dc=com
-</source>
+uniqueMember: uid=fbloggs,ou=people,dc=mycompany,dc=com</source>
<p>An example <code>Realm</code> element for the OpenLDAP directory
server configured as described above might look like this, assuming
@@ -777,15 +758,13 @@ that users use their uid (e.g. jjones) t
application and that an anonymous connection is sufficient to search
the directory and retrieve role information:</p>
-<source>
-<Realm className="org.apache.catalina.realm.JNDIRealm"
+<source><![CDATA[<Realm className="org.apache.catalina.realm.JNDIRealm"
connectionURL="ldap://localhost:389"
userPattern="uid={0},ou=people,dc=mycompany,dc=com"
roleBase="ou=groups,dc=mycompany,dc=com"
roleName="cn"
roleSearch="(uniqueMember={0})"
-/>
-</source>
+/>]]></source>
<p>With this configuration, the realm will determine the user's
distinguished name by substituting the username into the
@@ -803,8 +782,7 @@ to different organizational units or com
use an attribute of the user's entry to hold roles. Now the entry for
Janet Jones might read as follows:</p>
-<source>
-dn: uid=jjones,ou=people,dc=mycompany,dc=com
+<source>dn: uid=jjones,ou=people,dc=mycompany,dc=com
objectClass: inetOrgPerson
uid: jjones
sn: jones
@@ -812,13 +790,11 @@ cn: janet jones
mail: j.jones@mycompany.com
memberOf: role2
memberOf: role3
-userPassword: janet
-</source>
+userPassword: janet</source>
<p> This realm configuration would satisfy the new requirements:</p>
-<source>
-<Realm className="org.apache.catalina.realm.JNDIRealm"
+<source><![CDATA[<Realm className="org.apache.catalina.realm.JNDIRealm"
connectionURL="ldap://localhost:389"
userBase="ou=people,dc=mycompany,dc=com"
userSearch="(mail={0})"
@@ -826,8 +802,7 @@ userPassword: janet
roleBase="ou=groups,dc=mycompany,dc=com"
roleName="cn"
roleSearch="(uniqueMember={0})"
-/>
-</source>
+/>]]></source>
<p>Now when Janet Jones logs in as "j.jones@mycompany.com", the realm
searches the directory for a unique entry with that value as its mail
@@ -842,8 +817,7 @@ only group entry of which she is a membe
the password from the directory and making a local comparison in the
realm, you might use a realm configuration like this:</p>
-<source>
-<Realm className="org.apache.catalina.realm.JNDIRealm"
+<source><![CDATA[<Realm className="org.apache.catalina.realm.JNDIRealm"
connectionName="cn=Manager,dc=mycompany,dc=com"
connectionPassword="secret"
connectionURL="ldap://localhost:389"
@@ -852,13 +826,12 @@ connectionPassword="secret"
roleBase="ou=groups,dc=mycompany,dc=com"
roleName="cn"
roleSearch="(uniqueMember={0})"
-/>
-</source>
+/>]]></source>
<p>However, as discussed above, the default bind mode for
authentication is usually to be preferred.</p>
-<h3>Additional Notes</h3>
+<h5>Additional Notes</h5>
<p>JNDIRealm operates according to the following rules:</p>
<ul>
@@ -885,7 +858,7 @@ authentication is usually to be preferre
<subsection name="UserDatabaseRealm">
-<h3>Introduction</h3>
+<h5>Introduction</h5>
<p><strong>UserDatabaseRealm</strong> is an implementation of the Tomcat
<code>Realm</code> interface that uses a JNDI resource to store user
@@ -897,34 +870,32 @@ document (by default, this document is l
and their roles may all be editing dynamically, typically via JMX. Changes may
be saved and will be reflected in the XML file.</p>
-<h3>Realm Element Attributes</h3>
+<h5>Realm Element Attributes</h5>
<p>To configure UserDatabaseRealm, you will create a <code><Realm></code>
element and nest it in your <code>$CATALINA_BASE/conf/server.xml</code> file,
-as described <a href="#Configuring a Realm">above</a>. The attributes for the
+as described <a href="#Configuring_a_Realm">above</a>. The attributes for the
UserDatabaseRealm are defined in the <a href="config/realm.html">Realm</a>
configuration documentation.</p>
-<h3>User File Format</h3>
+<h5>User File Format</h5>
<p>The users file uses the same format as the
<a href="#MemoryRealm">MemoryRealm</a>.</p>
-<h3>Example</h3>
+<h5>Example</h5>
<p>The default installation of Tomcat is configured with a UserDatabaseRealm
nested inside the <code><Engine></code> element, so that it applies
to all virtual hosts and web applications. The default contents of the
<code>conf/tomcat-users.xml</code> file is:</p>
-<source>
-<tomcat-users>
- <user name="tomcat" password="tomcat" roles="tomcat" />
- <user name="role1" password="tomcat" roles="role1" />
- <user name="both" password="tomcat" roles="tomcat,role1" />
-</tomcat-users>
-</source>
+<source><![CDATA[<tomcat-users>
+ <user name="tomcat" password="tomcat" roles="tomcat" />
+ <user name="role1" password="tomcat" roles="role1" />
+ <user name="both" password="tomcat" roles="tomcat,role1" />
+</tomcat-users>]]></source>
-<h3>Additional Notes</h3>
+<h5>Additional Notes</h5>
<p>UserDatabaseRealm operates according to the following rules:</p>
<ul>
@@ -950,7 +921,7 @@ to all virtual hosts and web application
<subsection name="MemoryRealm">
-<h3>Introduction</h3>
+<h5>Introduction</h5>
<p><strong>MemoryRealm</strong> is a simple demonstration implementation of the
Tomcat <code>Realm</code> interface. It is not designed for production use.
@@ -959,15 +930,15 @@ corresponding roles, from an XML documen
from <code>$CATALINA_BASE/conf/tomcat-users.xml</code>). Changes to the data
in this file are not recognized until Tomcat is restarted.</p>
-<h3>Realm Element Attributes</h3>
+<h5>Realm Element Attributes</h5>
<p>To configure MemoryRealm, you will create a <code><Realm></code>
element and nest it in your <code>$CATALINA_BASE/conf/server.xml</code> file,
-as described <a href="#Configuring a Realm">above</a>. The attributes for the
+as described <a href="#Configuring_a_Realm">above</a>. The attributes for the
MemoryRealm are defined in the <a href="config/realm.html">Realm</a>
configuration documentation.</p>
-<h3>User File Format</h3>
+<h5>User File Format</h5>
<p>The users file (by default, <code>conf/tomcat-users.xml</code> must be an
XML document, with a root element <code><tomcat-users></code>. Nested
@@ -978,12 +949,12 @@ valid user, consisting of the following
<li><strong>password</strong> - Password this user must log on with (in
clear text if the <code>digest</code> attribute was not set on the
<code><Realm></code> element, or digested appropriately as
- described <a href="#Digested Passwords">here</a> otherwise).</li>
+ described <a href="#Digested_Passwords">here</a> otherwise).</li>
<li><strong>roles</strong> - Comma-delimited list of the role names
associated with this user.</li>
</ul>
-<h3>Additional Notes</h3>
+<h5>Additional Notes</h5>
<p>MemoryRealm operates according to the following rules:</p>
<ul>
@@ -1011,7 +982,7 @@ valid user, consisting of the following
<subsection name="JAASRealm">
-<h3>Introduction</h3>
+<h5>Introduction</h5>
<p><strong>JAASRealm</strong> is an implementation of the Tomcat
6 <code>Realm</code> interface that authenticates users through the Java
@@ -1032,7 +1003,7 @@ security mechanism or wrap another third
integration with the CMA as implemented by Tomcat.
</p>
- <h3>Quick Start</h3>
+ <h5>Quick Start</h5>
<p>To set up Tomcat to use JAASRealm with your own JAAS login module,
you will need to follow these steps:</p>
<ol>
@@ -1065,7 +1036,7 @@ the resources you want to protect</li>
<li>Configure the JAASRealm module in your server.xml </li>
<li>Restart Tomcat if it is already running.</li>
</ol>
- <h3>Realm Element Attributes</h3>
+ <h5>Realm Element Attributes</h5>
<p>To configure JAASRealm as for step 6 above, you create
a <code><Realm></code> element and nest it in your
<code>$CATALINA_BASE/conf/server.xml</code>
@@ -1073,16 +1044,14 @@ file within your <code><Engine></c
JAASRealm are defined in the <a href="config/realm.html">Realm</a>
configuration documentation.</p>
-<h3>Example</h3>
+<h5>Example</h5>
<p>Here is an example of how your server.xml snippet should look.</p>
-<source>
-<Realm className="org.apache.catalina.realm.JAASRealm"
+<source><![CDATA[<Realm className="org.apache.catalina.realm.JAASRealm"
appName="MyFooRealm"
userClassNames="org.foobar.realm.FooUser"
- roleClassNames="org.foobar.realm.FooRole"/>
-</source>
+ roleClassNames="org.foobar.realm.FooRole"/>]]></source>
<p>It is the responsibility of your login module to create and save User and
Role objects representing Principals for the user
@@ -1100,7 +1069,7 @@ the scenes in your own login module.</li
and restarting the server, without any code changes to your application.</li>
</ul>
- <h3>Additional Notes</h3>
+ <h5>Additional Notes</h5>
<ul>
<li>When a user attempts to access a protected resource for
the first time, Tomcat will call the <code>authenticate()</code>
@@ -1125,7 +1094,7 @@ and restarting the server, without any c
<subsection name="CombinedRealm">
- <h3>Introduction</h3>
+ <h5>Introduction</h5>
<p><strong>CombinedRealm</strong> is an implementation of the Tomcat
<code>Realm</code> interface that authenticates users through one or more
@@ -1142,34 +1111,32 @@ and restarting the server, without any c
listed. Authentication against any Realm will be sufficient to authenticate
the user.</p>
- <h3>Realm Element Attributes</h3>
+ <h5>Realm Element Attributes</h5>
<p>To configure a CombinedRealm, you create a <code><Realm></code>
element and nest it in your <code>$CATALINA_BASE/conf/server.xml</code>
file within your <code><Engine></code> or <code><Host></code>.
You can also nest inside a <code><Context></code> node in a
<code>context.xml</code> file.</p>
-<h3>Example</h3>
+<h5>Example</h5>
<p>Here is an example of how your server.xml snippet should look to use a
UserDatabase Realm and a DataSource Realm.</p>
-<source>
-<Realm className="org.apache.catalina.realm.CombinedRealm" >
- <Realm className="org.apache.catalina.realm.UserDatabaseRealm"
- resourceName="UserDatabase"/>
- <Realm className="org.apache.catalina.realm.DataSourceRealm"
+<source><![CDATA[<Realm className="org.apache.catalina.realm.CombinedRealm" >
+ <Realm className="org.apache.catalina.realm.UserDatabaseRealm"
+ resourceName="UserDatabase"/>
+ <Realm className="org.apache.catalina.realm.DataSourceRealm"
dataSourceName="jdbc/authority"
userTable="users" userNameCol="user_name" userCredCol="user_pass"
- userRoleTable="user_roles" roleNameCol="role_name"/>
-</Realm>
-</source>
+ userRoleTable="user_roles" roleNameCol="role_name"/>
+</Realm>]]></source>
</subsection>
<subsection name="LockOutRealm">
- <h3>Introduction</h3>
+ <h5>Introduction</h5>
<p><strong>LockOutRealm</strong> is an implementation of the Tomcat
<code>Realm</code> interface that extends the CombinedRealm to provide lock
@@ -1192,7 +1159,7 @@ UserDatabase Realm and a DataSource Real
listed. Authentication against any Realm will be sufficient to authenticate
the user.</p>
- <h3>Realm Element Attributes</h3>
+ <h5>Realm Element Attributes</h5>
<p>To configure a LockOutRealm, you create a <code><Realm></code>
element and nest it in your <code>$CATALINA_BASE/conf/server.xml</code>
file within your <code><Engine></code> or <code><Host></code>.
@@ -1201,17 +1168,15 @@ UserDatabase Realm and a DataSource Real
LockOutRealm are defined in the <a href="config/realm.html">Realm</a>
configuration documentation.</p>
-<h3>Example</h3>
+<h5>Example</h5>
<p>Here is an example of how your server.xml snippet should look to add lock out
functionality to a UserDatabase Realm.</p>
-<source>
-<Realm className="org.apache.catalina.realm.LockOutRealm" >
- <Realm className="org.apache.catalina.realm.UserDatabaseRealm"
- resourceName="UserDatabase"/>
-</Realm>
-</source>
+<source><![CDATA[<Realm className="org.apache.catalina.realm.LockOutRealm" >
+ <Realm className="org.apache.catalina.realm.UserDatabaseRealm"
+ resourceName="UserDatabase"/>
+</Realm>]]></source>
</subsection>
Modified: tomcat/trunk/webapps/docs/rewrite.xml
URL: http://svn.apache.org/viewvc/tomcat/trunk/webapps/docs/rewrite.xml?rev=1518900&r1=1518899&r2=1518900&view=diff
==============================================================================
--- tomcat/trunk/webapps/docs/rewrite.xml (original)
+++ tomcat/trunk/webapps/docs/rewrite.xml Fri Aug 30 07:38:49 2013
@@ -108,76 +108,72 @@
where <em>NAME_OF_VARIABLE</em> can be a string taken
from the following list:
- <table border="1">
-
- <tr>
- <th>HTTP headers:</th> <th>connection & request:</th> <th></th>
- </tr>
-
- <tr>
- <td>
- HTTP_USER_AGENT<br />
- HTTP_REFERER<br />
- HTTP_COOKIE<br />
- HTTP_FORWARDED<br />
- HTTP_HOST<br />
- HTTP_PROXY_CONNECTION<br />
- HTTP_ACCEPT<br />
- </td>
-
- <td>
- REMOTE_ADDR<br />
- REMOTE_HOST<br />
- REMOTE_PORT<br />
- REMOTE_USER<br />
- REMOTE_IDENT<br />
- REQUEST_METHOD<br />
- SCRIPT_FILENAME<br />
- REQUEST_PATH<br />
- CONTEXT_PATH<br />
- SERVLET_PATH<br />
- PATH_INFO<br />
- QUERY_STRING<br />
- AUTH_TYPE<br />
- </td>
-
- <td></td>
- </tr>
-
- <tr>
- <th>server internals:</th> <th>date and time:</th> <th>specials:</th>
- </tr>
-
- <tr>
- <td>
- DOCUMENT_ROOT<br />
- SERVER_NAME<br />
- SERVER_ADDR<br />
- SERVER_PORT<br />
- SERVER_PROTOCOL<br />
- SERVER_SOFTWARE<br />
- </td>
-
- <td>
- TIME_YEAR<br />
- TIME_MON<br />
- TIME_DAY<br />
- TIME_HOUR<br />
- TIME_MIN<br />
- TIME_SEC<br />
- TIME_WDAY<br />
- TIME<br />
- </td>
-
- <td>
- THE_REQUEST<br />
- REQUEST_URI<br />
- REQUEST_FILENAME<br />
- HTTPS<br />
- </td>
- </tr>
- </table>
-
+ <ul>
+ <li>
+ <p><b>HTTP headers:</b></p>
+ <p>
+ HTTP_USER_AGENT<br />
+ HTTP_REFERER<br />
+ HTTP_COOKIE<br />
+ HTTP_FORWARDED<br />
+ HTTP_HOST<br />
+ HTTP_PROXY_CONNECTION<br />
+ HTTP_ACCEPT<br />
+ </p>
+ </li>
+ <li>
+ <p><b>connection & request:</b></p>
+ <p>
+ REMOTE_ADDR<br />
+ REMOTE_HOST<br />
+ REMOTE_PORT<br />
+ REMOTE_USER<br />
+ REMOTE_IDENT<br />
+ REQUEST_METHOD<br />
+ SCRIPT_FILENAME<br />
+ REQUEST_PATH<br />
+ CONTEXT_PATH<br />
+ SERVLET_PATH<br />
+ PATH_INFO<br />
+ QUERY_STRING<br />
+ AUTH_TYPE<br />
+ </p>
+ </li>
+ <li>
+ <p><b>server internals:</b></p>
+ <p>
+ DOCUMENT_ROOT<br />
+ SERVER_NAME<br />
+ SERVER_ADDR<br />
+ SERVER_PORT<br />
+ SERVER_PROTOCOL<br />
+ SERVER_SOFTWARE<br />
+ </p>
+ </li>
+ <li>
+ <p><b>date and time:</b></p>
+ <p>
+ TIME_YEAR<br />
+ TIME_MON<br />
+ TIME_DAY<br />
+ TIME_HOUR<br />
+ TIME_MIN<br />
+ TIME_SEC<br />
+ TIME_WDAY<br />
+ TIME<br />
+ </p>
+ </li>
+ <li>
+ <p><b>specials:</b></p>
+ <p>
+ THE_REQUEST<br />
+ REQUEST_URI<br />
+ REQUEST_FILENAME<br />
+ HTTPS<br />
+ </p>
+ </li>
+ </ul>
+
<p>These variables all
correspond to the similarly named HTTP
MIME-headers and Servlet API methods.
@@ -324,11 +320,11 @@
</ul>
-<note><title>Note:</title>
+<strong>Note:</strong>
All of these tests can
also be prefixed by an exclamation mark ('!') to
negate their meaning.
-</note>
+
</li>
<li>You can also set special flags for
@@ -354,12 +350,10 @@
Use this to combine rule conditions with a local OR
instead of the implicit AND. Typical example:
-<source>
-RewriteCond %{REMOTE_HOST} ^host1.* [OR]
+<source>RewriteCond %{REMOTE_HOST} ^host1.* [OR]
RewriteCond %{REMOTE_HOST} ^host2.* [OR]
RewriteCond %{REMOTE_HOST} ^host3.*
-RewriteRule ...some special stuff for any of these hosts...
-</source>
+RewriteRule ...some special stuff for any of these hosts...</source>
Without this flag you would have to write the condition/rule
pair three times.
@@ -374,15 +368,13 @@ RewriteRule ...some special stuff for an
``<code>User-Agent:</code>'' header of the request, you can
use the following: </p>
-<source>
-RewriteCond %{HTTP_USER_AGENT} ^Mozilla.*
+<source>RewriteCond %{HTTP_USER_AGENT} ^Mozilla.*
RewriteRule ^/$ /homepage.max.html [L]
RewriteCond %{HTTP_USER_AGENT} ^Lynx.*
RewriteRule ^/$ /homepage.min.html [L]
-RewriteRule ^/$ /homepage.std.html [L]
-</source>
+RewriteRule ^/$ /homepage.std.html [L]</source>
<p>Explanation: If you use a browser which identifies itself
as 'Mozilla' (including Netscape Navigator, Mozilla etc), then you
@@ -404,14 +396,12 @@ RewriteRule ^/$ /homepa
<p>The maps are implemented using an interface that users must implement. Its class
name is <code>org.apache.catalina.valves.rewrite.RewriteMap</code>, and its code is:</p>
-<source>
-package org.apache.catalina.valves.rewrite;
+<source><![CDATA[package org.apache.catalina.valves.rewrite;
public interface RewriteMap {
public String setParameters(String params);
public String lookup(String key);
-}
-</source>
+}]]></source>
</subsection>
@@ -435,6 +425,7 @@ public interface RewriteMap {
<p>Some hints on the syntax of regular
expressions:</p>
+<!-- TODO: Why is the following pre-formatted non-wrappable text? -->
<pre>
<strong>Text:</strong>
<strong><code>.</code></strong> Any single character
@@ -473,7 +464,7 @@ public interface RewriteMap {
<em>Mastering Regular Expressions, 2nd Edition</em><br />
Jeffrey E.F. Friedl<br />
O'Reilly & Associates, Inc. 2002<br />
- ISBN 0-596-00289-0<br />
+ ISBN 978-0-596-00289-3<br />
</p>
<p>In the rules, the NOT character
@@ -492,7 +483,7 @@ contents for the groups. Thus, if negate
cannot use <code>$N</code> in the substitution string!
</p>
- <p>The <a id="rhs" name="rhs"><em>substitution</em></a> of a
+ <p>The <em id="rhs" >substitution</em> of a
rewrite rule is the string which is substituted for (or
replaces) the original URL which <em>Pattern</em>
matched. In addition to plain text, it can include</p>
@@ -538,8 +529,8 @@ cannot use <code>$N</code> in the substi
to apply more than one pattern before substitution occurs.</p>
- <p>Additionally you can set special <a name="rewriteflags"
- id="rewriteflags">flags</a> for <em>Substitution</em> by
+ <p>Additionally you can set special <span
+ id="rewriteflags">flags</span> for <em>Substitution</em> by
appending <strong><code>[</code><em>flags</em><code>]</code></strong>
as the third argument to the <code>RewriteRule</code>
directive. <em>Flags</em> is a comma-separated list of any of the
@@ -639,9 +630,7 @@ cannot use <code>$N</code> in the substi
'%24', and '%3B', respectively); this flag prevents this
from happening. This allows percent symbols to appear in
the output, as in
-<example>
- RewriteRule /foo/(.*) /bar?arg=P1\%3d$1 [R,NE]
-</example>
+ <source>RewriteRule /foo/(.*) /bar?arg=P1\%3d$1 [R,NE]</source>
which would turn '<code>/foo/zed</code>' into a safe
request for '<code>/bar?arg=P1=zed</code>'.
</li>
@@ -678,8 +667,8 @@ cannot use <code>$N</code> in the substi
data to the query string via a rewrite rule.</li>
<li>'<strong><code>redirect|R</code>
- [=<em>code</em>]</strong>' (force <a id="redirect"
- name="redirect"><strong>r</strong>edirect</a>)<br />
+ [=<em>code</em>]</strong>' (force <span id="redirect">
+ <strong>r</strong>edirect</span>)<br />
Prefix <em>Substitution</em> with
<code>http://thishost[:thisport]/</code> (which makes the
new URL a URI) to force a external redirection. If no
@@ -716,15 +705,13 @@ cannot use <code>$N</code> in the substi
<li>
'<strong><code>type|T</code></strong>=<em>MIME-type</em>'
(force MIME <strong>t</strong>ype)<br />
- Force the <glossary>MIME-type</glossary> of the target file to be
+ Force the MIME-type of the target file to be
<em>MIME-type</em>. This can be used to
set up the content-type based on some conditions.
For example, the following snippet allows <code>.php</code> files to
be <em>displayed</em> by <code>mod_php</code> if they are called with
the <code>.phps</code> extension:
- <example>
- RewriteRule ^(.+\.php)s$ $1 [T=application/x-httpd-php-source]
- </example>
+ <source>RewriteRule ^(.+\.php)s$ $1 [T=application/x-httpd-php-source]</source>
</li>
</ul>
Modified: tomcat/trunk/webapps/docs/security-howto.xml
URL: http://svn.apache.org/viewvc/tomcat/trunk/webapps/docs/security-howto.xml?rev=1518900&r1=1518899&r2=1518900&view=diff
==============================================================================
--- tomcat/trunk/webapps/docs/security-howto.xml (original)
+++ tomcat/trunk/webapps/docs/security-howto.xml Fri Aug 30 07:38:49 2013
@@ -279,9 +279,7 @@
can be changed by creating the file
CATALINA_BASE/lib/org/apache/catalina/util/ServerInfo.properties with
content as follows:</p>
- <source>
-server.info=Apache Tomcat/7.0.x
- </source>
+ <source>server.info=Apache Tomcat/7.0.x</source>
<p>Modify the values as required. Note that this will also change the version
number reported in some of the management tools and may make it harder to
determine the real version installed. The CATALINA_HOME/bin/version.bat|sh
Modified: tomcat/trunk/webapps/docs/security-manager-howto.xml
URL: http://svn.apache.org/viewvc/tomcat/trunk/webapps/docs/security-manager-howto.xml?rev=1518900&r1=1518899&r2=1518900&view=diff
==============================================================================
--- tomcat/trunk/webapps/docs/security-manager-howto.xml (original)
+++ tomcat/trunk/webapps/docs/security-manager-howto.xml Fri Aug 30 07:38:49 2013
@@ -48,9 +48,7 @@
<p>Imagine if someone who is authorized to publish JSPs on your site
inadvertently included the following in their JSP:</p>
-<source>
-<% System.exit(1); %>
-</source>
+<source><![CDATA[<% System.exit(1); %>]]></source>
<p>Every time this JSP was executed by Tomcat, Tomcat would exit.
Using the Java SecurityManager is just one more line of defense a
@@ -116,9 +114,7 @@
used to do wild card matching for a JNDI named file resource when
granting permission. For example, you might include the following
in your policy file:</p>
-<source>
-permission org.apache.naming.JndiPermission "jndi://localhost/examples/*";
-</source>
+<source>permission org.apache.naming.JndiPermission "jndi://localhost/examples/*";</source>
<p>A Permission entry like this is generated dynamically for each web
application that is deployed, to allow it to read its own static resources
@@ -159,13 +155,11 @@ permission java.io.FilePermission
<p>Entries in the <code>catalina.policy</code> file use the standard
<code>java.policy</code> file format, as follows:</p>
-<source>
-// Example policy file entry
+<source><![CDATA[// Example policy file entry
-grant [signedBy <signer>,] [codeBase <code source>] {
- permission <class> [<name> [, <action list>]];
-};
-</source>
+grant [signedBy <signer>,] [codeBase <code source>] {
+ permission <class> [<name> [, <action list>]];
+};]]></source>
<p>The <strong>signedBy</strong> and <strong>codeBase</strong> entries are
optional when granting permissions. Comment lines begin with "//" and
@@ -190,10 +184,8 @@ grant [signedBy <signer>,] [codeBa
<p>Once you have configured the <code>catalina.policy</code> file for use
with a SecurityManager, Tomcat can be started with a SecurityManager in
place by using the "-security" option:</p>
-<source>
-$CATALINA_HOME/bin/catalina.sh start -security (Unix)
-%CATALINA_HOME%\bin\catalina start -security (Windows)
-</source>
+<source>$CATALINA_HOME/bin/catalina.sh start -security (Unix)
+%CATALINA_HOME%\bin\catalina start -security (Windows)</source>
</section>
<section name="Configuring Package Protection in Tomcat">
@@ -211,8 +203,7 @@ $CATALINA_HOME/bin/catalina.sh start -se
<p>The default <code>$CATALINA_BASE/conf/catalina.properties</code> file
looks like this:</p>
-<source>
-#
+<source><![CDATA[#
# List of comma-separated packages that start with or equal this string
# will cause a security exception to be thrown when
# passed to checkPackageAccess unless the
@@ -231,8 +222,7 @@ org.apache.jasper.
# the class loaders supplied with the JDK call checkPackageDefinition.
#
package.definition=sun.,java.,org.apache.catalina.,org.apache.coyote.,
-org.apache.tomcat.,org.apache.jasper.
-</source>
+org.apache.tomcat.,org.apache.jasper.]]></source>
<p>Once you have configured the <code>catalina.properties</code> file for use
with a SecurityManager, remember to re-start Tomcat.</p>
</section>
@@ -248,10 +238,8 @@ org.apache.tomcat.,org.apache.jasper.
is done by setting a system property before starting Tomcat. The easiest
way to do this is via the <code>CATALINA_OPTS</code> environment variable.
Execute this command:</p>
-<source>
-export CATALINA_OPTS=-Djava.security.debug=all (Unix)
-set CATALINA_OPTS=-Djava.security.debug=all (Windows)
-</source>
+<source>export CATALINA_OPTS=-Djava.security.debug=all (Unix)
+set CATALINA_OPTS=-Djava.security.debug=all (Windows)</source>
<p>before starting Tomcat.</p>
Modified: tomcat/trunk/webapps/docs/setup.xml
URL: http://svn.apache.org/viewvc/tomcat/trunk/webapps/docs/setup.xml?rev=1518900&r1=1518899&r2=1518900&view=diff
==============================================================================
--- tomcat/trunk/webapps/docs/setup.xml (original)
+++ tomcat/trunk/webapps/docs/setup.xml Fri Aug 30 07:38:49 2013
@@ -50,7 +50,7 @@
based installers, with only a few items of interest.
</p>
- <p>
+
<ul>
<li><strong>Installation as a service</strong>: Tomcat will be
installed as a Windows service no matter what setting is selected.
@@ -76,7 +76,7 @@
for information on how to manage Tomcat as a Windows service.
</li>
</ul>
- </p>
+
<p>The installer will create shortcuts allowing starting and configuring
Tomcat. It is important to note that the Tomcat administration web
@@ -106,31 +106,27 @@
<p>Please note that you should use the GNU make (gmake) instead of
the native BSD make on FreeBSD systems.</p>
-<source>
- cd $CATALINA_HOME/bin
- tar xvfz commons-daemon-native.tar.gz
- cd commons-daemon-1.0.x-native-src/unix
- ./configure
- make
- cp jsvc ../..
- cd ../..
-</source>
+<source>cd $CATALINA_HOME/bin
+tar xvfz commons-daemon-native.tar.gz
+cd commons-daemon-1.0.x-native-src/unix
+./configure
+make
+cp jsvc ../..
+cd ../..</source>
<p>Tomcat can then be run as a daemon using the following commands.</p>
-<source>
- CATALINA_BASE=$CATALINA_HOME
- cd $CATALINA_HOME
- ./bin/jsvc \
- -classpath $CATALINA_HOME/bin/bootstrap.jar:$CATALINA_HOME/bin/tomcat-juli.jar \
- -outfile $CATALINA_BASE/logs/catalina.out \
- -errfile $CATALINA_BASE/logs/catalina.err \
- -Dcatalina.home=$CATALINA_HOME \
- -Dcatalina.base=$CATALINA_BASE \
- -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager \
- -Djava.util.logging.config.file=$CATALINA_BASE/conf/logging.properties \
- org.apache.catalina.startup.Bootstrap
-</source>
+<source>CATALINA_BASE=$CATALINA_HOME
+cd $CATALINA_HOME
+./bin/jsvc \
+ -classpath $CATALINA_HOME/bin/bootstrap.jar:$CATALINA_HOME/bin/tomcat-juli.jar \
+ -outfile $CATALINA_BASE/logs/catalina.out \
+ -errfile $CATALINA_BASE/logs/catalina.err \
+ -Dcatalina.home=$CATALINA_HOME \
+ -Dcatalina.base=$CATALINA_BASE \
+ -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager \
+ -Djava.util.logging.config.file=$CATALINA_BASE/conf/logging.properties \
+ org.apache.catalina.startup.Bootstrap</source>
<p>You may also need to specify <code>-jvm server</code> if the JVM defaults
to using a server VM rather than a client VM. This has been observed on
Modified: tomcat/trunk/webapps/docs/ssi-howto.xml
URL: http://svn.apache.org/viewvc/tomcat/trunk/webapps/docs/ssi-howto.xml?rev=1518900&r1=1518899&r2=1518900&view=diff
==============================================================================
--- tomcat/trunk/webapps/docs/ssi-howto.xml (original)
+++ tomcat/trunk/webapps/docs/ssi-howto.xml Fri Aug 30 07:38:49 2013
@@ -88,7 +88,7 @@ privileged property of the Context eleme
<section name="Servlet Configuration">
<p>There are several servlet init parameters which can be used to
-configure the behaviour of the SSI servlet.
+configure the behaviour of the SSI servlet.</p>
<ul>
<li><strong>buffered</strong> - Should output from this servlet be buffered?
(0=false, 1=true) Default 0 (false).</li>
@@ -108,14 +108,14 @@ of the SSI processing. Default is UTF-8.
<li><strong>allowExec</strong> - Is the exec command enabled? Default is
false.</li>
</ul>
-</p>
+
</section>
<section name="Filter Configuration">
<p>There are several filter init parameters which can be used to
-configure the behaviour of the SSI filter.
+configure the behaviour of the SSI filter.</p>
<ul>
<li><strong>contentType</strong> - A regex pattern that must be matched before
SSI processing is applied. When crafting your own pattern, don't forget that a
@@ -133,7 +133,7 @@ root? Default false.</li>
<li><strong>allowExec</strong> - Is the exec command enabled? Default is
false.</li>
</ul>
-</p>
+
</section>
@@ -143,7 +143,7 @@ false.</li>
comment. The directive is replaced by the results of interpreting it before sending the
page to the client. The general form of a directive is: </p>
<p> <code><!--#directive [parm=value] --></code></p>
-<p>The directives are:
+<p>The directives are:</p>
<ul>
<li>
<strong>config</strong> - <code><!--#config timefmt="%B %Y" --></code>
@@ -177,26 +177,27 @@ Returns the list of all the defined vari
is used to assign a value to a user-defind variable.
</li>
<li>
-<strong>if elif endif else</strong> - Used to create conditional sections. For example:</li>
-<code><!--#config timefmt="%A" --><br />
- <!--#if expr="$DATE_LOCAL = /Monday/" --><br />
- <p>Meeting at 10:00 on Mondays</p><br />
- <!--#elif expr="$DATE_LOCAL = /Friday/" --><br />
- <p>Turn in your time card</p><br />
- <!--#else --><br />
- <p>Yoga class at noon.</p><br />
- <!--#endif --></code>
- </ul>
-</p>
+<strong>if elif endif else</strong> - Used to create conditional sections. For example:
+<source><![CDATA[<!--#config timefmt="%A" -->
+<!--#if expr="$DATE_LOCAL = /Monday/" -->
+<p>Meeting at 10:00 on Mondays</p>
+<!--#elif expr="$DATE_LOCAL = /Friday/" -->
+<p>Turn in your time card</p>
+<!--#else -->
+<p>Yoga class at noon.</p>
+<!--#endif -->]]></source>
+</li>
+</ul>
+<p>
See the
-<p> <a href="http://httpd.apache.org/docs/howto/ssi.html#basicssidirectives">
+<a href="http://httpd.apache.org/docs/howto/ssi.html#basicssidirectives">
Apache Introduction to SSI</a> for more information on using SSI directives.</p>
</section>
<section name="Variables">
<p>The SSI servlet currently implements the following variables:
</p>
-<table border="1">
+<table class="defaultTable">
<tr>
<th>Variable Name</th>
<th>Description</th>
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@tomcat.apache.org
For additional commands, e-mail: dev-help@tomcat.apache.org