ASF Bugzilla – Attachment 23773 Details for
Bug 47330
proposal : port of mod_remoteip in Tomcat as RemoteIpValve
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Help
|
New Account
|
Log In
Remember
[x]
|
Forgot Password
Login:
[x]
Javadoc of RemoteIpValve
RemoteIpValve.html (text/plain), 52.08 KB, created by
Cyrille Le Clerc
on 2009-06-07 17:42:33 UTC
(
hide
)
Description:
Javadoc of RemoteIpValve
Filename:
MIME Type:
Creator:
Cyrille Le Clerc
Created:
2009-06-07 17:42:33 UTC
Size:
52.08 KB
patch
obsolete
><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> ><!--NewPage--> ><HTML> ><HEAD> ><!-- Generated by javadoc (build 1.6.0_14) on Mon Jun 08 01:48:33 CEST 2009 --> ><TITLE> >RemoteIpValve ></TITLE> > ><META NAME="date" CONTENT="2009-06-08"> > ><LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style"> > ><SCRIPT type="text/javascript"> >function windowTitle() >{ > if (location.href.indexOf('is-external=true') == -1) { > parent.document.title="RemoteIpValve"; > } >} ></SCRIPT> ><NOSCRIPT> ></NOSCRIPT> > ></HEAD> > ><BODY BGCOLOR="white" onload="windowTitle();"> ><HR> > > ><!-- ========= START OF TOP NAVBAR ======= --> ><A NAME="navbar_top"><!-- --></A> ><A HREF="#skip-navbar_top" title="Skip navigation links"></A> ><TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY=""> ><TR> ><TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> ><A NAME="navbar_top_firstrow"><!-- --></A> ><TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY=""> > <TR ALIGN="center" VALIGN="top"> > <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../org/apache/catalina/connector/package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD> > <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD> > <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="class-use/RemoteIpValve.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A> </TD> > <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD> > <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD> > <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD> > <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD> > </TR> ></TABLE> ></TD> ><TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM> ></EM> ></TD> ></TR> > ><TR> ><TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2"> > PREV CLASS > NEXT CLASS</FONT></TD> ><TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2"> > <A HREF="../../../../index.html?org/apache/catalina/connector/RemoteIpValve.html" target="_top"><B>FRAMES</B></A> > <A HREF="RemoteIpValve.html" target="_top"><B>NO FRAMES</B></A> > <SCRIPT type="text/javascript"> > <!-- > if(window==top) { > document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>'); > } > //--> ></SCRIPT> ><NOSCRIPT> > <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A> ></NOSCRIPT> > > ></FONT></TD> ></TR> ><TR> ><TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2"> > SUMMARY: NESTED | <A HREF="#field_summary">FIELD</A> | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD> ><TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2"> >DETAIL: <A HREF="#field_detail">FIELD</A> | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD> ></TR> ></TABLE> ><A NAME="skip-navbar_top"></A> ><!-- ========= END OF TOP NAVBAR ========= --> > ><HR> ><!-- ======== START OF CLASS DATA ======== --> ><H2> ><FONT SIZE="-1"> >org.apache.catalina.connector</FONT> ><BR> >Class RemoteIpValve</H2> ><PRE> ><A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</A> > <IMG SRC="../../../../resources/inherit.gif" ALT="extended by "><A HREF="http://tomcat.apache.org/tomcat-6.0-doc/api/org/apache/catalina/valves/ValveBase.html?is-external=true" title="class or interface in org.apache.catalina.valves">org.apache.catalina.valves.ValveBase</A> > <IMG SRC="../../../../resources/inherit.gif" ALT="extended by "><B>org.apache.catalina.connector.RemoteIpValve</B> ></PRE> ><DL> ><DT><B>All Implemented Interfaces:</B> <DD><A HREF="http://java.sun.com/javase/6/docs/api/javax/management/MBeanRegistration.html?is-external=true" title="class or interface in javax.management">MBeanRegistration</A>, <A HREF="http://tomcat.apache.org/tomcat-6.0-doc/api/org/apache/catalina/Contained.html?is-external=true" title="class or interface in org.apache.catalina">Contained</A>, <A HREF="http://tomcat.apache.org/tomcat-6.0-doc/api/org/apache/catalina/Valve.html?is-external=true" title="class or interface in org.apache.catalina">Valve</A></DD> ></DL> ><HR> ><DL> ><DT><PRE>public class <B>RemoteIpValve</B><DT>extends <A HREF="http://tomcat.apache.org/tomcat-6.0-doc/api/org/apache/catalina/valves/ValveBase.html?is-external=true" title="class or interface in org.apache.catalina.valves">ValveBase</A></DL> ></PRE> > ><P> ><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. > </p> > <p> > This valve proceeds as follows: > <ul> > <li>Check if the incoming <code>request.getRemoteAddr()</code> matches the valve's list of internal proxies.</li> > <li>If so, loop on the comma delimited list of IPs and hostnames passed by the preceding load balancer or proxy in the given request's > Http header named <code>remoteIPHeader</code> (default value <code>x-forwarded-for</code>). Values are processed in Right-to-Left order.</li> > <li>For each ip/host of the list: > <ul> > <li>if it matches the internal proxies list, the ip/host is swallowed</li> > <li>if it matches the trusted proxies list, the ip/host is added to the created proxies header</li> > <li>otherwise, the ip/host is declared to be the remote ip and looping is stopped.</li> > </ul> > </li> > </ul> > </p> > <p> > <strong>Configuration parameters:</strong> > <table border="1"> > <tr> > <th>RemoteIpValve property</th> > <th>Equivalent mod_remoteip directive</th> > <th>Format</th> > <th>Default Value</th> > </tr> > <tr> > <td>remoteIPHeader</td> > <td>RemoteIPHeader</td> > <td>Compliant http header string</td> > <td>x-forwarded-for</td> > </tr> > <tr> > <td>internalProxies</td> > <td>RemoteIPInternalProxy</td> > <td>Comma delimited list of regular expressions (in the syntax supported by the <A HREF="http://java.sun.com/javase/6/docs/api/java/util/regex/Pattern.html?is-external=true" title="class or interface in java.util.regex"><CODE>Pattern</CODE></A> library)</td> > <td>10\.\d{1,3}\.\d{1,3}\.\d{1,3}, 192\.168\.\d{1,3}\.\d{1,3}, 169\.254\.\d{1,3}\.\d{1,3}, 127\.\d{1,3}\.\d{1,3}\.\d{1,3} <br/> > By default, 10/8, 192.168/16, 169.254/16 and 127/8 are allowed ; 172.16/12 has not been enabled by default because it is complex to > describe with regular expressions</td> > </tr> > </tr> > <tr> > <td>proxiesHeader</td> > <td>RemoteIPProxiesHeader</td> > <td>Compliant http header String</td> > <td>x-forwarded-by</td> > </tr> > <tr> > <td>trustedProxies</td> > <td>RemoteIPTrustedProxy</td> > <td>Comma delimited list of regular expressions (in the syntax supported by the <A HREF="http://java.sun.com/javase/6/docs/api/java/util/regex/Pattern.html?is-external=true" title="class or interface in java.util.regex"><CODE>Pattern</CODE></A> library)</td> > <td> </td> > </tr> > </table> > </p> > <p> > <p> > This Valve may be attached to any Container, depending on the granularity of the filtering you wish to perform. > </p> > <p> > <strong>Regular expression vs. IP address blocks:</strong> <code>mod_remoteip</code> allows to use address blocks (e.g. > <code>192.168/16</code>) to configure <code>RemoteIPInternalProxy</code> and <code>RemoteIPTrustedProxy</code> ; as Tomcat doesn't have a > library similar to <a > href="http://apr.apache.org/docs/apr/1.3/group__apr__network__io.html#gb74d21b8898b7c40bf7fd07ad3eb993d">apr_ipsubnet_test</a>, > <code>RemoteIpValve</code> uses regular expression to configure <code>internalProxies</code> and <code>trustedProxies</code> in the same > fashion as <A HREF="http://tomcat.apache.org/tomcat-6.0-doc/api/org/apache/catalina/valves/RequestFilterValve.html?is-external=true" title="class or interface in org.apache.catalina.valves"><CODE>RequestFilterValve</CODE></A> does. > </p> > <p> > <strong>Package org.apache.catalina.connector vs. org.apache.catalina.valves</strong>: This valve is > temporarily located in <code>org.apache.catalina.connector</code> package instead of <code>org.apache.catalina.valves</code> because it > uses <code>protected</code> visibility of <A HREF="http://tomcat.apache.org/tomcat-6.0-doc/api/org/apache/catalina/connector/Request.html?is-external=true#remoteAddr" title="class or interface in org.apache.catalina.connector"><CODE>Request.remoteAddr</CODE></A> and <A HREF="http://tomcat.apache.org/tomcat-6.0-doc/api/org/apache/catalina/connector/Request.html?is-external=true#remoteHost" title="class or interface in org.apache.catalina.connector"><CODE>Request.remoteHost</CODE></A>. This valve could move to > <code>org.apache.catalina.valves</code> if <A HREF="http://tomcat.apache.org/tomcat-6.0-doc/api/org/apache/catalina/connector/Request.html?is-external=true#setRemoteAddr(java.lang.String)" title="class or interface in org.apache.catalina.connector"><CODE>Request.setRemoteAddr(String)</CODE></A> and <A HREF="http://tomcat.apache.org/tomcat-6.0-doc/api/org/apache/catalina/connector/Request.html?is-external=true#setRemoteHost(java.lang.String)" title="class or interface in org.apache.catalina.connector"><CODE>Request.setRemoteHost(String)</CODE></A> were modified > to no longer be no-op but actually set the underlying property. > </p> > <hr/> > <p> > <strong>Sample with trusted proxies</strong> > </p> > <p> > RemoteIpValve configuration: > </p> > <code><pre> > <Valve > className="org.apache.catalina.connector.RemoteIpValve" > allowedInternalProxies="192\.168\.0\.10, 192\.168\.0\.11" > remoteIPHeader="x-forwarded-for" > remoteIPProxiesHeader="x-forwarded-by" > trustedProxies="proxy1, proxy2" > /></pre></code> > <p> > Request values: > <table border="1"> > <tr> > <th>property</th> > <th>Value Before RemoteIpValve</th> > <th>Value After RemoteIpValve</th> > </tr> > <tr> > <td>request.remoteAddr</td> > <td>192.168.0.10</td> > <td>140.211.11.130</td> > </tr> > <tr> > <td>request.header['x-forwarded-for']</td> > <td>140.211.11.130, proxy1, proxy2</td> > <td>null</td> > </tr> > <tr> > <td>request.header['x-forwarded-by']</td> > <td>null</td> > <td>proxy1, proxy2</td> > </tr> > </table> > Note : <code>proxy1</code> and <code>proxy2</code> are both trusted proxies that come in <code>x-forwarded-for</code> header, they both > are migrated in <code>x-forwarded-by</code> header. <code>x-forwarded-by</code> is null because all the proxies are trusted or internal. > </p> > <hr/> > <p> > <strong>Sample with internal and trusted proxies</strong> > </p> > <p> > RemoteIpValve configuration: > </p> > <code><pre> > <Valve > className="org.apache.catalina.connector.RemoteIpValve" > allowedInternalProxies="192\.168\.0\.10, 192\.168\.0\.11" > remoteIPHeader="x-forwarded-for" > remoteIPProxiesHeader="x-forwarded-by" > trustedProxies="proxy1, proxy2" > /></pre></code> > <p> > Request values: > <table border="1"> > <tr> > <th>property</th> > <th>Value Before RemoteIpValve</th> > <th>Value After RemoteIpValve</th> > </tr> > <tr> > <td>request.remoteAddr</td> > <td>192.168.0.10</td> > <td>140.211.11.130</td> > </tr> > <tr> > <td>request.header['x-forwarded-for']</td> > <td>140.211.11.130, proxy1, proxy2, 192.168.0.10</td> > <td>null</td> > </tr> > <tr> > <td>request.header['x-forwarded-by']</td> > <td>null</td> > <td>proxy1, proxy2</td> > </tr> > </table> > Note : <code>proxy1</code> and <code>proxy2</code> are both trusted proxies that come in <code>x-forwarded-for</code> header, they both > are migrated in <code>x-forwarded-by</code> header. As <code>192.168.0.10</code> is an internal proxy, it does not appear in > <code>x-forwarded-by</code>. <code>x-forwarded-by</code> is null because all the proxies are trusted or internal. > </p> > <hr/> > <p> > <strong>Sample with internal proxies</strong> > </p> > <p> > RemoteIpValve configuration: > </p> > <code><pre> > <Valve > className="org.apache.catalina.connector.RemoteIpValve" > allowedInternalProxies="192\.168\.0\.10, 192\.168\.0\.11" > remoteIPHeader="x-forwarded-for" > remoteIPProxiesHeader="x-forwarded-by" > /></pre></code> > > <p> > Request values: > <table border="1"> > <tr> > <th>property</th> > <th>Value Before RemoteIpValve</th> > <th>Value After RemoteIpValve</th> > </tr> > <tr> > <td>request.remoteAddr</td> > <td>192.168.0.10</td> > <td>140.211.11.130</td> > </tr> > <tr> > <td>request.header['x-forwarded-for']</td> > <td>140.211.11.130, 192.168.0.10</td> > <td>null</td> > </tr> > <tr> > <td>request.header['x-forwarded-by']</td> > <td>null</td> > <td>null</td> > </tr> > </table> > Note : <code>x-forwarded-by</code> header is null because only internal proxies as been traversed by the request. > <code>x-forwarded-by</code> is null because all the proxies are trusted or internal. > </p> > <hr/> > <p> > <strong>Sample with an untrusted proxy</strong> > </p> > <p> > RemoteIpValve configuration: > </p> > <code><pre> > <Valve > className="org.apache.catalina.connector.RemoteIpValve" > allowedInternalProxies="192\.168\.0\.10, 192\.168\.0\.11" > remoteIPHeader="x-forwarded-for" > remoteIPProxiesHeader="x-forwarded-by" > trustedProxies="proxy1, proxy2" > /></pre></code> > <p> > Request values: > <table border="1"> > <tr> > <th>property</th> > <th>Value Before RemoteIpValve</th> > <th>Value After RemoteIpValve</th> > </tr> > <tr> > <td>request.remoteAddr</td> > <td>192.168.0.10</td> > <td>untrusted-proxy</td> > </tr> > <tr> > <td>request.header['x-forwarded-for']</td> > <td>140.211.11.130, untrusted-proxy, proxy1</td> > <td>140.211.11.130</td> > </tr> > <tr> > <td>request.header['x-forwarded-by']</td> > <td>null</td> > <td>proxy1</td> > </tr> > </table> > Note : <code>x-forwarded-by</code> holds the trusted proxy <code>proxy1</code>. <code>x-forwarded-by</code> holds > <code>140.211.11.130</code> because <code>untrusted-proxy</code> is not trusted and thus, we can not trust that > <code>untrusted-proxy</code> is the actual remote ip. <code>request.remoteAddr</code> is <code>untrusted-proxy</code> that is an IP > verified by <code>proxy1</code>. > </p> > <hr/> > <p> > TODO : add "remoteIpValve.syntax" NLSString. > </p> ><P> > ><P> ><HR> > ><P> ><!-- =========== FIELD SUMMARY =========== --> > ><A NAME="field_summary"><!-- --></A> ><TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY=""> ><TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor"> ><TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2"> ><B>Field Summary</B></FONT></TH> ></TR> ><TR BGCOLOR="white" CLASS="TableRowColor"> ><TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1"> ><CODE>private static <A HREF="http://java.sun.com/javase/6/docs/api/java/util/regex/Pattern.html?is-external=true" title="class or interface in java.util.regex">Pattern</A></CODE></FONT></TD> ><TD><CODE><B><A HREF="../../../../org/apache/catalina/connector/RemoteIpValve.html#commaSeparatedValuesPattern">commaSeparatedValuesPattern</A></B></CODE> > ><BR> > <A HREF="http://java.sun.com/javase/6/docs/api/java/util/regex/Pattern.html?is-external=true" title="class or interface in java.util.regex"><CODE>Pattern</CODE></A> for a comma delimited string that support whitespace characters</TD> ></TR> ><TR BGCOLOR="white" CLASS="TableRowColor"> ><TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1"> ><CODE>private static <A HREF="http://java.sun.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD> ><TD><CODE><B><A HREF="../../../../org/apache/catalina/connector/RemoteIpValve.html#info">info</A></B></CODE> > ><BR> > The descriptive information related to this implementation.</TD> ></TR> ><TR BGCOLOR="white" CLASS="TableRowColor"> ><TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1"> ><CODE>private <A HREF="http://java.sun.com/javase/6/docs/api/java/util/regex/Pattern.html?is-external=true" title="class or interface in java.util.regex">Pattern</A>[]</CODE></FONT></TD> ><TD><CODE><B><A HREF="../../../../org/apache/catalina/connector/RemoteIpValve.html#internalProxies">internalProxies</A></B></CODE> > ><BR> > </TD> ></TR> ><TR BGCOLOR="white" CLASS="TableRowColor"> ><TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1"> ><CODE>private static <A HREF="http://tomcat.apache.org/tomcat-6.0-doc/api/org/apache/juli/logging/Log.html?is-external=true" title="class or interface in org.apache.juli.logging">Log</A></CODE></FONT></TD> ><TD><CODE><B><A HREF="../../../../org/apache/catalina/connector/RemoteIpValve.html#log">log</A></B></CODE> > ><BR> > Logger</TD> ></TR> ><TR BGCOLOR="white" CLASS="TableRowColor"> ><TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1"> ><CODE>private <A HREF="http://java.sun.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD> ><TD><CODE><B><A HREF="../../../../org/apache/catalina/connector/RemoteIpValve.html#proxiesHeader">proxiesHeader</A></B></CODE> > ><BR> > </TD> ></TR> ><TR BGCOLOR="white" CLASS="TableRowColor"> ><TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1"> ><CODE>private <A HREF="http://java.sun.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD> ><TD><CODE><B><A HREF="../../../../org/apache/catalina/connector/RemoteIpValve.html#remoteIPHeader">remoteIPHeader</A></B></CODE> > ><BR> > </TD> ></TR> ><TR BGCOLOR="white" CLASS="TableRowColor"> ><TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1"> ><CODE>protected static <A HREF="http://tomcat.apache.org/tomcat-6.0-doc/api/org/apache/catalina/util/StringManager.html?is-external=true" title="class or interface in org.apache.catalina.util">StringManager</A></CODE></FONT></TD> ><TD><CODE><B><A HREF="../../../../org/apache/catalina/connector/RemoteIpValve.html#sm">sm</A></B></CODE> > ><BR> > The StringManager for this package.</TD> ></TR> ><TR BGCOLOR="white" CLASS="TableRowColor"> ><TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1"> ><CODE>private <A HREF="http://java.sun.com/javase/6/docs/api/java/util/regex/Pattern.html?is-external=true" title="class or interface in java.util.regex">Pattern</A>[]</CODE></FONT></TD> ><TD><CODE><B><A HREF="../../../../org/apache/catalina/connector/RemoteIpValve.html#trustedProxies">trustedProxies</A></B></CODE> > ><BR> > </TD> ></TR> ></TABLE> > <A NAME="fields_inherited_from_class_org.apache.catalina.valves.ValveBase"><!-- --></A> ><TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY=""> ><TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor"> ><TH ALIGN="left"><B>Fields inherited from class org.apache.catalina.valves.<A HREF="http://tomcat.apache.org/tomcat-6.0-doc/api/org/apache/catalina/valves/ValveBase.html?is-external=true" title="class or interface in org.apache.catalina.valves">ValveBase</A></B></TH> ></TR> ><TR BGCOLOR="white" CLASS="TableRowColor"> ><TD><CODE><A HREF="http://tomcat.apache.org/tomcat-6.0-doc/api/org/apache/catalina/valves/ValveBase.html?is-external=true#container" title="class or interface in org.apache.catalina.valves">container</A>, <A HREF="http://tomcat.apache.org/tomcat-6.0-doc/api/org/apache/catalina/valves/ValveBase.html?is-external=true#containerLog" title="class or interface in org.apache.catalina.valves">containerLog</A>, <A HREF="http://tomcat.apache.org/tomcat-6.0-doc/api/org/apache/catalina/valves/ValveBase.html?is-external=true#controller" title="class or interface in org.apache.catalina.valves">controller</A>, <A HREF="http://tomcat.apache.org/tomcat-6.0-doc/api/org/apache/catalina/valves/ValveBase.html?is-external=true#domain" title="class or interface in org.apache.catalina.valves">domain</A>, <A HREF="http://tomcat.apache.org/tomcat-6.0-doc/api/org/apache/catalina/valves/ValveBase.html?is-external=true#mserver" title="class or interface in org.apache.catalina.valves">mserver</A>, <A HREF="http://tomcat.apache.org/tomcat-6.0-doc/api/org/apache/catalina/valves/ValveBase.html?is-external=true#next" title="class or interface in org.apache.catalina.valves">next</A>, <A HREF="http://tomcat.apache.org/tomcat-6.0-doc/api/org/apache/catalina/valves/ValveBase.html?is-external=true#oname" title="class or interface in org.apache.catalina.valves">oname</A></CODE></TD> ></TR> ></TABLE> > ><!-- ======== CONSTRUCTOR SUMMARY ======== --> > ><A NAME="constructor_summary"><!-- --></A> ><TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY=""> ><TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor"> ><TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2"> ><B>Constructor Summary</B></FONT></TH> ></TR> ><TR BGCOLOR="white" CLASS="TableRowColor"> ><TD><CODE><B><A HREF="../../../../org/apache/catalina/connector/RemoteIpValve.html#RemoteIpValve()">RemoteIpValve</A></B>()</CODE> > ><BR> > </TD> ></TR> ></TABLE> > ><!-- ========== METHOD SUMMARY =========== --> > ><A NAME="method_summary"><!-- --></A> ><TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY=""> ><TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor"> ><TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2"> ><B>Method Summary</B></FONT></TH> ></TR> ><TR BGCOLOR="white" CLASS="TableRowColor"> ><TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1"> ><CODE>protected static <A HREF="http://java.sun.com/javase/6/docs/api/java/util/regex/Pattern.html?is-external=true" title="class or interface in java.util.regex">Pattern</A>[]</CODE></FONT></TD> ><TD><CODE><B><A HREF="../../../../org/apache/catalina/connector/RemoteIpValve.html#commaDelimitedListToPatternArray(java.lang.String)">commaDelimitedListToPatternArray</A></B>(<A HREF="http://java.sun.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A> commaDelimitedPatterns)</CODE> > ><BR> > Convert a given comma delimited list of regular expressions into an array of compiled <A HREF="http://java.sun.com/javase/6/docs/api/java/util/regex/Pattern.html?is-external=true" title="class or interface in java.util.regex"><CODE>Pattern</CODE></A></TD> ></TR> ><TR BGCOLOR="white" CLASS="TableRowColor"> ><TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1"> ><CODE>protected static <A HREF="http://java.sun.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>[]</CODE></FONT></TD> ><TD><CODE><B><A HREF="../../../../org/apache/catalina/connector/RemoteIpValve.html#commaDelimitedListToStringArray(java.lang.String)">commaDelimitedListToStringArray</A></B>(<A HREF="http://java.sun.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A> commaDelimitedStrings)</CODE> > ><BR> > Convert a given comma delimited list of regular expressions into an array of String</TD> ></TR> ><TR BGCOLOR="white" CLASS="TableRowColor"> ><TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1"> ><CODE> <A HREF="http://java.sun.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD> ><TD><CODE><B><A HREF="../../../../org/apache/catalina/connector/RemoteIpValve.html#getInfo()">getInfo</A></B>()</CODE> > ><BR> > Return descriptive information about this Valve implementation.</TD> ></TR> ><TR BGCOLOR="white" CLASS="TableRowColor"> ><TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1"> ><CODE> void</CODE></FONT></TD> ><TD><CODE><B><A HREF="../../../../org/apache/catalina/connector/RemoteIpValve.html#invoke(org.apache.catalina.connector.Request, org.apache.catalina.connector.Response)">invoke</A></B>(<A HREF="http://tomcat.apache.org/tomcat-6.0-doc/api/org/apache/catalina/connector/Request.html?is-external=true" title="class or interface in org.apache.catalina.connector">Request</A> request, > <A HREF="http://tomcat.apache.org/tomcat-6.0-doc/api/org/apache/catalina/connector/Response.html?is-external=true" title="class or interface in org.apache.catalina.connector">Response</A> response)</CODE> > ><BR> > </TD> ></TR> ><TR BGCOLOR="white" CLASS="TableRowColor"> ><TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1"> ><CODE>protected static <A HREF="http://java.sun.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD> ><TD><CODE><B><A HREF="../../../../org/apache/catalina/connector/RemoteIpValve.html#listToCommaDelimitedString(java.util.List)">listToCommaDelimitedString</A></B>(<A HREF="http://java.sun.com/javase/6/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</A><<A HREF="http://java.sun.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>> stringList)</CODE> > ><BR> > Convert an array of strings in a comma delimited string</TD> ></TR> ><TR BGCOLOR="white" CLASS="TableRowColor"> ><TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1"> ><CODE>protected static boolean</CODE></FONT></TD> ><TD><CODE><B><A HREF="../../../../org/apache/catalina/connector/RemoteIpValve.html#matchesOne(java.lang.String, java.util.regex.Pattern...)">matchesOne</A></B>(<A HREF="http://java.sun.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A> str, > <A HREF="http://java.sun.com/javase/6/docs/api/java/util/regex/Pattern.html?is-external=true" title="class or interface in java.util.regex">Pattern</A>... patterns)</CODE> > ><BR> > Return <code>true</code> if the given <code>str</code> matches at least one of the given <code>patterns</code>.</TD> ></TR> ><TR BGCOLOR="white" CLASS="TableRowColor"> ><TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1"> ><CODE> void</CODE></FONT></TD> ><TD><CODE><B><A HREF="../../../../org/apache/catalina/connector/RemoteIpValve.html#setInternalProxies(java.lang.String)">setInternalProxies</A></B>(<A HREF="http://java.sun.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A> commaAllowedInternalProxies)</CODE> > ><BR> > > Comma delimited list of internal proxies.</TD> ></TR> ><TR BGCOLOR="white" CLASS="TableRowColor"> ><TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1"> ><CODE> void</CODE></FONT></TD> ><TD><CODE><B><A HREF="../../../../org/apache/catalina/connector/RemoteIpValve.html#setProxiesHeader(java.lang.String)">setProxiesHeader</A></B>(<A HREF="http://java.sun.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A> proxiesHeader)</CODE> > ><BR> > > The proxiesHeader directive specifies a header into which mod_remoteip will collect a list of all of the intermediate client IP > addresses trusted to resolve the actual remote IP.</TD> ></TR> ><TR BGCOLOR="white" CLASS="TableRowColor"> ><TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1"> ><CODE> void</CODE></FONT></TD> ><TD><CODE><B><A HREF="../../../../org/apache/catalina/connector/RemoteIpValve.html#setRemoteIPHeader(java.lang.String)">setRemoteIPHeader</A></B>(<A HREF="http://java.sun.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A> remoteIPHeader)</CODE> > ><BR> > > Name of the http header from which the remote ip is extracted.</TD> ></TR> ><TR BGCOLOR="white" CLASS="TableRowColor"> ><TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1"> ><CODE> void</CODE></FONT></TD> ><TD><CODE><B><A HREF="../../../../org/apache/catalina/connector/RemoteIpValve.html#setTrustedProxies(java.lang.String)">setTrustedProxies</A></B>(<A HREF="http://java.sun.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A> commaDelimitedTrustedProxies)</CODE> > ><BR> > > Comma delimited list of proxies that are trusted when they appear in the <A HREF="../../../../org/apache/catalina/connector/RemoteIpValve.html#remoteIPHeader"><CODE>remoteIPHeader</CODE></A> header.</TD> ></TR> ></TABLE> > <A NAME="methods_inherited_from_class_org.apache.catalina.valves.ValveBase"><!-- --></A> ><TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY=""> ><TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor"> ><TH ALIGN="left"><B>Methods inherited from class org.apache.catalina.valves.<A HREF="http://tomcat.apache.org/tomcat-6.0-doc/api/org/apache/catalina/valves/ValveBase.html?is-external=true" title="class or interface in org.apache.catalina.valves">ValveBase</A></B></TH> ></TR> ><TR BGCOLOR="white" CLASS="TableRowColor"> ><TD><CODE><A HREF="http://tomcat.apache.org/tomcat-6.0-doc/api/org/apache/catalina/valves/ValveBase.html?is-external=true#backgroundProcess()" title="class or interface in org.apache.catalina.valves">backgroundProcess</A>, <A HREF="http://tomcat.apache.org/tomcat-6.0-doc/api/org/apache/catalina/valves/ValveBase.html?is-external=true#createObjectName(java.lang.String, javax.management.ObjectName)" title="class or interface in org.apache.catalina.valves">createObjectName</A>, <A HREF="http://tomcat.apache.org/tomcat-6.0-doc/api/org/apache/catalina/valves/ValveBase.html?is-external=true#event(org.apache.catalina.connector.Request, org.apache.catalina.connector.Response, org.apache.catalina.CometEvent)" title="class or interface in org.apache.catalina.valves">event</A>, <A HREF="http://tomcat.apache.org/tomcat-6.0-doc/api/org/apache/catalina/valves/ValveBase.html?is-external=true#getContainer()" title="class or interface in org.apache.catalina.valves">getContainer</A>, <A HREF="http://tomcat.apache.org/tomcat-6.0-doc/api/org/apache/catalina/valves/ValveBase.html?is-external=true#getContainerName()" title="class or interface in org.apache.catalina.valves">getContainerName</A>, <A HREF="http://tomcat.apache.org/tomcat-6.0-doc/api/org/apache/catalina/valves/ValveBase.html?is-external=true#getController()" title="class or interface in org.apache.catalina.valves">getController</A>, <A HREF="http://tomcat.apache.org/tomcat-6.0-doc/api/org/apache/catalina/valves/ValveBase.html?is-external=true#getDomain()" title="class or interface in org.apache.catalina.valves">getDomain</A>, <A HREF="http://tomcat.apache.org/tomcat-6.0-doc/api/org/apache/catalina/valves/ValveBase.html?is-external=true#getNext()" title="class or interface in org.apache.catalina.valves">getNext</A>, <A HREF="http://tomcat.apache.org/tomcat-6.0-doc/api/org/apache/catalina/valves/ValveBase.html?is-external=true#getObjectName()" title="class or interface in org.apache.catalina.valves">getObjectName</A>, <A HREF="http://tomcat.apache.org/tomcat-6.0-doc/api/org/apache/catalina/valves/ValveBase.html?is-external=true#getParentName(javax.management.ObjectName)" title="class or interface in org.apache.catalina.valves">getParentName</A>, <A HREF="http://tomcat.apache.org/tomcat-6.0-doc/api/org/apache/catalina/valves/ValveBase.html?is-external=true#postDeregister()" title="class or interface in org.apache.catalina.valves">postDeregister</A>, <A HREF="http://tomcat.apache.org/tomcat-6.0-doc/api/org/apache/catalina/valves/ValveBase.html?is-external=true#postRegister(java.lang.Boolean)" title="class or interface in org.apache.catalina.valves">postRegister</A>, <A HREF="http://tomcat.apache.org/tomcat-6.0-doc/api/org/apache/catalina/valves/ValveBase.html?is-external=true#preDeregister()" title="class or interface in org.apache.catalina.valves">preDeregister</A>, <A HREF="http://tomcat.apache.org/tomcat-6.0-doc/api/org/apache/catalina/valves/ValveBase.html?is-external=true#preRegister(javax.management.MBeanServer, javax.management.ObjectName)" title="class or interface in org.apache.catalina.valves">preRegister</A>, <A HREF="http://tomcat.apache.org/tomcat-6.0-doc/api/org/apache/catalina/valves/ValveBase.html?is-external=true#setContainer(org.apache.catalina.Container)" title="class or interface in org.apache.catalina.valves">setContainer</A>, <A HREF="http://tomcat.apache.org/tomcat-6.0-doc/api/org/apache/catalina/valves/ValveBase.html?is-external=true#setController(javax.management.ObjectName)" title="class or interface in org.apache.catalina.valves">setController</A>, <A HREF="http://tomcat.apache.org/tomcat-6.0-doc/api/org/apache/catalina/valves/ValveBase.html?is-external=true#setNext(org.apache.catalina.Valve)" title="class or interface in org.apache.catalina.valves">setNext</A>, <A HREF="http://tomcat.apache.org/tomcat-6.0-doc/api/org/apache/catalina/valves/ValveBase.html?is-external=true#setObjectName(javax.management.ObjectName)" title="class or interface in org.apache.catalina.valves">setObjectName</A>, <A HREF="http://tomcat.apache.org/tomcat-6.0-doc/api/org/apache/catalina/valves/ValveBase.html?is-external=true#toString()" title="class or interface in org.apache.catalina.valves">toString</A></CODE></TD> ></TR> ></TABLE> > <A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A> ><TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY=""> ><TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor"> ><TH ALIGN="left"><B>Methods inherited from class java.lang.<A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></B></TH> ></TR> ><TR BGCOLOR="white" CLASS="TableRowColor"> ><TD><CODE><A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Object.html?is-external=true#clone()" title="class or interface in java.lang">clone</A>, <A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Object.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.lang">equals</A>, <A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Object.html?is-external=true#finalize()" title="class or interface in java.lang">finalize</A>, <A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Object.html?is-external=true#getClass()" title="class or interface in java.lang">getClass</A>, <A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Object.html?is-external=true#hashCode()" title="class or interface in java.lang">hashCode</A>, <A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Object.html?is-external=true#notify()" title="class or interface in java.lang">notify</A>, <A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Object.html?is-external=true#notifyAll()" title="class or interface in java.lang">notifyAll</A>, <A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Object.html?is-external=true#wait()" title="class or interface in java.lang">wait</A>, <A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Object.html?is-external=true#wait(long)" title="class or interface in java.lang">wait</A>, <A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Object.html?is-external=true#wait(long, int)" title="class or interface in java.lang">wait</A></CODE></TD> ></TR> ></TABLE> > ><P> > ><!-- ============ FIELD DETAIL =========== --> > ><A NAME="field_detail"><!-- --></A> ><TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY=""> ><TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor"> ><TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2"> ><B>Field Detail</B></FONT></TH> ></TR> ></TABLE> > ><A NAME="log"><!-- --></A><H3> >log</H3> ><PRE> >private static <A HREF="http://tomcat.apache.org/tomcat-6.0-doc/api/org/apache/juli/logging/Log.html?is-external=true" title="class or interface in org.apache.juli.logging">Log</A> <B>log</B></PRE> ><DL> ><DD>Logger ><P> ><DL> ></DL> ></DL> ><HR> > ><A NAME="commaSeparatedValuesPattern"><!-- --></A><H3> >commaSeparatedValuesPattern</H3> ><PRE> >private static final <A HREF="http://java.sun.com/javase/6/docs/api/java/util/regex/Pattern.html?is-external=true" title="class or interface in java.util.regex">Pattern</A> <B>commaSeparatedValuesPattern</B></PRE> ><DL> ><DD><A HREF="http://java.sun.com/javase/6/docs/api/java/util/regex/Pattern.html?is-external=true" title="class or interface in java.util.regex"><CODE>Pattern</CODE></A> for a comma delimited string that support whitespace characters ><P> ><DL> ></DL> ></DL> ><HR> > ><A NAME="info"><!-- --></A><H3> >info</H3> ><PRE> >private static final <A HREF="http://java.sun.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A> <B>info</B></PRE> ><DL> ><DD>The descriptive information related to this implementation. ><P> ><DL> ><DT><B>See Also:</B><DD><A HREF="../../../../constant-values.html#org.apache.catalina.connector.RemoteIpValve.info">Constant Field Values</A></DL> ></DL> ><HR> > ><A NAME="sm"><!-- --></A><H3> >sm</H3> ><PRE> >protected static <A HREF="http://tomcat.apache.org/tomcat-6.0-doc/api/org/apache/catalina/util/StringManager.html?is-external=true" title="class or interface in org.apache.catalina.util">StringManager</A> <B>sm</B></PRE> ><DL> ><DD>The StringManager for this package. ><P> ><DL> ></DL> ></DL> ><HR> > ><A NAME="internalProxies"><!-- --></A><H3> >internalProxies</H3> ><PRE> >private <A HREF="http://java.sun.com/javase/6/docs/api/java/util/regex/Pattern.html?is-external=true" title="class or interface in java.util.regex">Pattern</A>[] <B>internalProxies</B></PRE> ><DL> ><DL> ><DT><B>See Also:</B><DD><A HREF="../../../../org/apache/catalina/connector/RemoteIpValve.html#setInternalProxies(java.lang.String)"><CODE>setInternalProxies(String)</CODE></A></DL> ></DL> ><HR> > ><A NAME="remoteIPHeader"><!-- --></A><H3> >remoteIPHeader</H3> ><PRE> >private <A HREF="http://java.sun.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A> <B>remoteIPHeader</B></PRE> ><DL> ><DL> ><DT><B>See Also:</B><DD><A HREF="../../../../org/apache/catalina/connector/RemoteIpValve.html#setRemoteIPHeader(java.lang.String)"><CODE>setRemoteIPHeader(String)</CODE></A></DL> ></DL> ><HR> > ><A NAME="proxiesHeader"><!-- --></A><H3> >proxiesHeader</H3> ><PRE> >private <A HREF="http://java.sun.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A> <B>proxiesHeader</B></PRE> ><DL> ><DL> ><DT><B>See Also:</B><DD><A HREF="../../../../org/apache/catalina/connector/RemoteIpValve.html#setProxiesHeader(java.lang.String)"><CODE>setProxiesHeader(String)</CODE></A></DL> ></DL> ><HR> > ><A NAME="trustedProxies"><!-- --></A><H3> >trustedProxies</H3> ><PRE> >private <A HREF="http://java.sun.com/javase/6/docs/api/java/util/regex/Pattern.html?is-external=true" title="class or interface in java.util.regex">Pattern</A>[] <B>trustedProxies</B></PRE> ><DL> ><DL> ><DT><B>See Also:</B><DD><A HREF="../../../../org/apache/catalina/connector/RemoteIpValve.html#setTrustedProxies(java.lang.String)"><CODE>setTrustedProxies(String)</CODE></A></DL> ></DL> > ><!-- ========= CONSTRUCTOR DETAIL ======== --> > ><A NAME="constructor_detail"><!-- --></A> ><TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY=""> ><TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor"> ><TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2"> ><B>Constructor Detail</B></FONT></TH> ></TR> ></TABLE> > ><A NAME="RemoteIpValve()"><!-- --></A><H3> >RemoteIpValve</H3> ><PRE> >public <B>RemoteIpValve</B>()</PRE> ><DL> ></DL> > ><!-- ============ METHOD DETAIL ========== --> > ><A NAME="method_detail"><!-- --></A> ><TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY=""> ><TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor"> ><TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2"> ><B>Method Detail</B></FONT></TH> ></TR> ></TABLE> > ><A NAME="commaDelimitedListToPatternArray(java.lang.String)"><!-- --></A><H3> >commaDelimitedListToPatternArray</H3> ><PRE> >protected static <A HREF="http://java.sun.com/javase/6/docs/api/java/util/regex/Pattern.html?is-external=true" title="class or interface in java.util.regex">Pattern</A>[] <B>commaDelimitedListToPatternArray</B>(<A HREF="http://java.sun.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A> commaDelimitedPatterns)</PRE> ><DL> ><DD>Convert a given comma delimited list of regular expressions into an array of compiled <A HREF="http://java.sun.com/javase/6/docs/api/java/util/regex/Pattern.html?is-external=true" title="class or interface in java.util.regex"><CODE>Pattern</CODE></A> ><P> ><DD><DL> ></DL> ></DD> ></DL> ><HR> > ><A NAME="commaDelimitedListToStringArray(java.lang.String)"><!-- --></A><H3> >commaDelimitedListToStringArray</H3> ><PRE> >protected static <A HREF="http://java.sun.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>[] <B>commaDelimitedListToStringArray</B>(<A HREF="http://java.sun.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A> commaDelimitedStrings)</PRE> ><DL> ><DD>Convert a given comma delimited list of regular expressions into an array of String ><P> ><DD><DL> ></DL> ></DD> ></DL> ><HR> > ><A NAME="listToCommaDelimitedString(java.util.List)"><!-- --></A><H3> >listToCommaDelimitedString</H3> ><PRE> >protected static <A HREF="http://java.sun.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A> <B>listToCommaDelimitedString</B>(<A HREF="http://java.sun.com/javase/6/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</A><<A HREF="http://java.sun.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>> stringList)</PRE> ><DL> ><DD>Convert an array of strings in a comma delimited string ><P> ><DD><DL> ></DL> ></DD> ></DL> ><HR> > ><A NAME="matchesOne(java.lang.String, java.util.regex.Pattern...)"><!-- --></A><H3> >matchesOne</H3> ><PRE> >protected static boolean <B>matchesOne</B>(<A HREF="http://java.sun.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A> str, > <A HREF="http://java.sun.com/javase/6/docs/api/java/util/regex/Pattern.html?is-external=true" title="class or interface in java.util.regex">Pattern</A>... patterns)</PRE> ><DL> ><DD>Return <code>true</code> if the given <code>str</code> matches at least one of the given <code>patterns</code>. ><P> ><DD><DL> ></DL> ></DD> ></DL> ><HR> > ><A NAME="getInfo()"><!-- --></A><H3> >getInfo</H3> ><PRE> >public <A HREF="http://java.sun.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A> <B>getInfo</B>()</PRE> ><DL> ><DD>Return descriptive information about this Valve implementation. ><P> ><DD><DL> ><DT><B>Specified by:</B><DD><CODE><A HREF="http://tomcat.apache.org/tomcat-6.0-doc/api/org/apache/catalina/Valve.html?is-external=true#getInfo()" title="class or interface in org.apache.catalina">getInfo</A></CODE> in interface <CODE><A HREF="http://tomcat.apache.org/tomcat-6.0-doc/api/org/apache/catalina/Valve.html?is-external=true" title="class or interface in org.apache.catalina">Valve</A></CODE><DT><B>Overrides:</B><DD><CODE><A HREF="http://tomcat.apache.org/tomcat-6.0-doc/api/org/apache/catalina/valves/ValveBase.html?is-external=true#getInfo()" title="class or interface in org.apache.catalina.valves">getInfo</A></CODE> in class <CODE><A HREF="http://tomcat.apache.org/tomcat-6.0-doc/api/org/apache/catalina/valves/ValveBase.html?is-external=true" title="class or interface in org.apache.catalina.valves">ValveBase</A></CODE></DL> ></DD> ><DD><DL> ></DL> ></DD> ></DL> ><HR> > ><A NAME="invoke(org.apache.catalina.connector.Request, org.apache.catalina.connector.Response)"><!-- --></A><H3> >invoke</H3> ><PRE> >public void <B>invoke</B>(<A HREF="http://tomcat.apache.org/tomcat-6.0-doc/api/org/apache/catalina/connector/Request.html?is-external=true" title="class or interface in org.apache.catalina.connector">Request</A> request, > <A HREF="http://tomcat.apache.org/tomcat-6.0-doc/api/org/apache/catalina/connector/Response.html?is-external=true" title="class or interface in org.apache.catalina.connector">Response</A> response) > throws <A HREF="http://java.sun.com/javase/6/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</A>, > <A HREF="http://java.sun.com/javaee/5/docs/api/javax/servlet/ServletException.html?is-external=true" title="class or interface in javax.servlet">ServletException</A></PRE> ><DL> ><DD> ><P> ><DD><DL> ><DT><B>Specified by:</B><DD><CODE><A HREF="http://tomcat.apache.org/tomcat-6.0-doc/api/org/apache/catalina/Valve.html?is-external=true#invoke(org.apache.catalina.connector.Request, org.apache.catalina.connector.Response)" title="class or interface in org.apache.catalina">invoke</A></CODE> in interface <CODE><A HREF="http://tomcat.apache.org/tomcat-6.0-doc/api/org/apache/catalina/Valve.html?is-external=true" title="class or interface in org.apache.catalina">Valve</A></CODE><DT><B>Specified by:</B><DD><CODE><A HREF="http://tomcat.apache.org/tomcat-6.0-doc/api/org/apache/catalina/valves/ValveBase.html?is-external=true#invoke(org.apache.catalina.connector.Request, org.apache.catalina.connector.Response)" title="class or interface in org.apache.catalina.valves">invoke</A></CODE> in class <CODE><A HREF="http://tomcat.apache.org/tomcat-6.0-doc/api/org/apache/catalina/valves/ValveBase.html?is-external=true" title="class or interface in org.apache.catalina.valves">ValveBase</A></CODE></DL> ></DD> ><DD><DL> > ><DT><B>Throws:</B> ><DD><CODE><A HREF="http://java.sun.com/javase/6/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</A></CODE> ><DD><CODE><A HREF="http://java.sun.com/javaee/5/docs/api/javax/servlet/ServletException.html?is-external=true" title="class or interface in javax.servlet">ServletException</A></CODE></DL> ></DD> ></DL> ><HR> > ><A NAME="setInternalProxies(java.lang.String)"><!-- --></A><H3> >setInternalProxies</H3> ><PRE> >public void <B>setInternalProxies</B>(<A HREF="http://java.sun.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A> commaAllowedInternalProxies)</PRE> ><DL> ><DD><p> > Comma delimited list of internal proxies. Can be expressed with regular expressions. > </p> > <p> > Default value : 10\.\d{1,3}\.\d{1,3}\.\d{1,3}, 192\.168\.\d{1,3}\.\d{1,3}, 127\.\d{1,3}\.\d{1,3}\.\d{1,3} > </p> ><P> ><DD><DL> ></DL> ></DD> ></DL> ><HR> > ><A NAME="setRemoteIPHeader(java.lang.String)"><!-- --></A><H3> >setRemoteIPHeader</H3> ><PRE> >public void <B>setRemoteIPHeader</B>(<A HREF="http://java.sun.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A> remoteIPHeader)</PRE> ><DL> ><DD><p> > Name of the http header from which the remote ip is extracted. > </p> > <p> > The value of this header can be comma delimited. > </p> > <p> > Default value : <code>X-Forwarded-For</code> > </p> ><P> ><DD><DL> ><DT><B>Parameters:</B><DD><CODE>remoteIPHeader</CODE> - </DL> ></DD> ></DL> ><HR> > ><A NAME="setProxiesHeader(java.lang.String)"><!-- --></A><H3> >setProxiesHeader</H3> ><PRE> >public void <B>setProxiesHeader</B>(<A HREF="http://java.sun.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A> proxiesHeader)</PRE> ><DL> ><DD><p> > The proxiesHeader directive specifies a header into which mod_remoteip will collect a list of all of the intermediate client IP > addresses trusted to resolve the actual remote IP. Note that intermediate RemoteIPTrustedProxy addresses are recorded in this header, > while any intermediate RemoteIPInternalProxy addresses are discarded. > </p> > <p> > Name of the http header that holds the list of trusted proxies that has been traversed by the http request. > </p> > <p> > The value of this header can be comma delimited. > </p> > <p> > Default value : <code>X-Forwarded-By</code> > </p> ><P> ><DD><DL> ></DL> ></DD> ></DL> ><HR> > ><A NAME="setTrustedProxies(java.lang.String)"><!-- --></A><H3> >setTrustedProxies</H3> ><PRE> >public void <B>setTrustedProxies</B>(<A HREF="http://java.sun.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A> commaDelimitedTrustedProxies)</PRE> ><DL> ><DD><p> > Comma delimited list of proxies that are trusted when they appear in the <A HREF="../../../../org/apache/catalina/connector/RemoteIpValve.html#remoteIPHeader"><CODE>remoteIPHeader</CODE></A> header. Can be expressed as a > regular expression. > </p> > <p> > Default value : empty list, no external proxy is trusted. > </p> ><P> ><DD><DL> ></DL> ></DD> ></DL> ><!-- ========= END OF CLASS DATA ========= --> ><HR> > > ><!-- ======= START OF BOTTOM NAVBAR ====== --> ><A NAME="navbar_bottom"><!-- --></A> ><A HREF="#skip-navbar_bottom" title="Skip navigation links"></A> ><TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY=""> ><TR> ><TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> ><A NAME="navbar_bottom_firstrow"><!-- --></A> ><TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY=""> > <TR ALIGN="center" VALIGN="top"> > <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../org/apache/catalina/connector/package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD> > <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD> > <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="class-use/RemoteIpValve.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A> </TD> > <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD> > <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD> > <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD> > <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD> > </TR> ></TABLE> ></TD> ><TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM> ></EM> ></TD> ></TR> > ><TR> ><TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2"> > PREV CLASS > NEXT CLASS</FONT></TD> ><TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2"> > <A HREF="../../../../index.html?org/apache/catalina/connector/RemoteIpValve.html" target="_top"><B>FRAMES</B></A> > <A HREF="RemoteIpValve.html" target="_top"><B>NO FRAMES</B></A> > <SCRIPT type="text/javascript"> > <!-- > if(window==top) { > document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>'); > } > //--> ></SCRIPT> ><NOSCRIPT> > <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A> ></NOSCRIPT> > > ></FONT></TD> ></TR> ><TR> ><TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2"> > SUMMARY: NESTED | <A HREF="#field_summary">FIELD</A> | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD> ><TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2"> >DETAIL: <A HREF="#field_detail">FIELD</A> | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD> ></TR> ></TABLE> ><A NAME="skip-navbar_bottom"></A> ><!-- ======== END OF BOTTOM NAVBAR ======= --> > ><HR> > ></BODY> ></HTML>
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Raw
Actions:
View
Attachments on
bug 47330
:
23772
|
23773
|
23970
|
24455
|
24465
|
24471
|
24505