diff --git a/htroot/SettingsAck_p.java b/htroot/SettingsAck_p.java index 00bade8e5..4184a8a21 100644 --- a/htroot/SettingsAck_p.java +++ b/htroot/SettingsAck_p.java @@ -62,9 +62,8 @@ public class SettingsAck_p { final Switchboard sb = (Switchboard) env; // get referer for backlink - final String referer = header.get(RequestHeader.REFERER); + final String referer = header.referer(); prop.put("referer", (referer == null) ? "Settings_p.html" : referer); - //if (post == null) System.out.println("POST: NULL"); else System.out.println("POST: " + post.toString()); if (post == null) { diff --git a/htroot/Steering.java b/htroot/Steering.java index c88889333..a2f011696 100644 --- a/htroot/Steering.java +++ b/htroot/Steering.java @@ -29,6 +29,9 @@ import java.io.File; +import net.yacy.kelondro.logging.Log; + +import de.anomic.http.server.HeaderFramework; import de.anomic.http.server.RequestHeader; import de.anomic.search.Switchboard; import de.anomic.server.serverObjects; @@ -45,13 +48,17 @@ public class Steering { prop.put("info", "0"); //no information submitted if (prop == null) { return null; } + final String requestIP = post.get(HeaderFramework.CONNECTION_PROP_CLIENTIP, "127.0.0.1"); + // handle access rights if (!sb.verifyAuthentication(header, false)) { + Log.logInfo("STEERING", "log-in attempt for steering from " + requestIP); prop.put("AUTHENTICATE", "admin log-in"); // force log-in return prop; } if (post.containsKey("shutdown")) { + Log.logInfo("STEERING", "shutdown request from " + requestIP); sb.terminate(100); prop.put("info", "3"); @@ -59,6 +66,7 @@ public class Steering { } if (post.containsKey("restart")) { + Log.logInfo("STEERING", "restart request from " + requestIP); yacyRelease.restart(); prop.put("info", "4"); @@ -66,6 +74,7 @@ public class Steering { } if (post.containsKey("update")) { + Log.logInfo("STEERING", "update request from " + requestIP); final boolean devenvironment = new File(sb.getRootPath(), ".svn").exists(); final String releaseFileName = post.get("releaseinstall", ""); final File releaseFile = new File(sb.getRootPath(), "DATA/RELEASE/".replace("/", File.separator) + releaseFileName); diff --git a/htroot/cytag.java b/htroot/cytag.java index c5ec2af4b..7b73a291c 100644 --- a/htroot/cytag.java +++ b/htroot/cytag.java @@ -35,6 +35,7 @@ import net.yacy.document.parser.html.CharacterCoding; import net.yacy.kelondro.util.DateFormatter; import net.yacy.kelondro.util.FileUtils; +import de.anomic.http.server.HeaderFramework; import de.anomic.http.server.RequestHeader; import de.anomic.search.Switchboard; import de.anomic.server.serverObjects; @@ -50,11 +51,11 @@ public class cytag { StringBuilder connect = new StringBuilder(); connect.append('{'); addJSON(connect, "time", DateFormatter.formatShortMilliSecond(new Date())); - addJSON(connect, "trail", header.get("Referer", "")); + addJSON(connect, "trail", header.referer()); addJSON(connect, "nick", (post == null) ? "" : post.get("nick", "")); addJSON(connect, "tag", (post == null) ? "" : post.get("tag", "")); addJSON(connect, "icon", (post == null) ? "" : post.get("icon", "")); - addJSON(connect, "ip", header.get("CLIENTIP", "")); + addJSON(connect, "ip", header.get(HeaderFramework.CONNECTION_PROP_CLIENTIP, "")); addJSON(connect, "agent", header.get("User-Agent", "")); connect.append('}'); diff --git a/source/de/anomic/http/server/RequestHeader.java b/source/de/anomic/http/server/RequestHeader.java index 1676f190f..37e943588 100755 --- a/source/de/anomic/http/server/RequestHeader.java +++ b/source/de/anomic/http/server/RequestHeader.java @@ -25,12 +25,12 @@ package de.anomic.http.server; import java.io.IOException; import java.net.MalformedURLException; -import java.net.URL; import java.util.Date; import java.util.HashMap; import java.util.Map; import java.util.Properties; +import net.yacy.kelondro.data.meta.DigestURI; import net.yacy.kelondro.util.DateFormatter; import de.anomic.server.serverCore; @@ -79,10 +79,15 @@ public class RequestHeader extends HeaderFramework { } public String refererHost() { - String refererHost = ""; final String referer = referer(); - if (referer.length() > 0) try { refererHost = (new URL(referer)).getHost(); } catch (final MalformedURLException e) {} - return refererHost; + if (referer.length() == 0) return referer; + DigestURI url; + try { + url = new DigestURI(referer, null); + return url.getHost(); + } catch (MalformedURLException e1) { + return referer; + } } public Date ifModifiedSince() {