From ce8702546260a405e09fa8081c5874b45e27cf7d Mon Sep 17 00:00:00 2001 From: reger Date: Sat, 4 Mar 2017 22:45:17 +0100 Subject: [PATCH] further avoid to set connect info properties as header value following comment "use of properties as header values is discouraged" in case where (proxy)HTTPClient overwrites values with supplied url. Use defined request.referer procedure in response class. --- .../net/yacy/crawler/retrieval/Response.java | 18 ++++-------------- .../yacy/http/servlets/UrlProxyServlet.java | 3 --- .../yacy/http/servlets/YaCyProxyServlet.java | 3 --- .../yacy/server/http/HTTPDProxyHandler.java | 7 +++---- 4 files changed, 7 insertions(+), 24 deletions(-) diff --git a/source/net/yacy/crawler/retrieval/Response.java b/source/net/yacy/crawler/retrieval/Response.java index 5784f0267..d3fb279a5 100644 --- a/source/net/yacy/crawler/retrieval/Response.java +++ b/source/net/yacy/crawler/retrieval/Response.java @@ -791,24 +791,14 @@ public class Response { public DigestURL referrerURL() { if (this.requestHeader == null) return null; - try { - final String r = this.requestHeader.get(RequestHeader.REFERER, null); - if (r == null) return null; - return new DigestURL(r); - } catch (final Exception e) { - return null; - } + return this.requestHeader.referer(); } public byte[] referrerHash() { if (this.requestHeader == null) return null; - final String u = this.requestHeader.get(RequestHeader.REFERER, ""); - if (u == null || u.isEmpty()) return null; - try { - return new DigestURL(u).hash(); - } catch (final Exception e) { - return null; - } + final DigestURL url = this.requestHeader.referer(); + if (url == null) return null; + return url.hash(); } public boolean validResponseStatus() { diff --git a/source/net/yacy/http/servlets/UrlProxyServlet.java b/source/net/yacy/http/servlets/UrlProxyServlet.java index 390f8d08a..35df1c0e2 100644 --- a/source/net/yacy/http/servlets/UrlProxyServlet.java +++ b/source/net/yacy/http/servlets/UrlProxyServlet.java @@ -154,9 +154,6 @@ public class UrlProxyServlet extends HttpServlet implements Servlet { prop.put(HeaderFramework.CONNECTION_PROP_CLIENTIP, Domains.LOCALHOST); prop.put(HeaderFramework.CONNECTION_PROP_CLIENT_HTTPSERVLETREQUEST, request); - yacyRequestHeader.put(HeaderFramework.HOST, hostwithport ); - yacyRequestHeader.put(HeaderFramework.CONNECTION_PROP_PATH, proxyurl.getPath()); - // 4 & 5 get & index target url final ByteArrayOutputStream tmpproxyout = new ByteArrayOutputStream(); HTTPDProxyHandler.doGet(prop, yacyRequestHeader, tmpproxyout, ClientIdentification.yacyProxyAgent); diff --git a/source/net/yacy/http/servlets/YaCyProxyServlet.java b/source/net/yacy/http/servlets/YaCyProxyServlet.java index f2b697488..bcea16faa 100644 --- a/source/net/yacy/http/servlets/YaCyProxyServlet.java +++ b/source/net/yacy/http/servlets/YaCyProxyServlet.java @@ -125,9 +125,6 @@ public class YaCyProxyServlet extends HttpServlet implements Servlet { prop.put(HeaderFramework.CONNECTION_PROP_CLIENTIP, Domains.LOCALHOST); prop.put(HeaderFramework.CONNECTION_PROP_CLIENT_HTTPSERVLETREQUEST, request); - yacyRequestHeader.put(HeaderFramework.HOST, hostwithport ); - yacyRequestHeader.put(HeaderFramework.CONNECTION_PROP_PATH, proxyurl.getPath()); - final ByteArrayOutputStream tmpproxyout = new ByteArrayOutputStream(); HTTPDProxyHandler.doGet(prop, yacyRequestHeader, tmpproxyout, ClientIdentification.yacyProxyAgent); diff --git a/source/net/yacy/server/http/HTTPDProxyHandler.java b/source/net/yacy/server/http/HTTPDProxyHandler.java index 10d3b931b..5919a8b98 100644 --- a/source/net/yacy/server/http/HTTPDProxyHandler.java +++ b/source/net/yacy/server/http/HTTPDProxyHandler.java @@ -256,7 +256,8 @@ public final class HTTPDProxyHandler { } /** - * Get a page from the remote server as proxy request for the client + * Get a page from the remote server as proxy request for the client. + * The target url is expected in the conProp CONNECTION_PROP_DIGESTURL * * @param conProp a collection of properties about the connection, like URL * @param requestHeader The header lines of the connection from the request @@ -298,8 +299,6 @@ public final class HTTPDProxyHandler { log.finest(reqID + " using redirector to " + url); } conProp.put(HeaderFramework.CONNECTION_PROP_DIGESTURL, url); - requestHeader.put(HeaderFramework.HOST, url.getHost() + ":" + url.getPort()); - requestHeader.put(HeaderFramework.CONNECTION_PROP_PATH, url.getPath()); } @@ -401,7 +400,7 @@ public final class HTTPDProxyHandler { * Get requested proxied page from the web * * @param conProp - * @param url + * @param url requested target url * @param requestHeader * @param cachedResponseHeader * @param respond