From b594ee9a5a3e20b165e175bc67f65cc9ac6da97b Mon Sep 17 00:00:00 2001 From: theli Date: Thu, 29 Jun 2006 16:01:03 +0000 Subject: [PATCH] *) Adding possibility to configure if the http proxy should send the X-forwarded-for header (requested by TeeSee) See: http://www.yacy-forum.de/viewtopic.php?t=2577 git-svn-id: https://svn.berlios.de/svnroot/repos/yacy/trunk@2257 6c8d7289-2bf4-0310-a012-ef5d649a1542 --- htroot/SettingsAck_p.html | 4 ++++ htroot/SettingsAck_p.java | 4 ++++ htroot/Settings_Http.inc | 7 ++++++- htroot/Settings_p.java | 1 + source/de/anomic/http/httpdProxyHandler.java | 12 +++++++++--- yacy.init | 3 +++ 6 files changed, 27 insertions(+), 4 deletions(-) diff --git a/htroot/SettingsAck_p.html b/htroot/SettingsAck_p.html index 2cc9c0741..0ae5e1eff 100644 --- a/htroot/SettingsAck_p.html +++ b/htroot/SettingsAck_p.html @@ -118,6 +118,10 @@ Seed Upload method was changed successfully. Send via header is: #[proxy.sendViaHeader]# + + Send X-Forwarded-For header is: + #[proxy.sendXForwardedForHeader]# + ::

Your message forwarding settings have been changed.

diff --git a/htroot/SettingsAck_p.java b/htroot/SettingsAck_p.java index ecd03b97d..f6c085336 100644 --- a/htroot/SettingsAck_p.java +++ b/htroot/SettingsAck_p.java @@ -234,6 +234,10 @@ public class SettingsAck_p { env.setConfig("proxy.sendViaHeader", post.containsKey("proxy.sendViaHeader")?"true":"false"); prop.put("info_proxy.sendViaHeader", post.containsKey("proxy.sendViaHeader")? "on" : "off"); + // setting X-Forwarded-for header property + env.setConfig("proxy.sendXForwardedForHeader", post.containsKey("proxy.sendXForwardedForHeader")?"true":"false"); + prop.put("info_proxy.sendXForwardedForHeader", post.containsKey("proxy.sendXForwardedForHeader")? "on" : "off"); + prop.put("info", 20); return prop; } diff --git a/htroot/Settings_Http.inc b/htroot/Settings_Http.inc index c6b3144cc..52723dc11 100644 --- a/htroot/Settings_Http.inc +++ b/htroot/Settings_Http.inc @@ -18,7 +18,12 @@ Send Via Header: Specifies if the proxy should send the Via http header according to RFC 2616 Sect 14.45. - + + + Send X-Forwarded-For Header: + + Specifies if the proxy should send the X-Forwarded-For http header. +  Changes will take effect immediately. diff --git a/htroot/Settings_p.java b/htroot/Settings_p.java index fd93b6a2f..3be190403 100644 --- a/htroot/Settings_p.java +++ b/htroot/Settings_p.java @@ -117,6 +117,7 @@ public final class Settings_p { prop.put("isTransparentProxy", env.getConfig("isTransparentProxy", "false").equals("true") ? 1 : 0); prop.put("connectionKeepAliveSupport", env.getConfig("connectionKeepAliveSupport", "false").equals("true") ? 1 : 0); prop.put("proxy.sendViaHeader", env.getConfig("proxy.sendViaHeader", "false").equals("true") ? 1 : 0); + prop.put("proxy.sendXForwardedForHeader", env.getConfig("proxy.sendXForwardedForHeader", "true").equals("true") ? 1 : 0); // remote port forwarding settings boolean portForwardingAvailable = false; diff --git a/source/de/anomic/http/httpdProxyHandler.java b/source/de/anomic/http/httpdProxyHandler.java index a86119e5b..40a1f7eac 100644 --- a/source/de/anomic/http/httpdProxyHandler.java +++ b/source/de/anomic/http/httpdProxyHandler.java @@ -406,7 +406,9 @@ public final class httpdProxyHandler extends httpdAbstractHandler implements htt } // setting the X-Forwarded-For Header - requestHeader.put(httpHeader.X_FORWARDED_FOR,conProp.getProperty(httpHeader.CONNECTION_PROP_CLIENTIP)); + if (switchboard.getConfigBool("proxy.sendXForwardedForHeader", true)) { + requestHeader.put(httpHeader.X_FORWARDED_FOR,conProp.getProperty(httpHeader.CONNECTION_PROP_CLIENTIP)); + } // decide wether to use a cache entry or connect to the network File cacheFile = cacheManager.getCachePath(url); @@ -927,7 +929,9 @@ public final class httpdProxyHandler extends httpdAbstractHandler implements htt } // setting the X-Forwarded-For Header - requestHeader.put(httpHeader.X_FORWARDED_FOR,conProp.getProperty(httpHeader.CONNECTION_PROP_CLIENTIP)); + if (switchboard.getConfigBool("proxy.sendXForwardedForHeader", true)) { + requestHeader.put(httpHeader.X_FORWARDED_FOR,conProp.getProperty(httpHeader.CONNECTION_PROP_CLIENTIP)); + } // resolve yacy and yacyh domains String yAddress = yacyCore.seedDB.resolveYacyAddress(host); @@ -1015,7 +1019,9 @@ public final class httpdProxyHandler extends httpdAbstractHandler implements htt } // setting the X-Forwarded-For Header - requestHeader.put(httpHeader.X_FORWARDED_FOR,conProp.getProperty(httpHeader.CONNECTION_PROP_CLIENTIP)); + if (switchboard.getConfigBool("proxy.sendXForwardedForHeader", true)) { + requestHeader.put(httpHeader.X_FORWARDED_FOR,conProp.getProperty(httpHeader.CONNECTION_PROP_CLIENTIP)); + } // resolve yacy and yacyh domains String yAddress = yacyCore.seedDB.resolveYacyAddress(host); diff --git a/yacy.init b/yacy.init index b856bac5f..e02c76059 100644 --- a/yacy.init +++ b/yacy.init @@ -574,6 +574,9 @@ connectionKeepAliveSupport=true # Specifies if the proxy should send the via header according to RFC proxy.sendViaHeader=true +# Specifies if the proxy should send the X-Forwarded-For header +proxy.sendXForwardedForHeader=true + # Configuration options needed to configure server port forwarding portForwardingEnabled=false portForwardingUseProxy=false