From 84b59fc120c0d707a9f5197e0daf6ec77b0ba9e7 Mon Sep 17 00:00:00 2001 From: markt Date: Mon, 9 Nov 2009 14:31:40 +0000 Subject: [PATCH] Patch provided by Cyrille Le Clerc * fix NPE in log statement if protocolHeader has not been defined and the servlet container does not support request.getHeader(null) * fix mismatch between javadoc and code for filter parameter name "allowedInternalProxies" -> "internalProxies" * finish javadoc refactoring "XForwardedFilter" -> "RemoteIpFilter" Also fix some Eclipse warnings git-svn-id: https://svn.apache.org/repos/asf/tomcat/trunk@834081 13f79535-47bb-0310-9956-ffa450edef68 --- .../apache/catalina/filters/RemoteIpFilter.java | 74 ++++++++++------------ 1 file changed, 35 insertions(+), 39 deletions(-) diff --git a/java/org/apache/catalina/filters/RemoteIpFilter.java b/java/org/apache/catalina/filters/RemoteIpFilter.java index ef34340e8..7710febf9 100644 --- a/java/org/apache/catalina/filters/RemoteIpFilter.java +++ b/java/org/apache/catalina/filters/RemoteIpFilter.java @@ -156,8 +156,8 @@ import org.apache.juli.logging.LogFactory; *

*
  * <filter>
- *    <filter-name>XForwardedFilter</filter-name>
- *    <filter-class>fr.xebia.servlet.filter.XForwardedFilter</filter-class>
+ *    <filter-name>RemoteIpFilter</filter-name>
+ *    <filter-class>org.apache.catalina.filters.RemoteIpFilter</filter-class>
  *    <init-param>
  *       <param-name>internalProxies</param-name><param-value>192\.168\.0\.10, 192\.168\.0\.11</param-value>
  *    </init-param>
@@ -173,7 +173,7 @@ import org.apache.juli.logging.LogFactory;
  * </filter>
  * 
  * <filter-mapping>
