From 744c9a26156bccd42ae43a4ba1366fac2f25f51e Mon Sep 17 00:00:00 2001 From: luccioman Date: Fri, 12 Aug 2016 12:18:26 +0200 Subject: [PATCH] Opensearch desc : handle https protocol url with default port (443) This completes modifications made for mantis 669 (http://mantis.tokeek.de/view.php?id=669) --- htroot/opensearchdescription.java | 6 +++++- source/net/yacy/cora/protocol/HeaderFramework.java | 2 ++ source/net/yacy/http/servlets/YaCyDefaultServlet.java | 3 +++ 3 files changed, 10 insertions(+), 1 deletion(-) diff --git a/htroot/opensearchdescription.java b/htroot/opensearchdescription.java index 59a594ade..1e2444e8e 100644 --- a/htroot/opensearchdescription.java +++ b/htroot/opensearchdescription.java @@ -25,6 +25,7 @@ // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA import net.yacy.cora.protocol.Domains; +import net.yacy.cora.protocol.HeaderFramework; import net.yacy.cora.protocol.RequestHeader; import net.yacy.search.Switchboard; import net.yacy.search.SwitchboardConstants; @@ -39,7 +40,7 @@ public class opensearchdescription { String promoteSearchPageGreeting = env.getConfig(SwitchboardConstants.GREETING, ""); if (env.getConfigBool(SwitchboardConstants.GREETING_NETWORK_NAME, false)) promoteSearchPageGreeting = env.getConfig("network.unit.description", ""); - String thisaddress = header.get("Host"); // returns host:port (if not defalt http/https ports) + String thisaddress = header.get(HeaderFramework.HOST); // returns host:port (if not default http/https ports) String thisprotocol = "http"; if (thisaddress == null) { thisaddress = Domains.LOCALHOST + ":" + sb.getConfig("port", "8090"); @@ -49,6 +50,9 @@ public class opensearchdescription { thisprotocol = "https"; } } + /* YaCyDefaultServelt should have filled this custom header, making sure we know here wether original request is http or https + * (when default ports (80 and 443) are used, there is no way to distinguish the two schemes relying only on the Host header) */ + thisprotocol = header.get(HeaderFramework.X_YACY_REQUEST_SCHEME, thisprotocol); final serverObjects prop = new serverObjects(); prop.put("compareyacy", post != null && post.getBoolean("compare_yacy") ? 1 : 0); diff --git a/source/net/yacy/cora/protocol/HeaderFramework.java b/source/net/yacy/cora/protocol/HeaderFramework.java index 2aef01f6e..3c0f1fe62 100644 --- a/source/net/yacy/cora/protocol/HeaderFramework.java +++ b/source/net/yacy/cora/protocol/HeaderFramework.java @@ -113,6 +113,8 @@ public class HeaderFramework extends TreeMap implements Map