- *    <filter-name>XForwardedFilter</filter-name>
+ *    <filter-name>RemoteIpFilter</filter-name>
  *    <url-pattern>/*</url-pattern>
  *    <dispatcher>REQUEST</dispatcher>
  * </filter-mapping>
@@ -182,8 +182,8 @@ import org.apache.juli.logging.LogFactory; * * * - * - * + * + * * * * @@ -229,12 +229,12 @@ import org.apache.juli.logging.LogFactory; * Sample with trusted proxies *

*

- * XForwardedFilter configuration: + * RemoteIpFilter configuration: *

*
  * <filter>
- *    <filter-name>XForwardedFilter</filter-name>
- *    <filter-class>fr.xebia.servlet.filter.XForwardedFilter</filter-class>
+ *    <filter-name>RemoteIpFilter</filter-name>
+ *    <filter-class>org.apache.catalina.filters.RemoteIpFilter</filter-class>
  *    <init-param>
  *       <param-name>internalProxies</param-name><param-value>192\.168\.0\.10, 192\.168\.0\.11</param-value>
  *    </init-param>
@@ -250,7 +250,7 @@ import org.apache.juli.logging.LogFactory;
  * </filter>
  * 
  * <filter-mapping>
- *    <filter-name>XForwardedFilter</filter-name>
+ *    <filter-name>RemoteIpFilter</filter-name>
  *    <url-pattern>/*</url-pattern>
  *    <dispatcher>REQUEST</dispatcher>
  * </filter-mapping>
@@ -259,8 +259,8 @@ import org.apache.juli.logging.LogFactory; *
propertyValue Before XForwardedFilterValue After XForwardedFilterValue Before RemoteIpFilterValue After RemoteIpFilter
request.remoteAddr
* * - * - * + * + * * * * @@ -286,12 +286,12 @@ import org.apache.juli.logging.LogFactory; * Sample with internal and trusted proxies *

*

- * XForwardedFilter configuration: + * RemoteIpFilter configuration: *

*
  * <filter>
- *    <filter-name>XForwardedFilter</filter-name>
- *    <filter-class>fr.xebia.servlet.filter.XForwardedFilter</filter-class>
+ *    <filter-name>RemoteIpFilter</filter-name>
+ *    <filter-class>org.apache.catalina.filters.RemoteIpFilter</filter-class>
  *    <init-param>
  *       <param-name>internalProxies</param-name><param-value>192\.168\.0\.10, 192\.168\.0\.11</param-value>
  *    </init-param>
@@ -307,7 +307,7 @@ import org.apache.juli.logging.LogFactory;
  * </filter>
  * 
  * <filter-mapping>
- *    <filter-name>XForwardedFilter</filter-name>
+ *    <filter-name>RemoteIpFilter</filter-name>
  *    <url-pattern>/*</url-pattern>
  *    <dispatcher>REQUEST</dispatcher>
  * </filter-mapping>
@@ -316,8 +316,8 @@ import org.apache.juli.logging.LogFactory; *
propertyValue Before XForwardedFilterValue After XForwardedFilterValue Before RemoteIpFilterValue After RemoteIpFilter
request.remoteAddr
* * - * - * + * + * * * * @@ -344,12 +344,12 @@ import org.apache.juli.logging.LogFactory; * Sample with an untrusted proxy *

*

- * XForwardedFilter configuration: + * RemoteIpFilter configuration: *

*
  * <filter>
- *    <filter-name>XForwardedFilter</filter-name>
- *    <filter-class>fr.xebia.servlet.filter.XForwardedFilter</filter-class>
+ *    <filter-name>RemoteIpFilter</filter-name>
+ *    <filter-class>org.apache.catalina.filters.RemoteIpFilter</filter-class>
  *    <init-param>
  *       <param-name>internalProxies</param-name><param-value>192\.168\.0\.10, 192\.168\.0\.11</param-value>
  *    </init-param>
@@ -365,7 +365,7 @@ import org.apache.juli.logging.LogFactory;
  * </filter>
  * 
  * <filter-mapping>
- *    <filter-name>XForwardedFilter</filter-name>
+ *    <filter-name>RemoteIpFilter</filter-name>
  *    <url-pattern>/*</url-pattern>
  *    <dispatcher>REQUEST</dispatcher>
  * </filter-mapping>
@@ -374,8 +374,8 @@ import org.apache.juli.logging.LogFactory; *
propertyValue Before XForwardedFilterValue After XForwardedFilterValue Before RemoteIpFilterValue After RemoteIpFilter
request.remoteAddr
* * - * - * + * + * * * * @@ -460,9 +460,8 @@ public class RemoteIpFilter implements Filter { } if (date == null) { throw new IllegalArgumentException(value); - } else { - return date.getTime(); } + return date.getTime(); } @Override @@ -470,9 +469,8 @@ public class RemoteIpFilter implements Filter { Map.Entry> header = getHeaderEntry(name); if (header == null || header.getValue() == null || header.getValue().isEmpty()) { return null; - } else { - return header.getValue().get(0); } + return header.getValue().get(0); } protected Map.Entry> getHeaderEntry(String name) { @@ -494,9 +492,8 @@ public class RemoteIpFilter implements Filter { Map.Entry> header = getHeaderEntry(name); if (header == null || header.getValue() == null) { return Collections.enumeration(Collections.emptyList()); - } else { - return Collections.enumeration(header.getValue()); } + return Collections.enumeration(header.getValue()); } @Override @@ -504,9 +501,8 @@ public class RemoteIpFilter implements Filter { String value = getHeader(name); if (value == null) { return -1; - } else { - return Integer.parseInt(value); } + return Integer.parseInt(value); } @Override @@ -580,7 +576,7 @@ public class RemoteIpFilter implements Filter { protected static final String HTTPS_SERVER_PORT_PARAMETER = "httpsServerPort"; - protected static final String INTERNAL_PROXIES_PARAMETER = "allowedInternalProxies"; + protected static final String INTERNAL_PROXIES_PARAMETER = "internalProxies"; /** * Logger @@ -756,13 +752,13 @@ public class RemoteIpFilter implements Filter { if (log.isDebugEnabled()) { log.debug("Incoming request " + request.getRequestURI() + " with originalRemoteAddr '" + request.getRemoteAddr() - + "', originalRemoteHost='" + request.getRemoteHost() + "', originalSecure='" + request.isSecure() - + "', originalScheme='" + request.getScheme() + "', original[" + remoteIPHeader + "]='" - + request.getHeader(remoteIPHeader) + ", original[" + protocolHeader + "]='" - + request.getHeader(protocolHeader) + "' will be seen as newRemoteAddr='" + xRequest.getRemoteAddr() - + "', newRemoteHost='" + xRequest.getRemoteHost() + "', newScheme='" + xRequest.getScheme() + "', newSecure='" - + xRequest.isSecure() + "', new[" + remoteIPHeader + "]='" + xRequest.getHeader(remoteIPHeader) + ", new[" - + proxiesHeader + "]='" + xRequest.getHeader(proxiesHeader) + "'"); + + "', originalRemoteHost='" + request.getRemoteHost() + "', originalSecure='" + request.isSecure() + + "', originalScheme='" + request.getScheme() + "', original[" + remoteIPHeader + "]='" + + request.getHeader(remoteIPHeader) + ", original[" + protocolHeader + "]='" + + (protocolHeader == null ? null : request.getHeader(protocolHeader)) + "' will be seen as newRemoteAddr='" + + xRequest.getRemoteAddr() + "', newRemoteHost='" + xRequest.getRemoteHost() + "', newScheme='" + + xRequest.getScheme() + "', newSecure='" + xRequest.isSecure() + "', new[" + remoteIPHeader + "]='" + + xRequest.getHeader(remoteIPHeader) + ", new[" + proxiesHeader + "]='" + xRequest.getHeader(proxiesHeader) + "'"); } chain.doFilter(xRequest, response); } else { -- 2.11.0
propertyValue Before XForwardedFilterValue After XForwardedFilterValue Before RemoteIpFilterValue After RemoteIpFilter
request.remoteAddr