Repository: incubator-unomi Updated Branches: refs/heads/master d43e3644d -> 046fc71cb
UNOMI-143 improve RemoteAddr and make sure we are using the same method everywhere in unomi-wab Project: http://git-wip-us.apache.org/repos/asf/incubator-unomi/repo Commit: http://git-wip-us.apache.org/repos/asf/incubator-unomi/commit/046fc71c Tree: http://git-wip-us.apache.org/repos/asf/incubator-unomi/tree/046fc71c Diff: http://git-wip-us.apache.org/repos/asf/incubator-unomi/diff/046fc71c Branch: refs/heads/master Commit: 046fc71cb938c36b71684097b84116ddefd52a28 Parents: d43e364 Author: dgaillard <[email protected]> Authored: Thu Nov 30 13:57:01 2017 +0100 Committer: dgaillard <[email protected]> Committed: Thu Nov 30 13:57:01 2017 +0100 ---------------------------------------------------------------------- .../java/org/apache/unomi/web/ContextServlet.java | 2 +- .../apache/unomi/web/EventsCollectorServlet.java | 2 +- .../main/java/org/apache/unomi/web/HttpUtils.java | 17 ++++++++++++++++- 3 files changed, 18 insertions(+), 3 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/incubator-unomi/blob/046fc71c/wab/src/main/java/org/apache/unomi/web/ContextServlet.java ---------------------------------------------------------------------- diff --git a/wab/src/main/java/org/apache/unomi/web/ContextServlet.java b/wab/src/main/java/org/apache/unomi/web/ContextServlet.java index 9844375..006c819 100644 --- a/wab/src/main/java/org/apache/unomi/web/ContextServlet.java +++ b/wab/src/main/java/org/apache/unomi/web/ContextServlet.java @@ -300,7 +300,7 @@ public class ContextServlet extends HttpServlet { throws IOException { List<String> filteredEventTypes = privacyService.getFilteredEventTypes(profile.getItemId()); - String thirdPartyId = eventService.authenticateThirdPartyServer(((HttpServletRequest)request).getHeader("X-Unomi-Peer"), request.getRemoteAddr()); + String thirdPartyId = eventService.authenticateThirdPartyServer(((HttpServletRequest)request).getHeader("X-Unomi-Peer"), HttpUtils.getRemoteAddr((HttpServletRequest) request)); int changes = EventService.NO_CHANGE; // execute provided events if any http://git-wip-us.apache.org/repos/asf/incubator-unomi/blob/046fc71c/wab/src/main/java/org/apache/unomi/web/EventsCollectorServlet.java ---------------------------------------------------------------------- diff --git a/wab/src/main/java/org/apache/unomi/web/EventsCollectorServlet.java b/wab/src/main/java/org/apache/unomi/web/EventsCollectorServlet.java index 432a694..81c3ada 100644 --- a/wab/src/main/java/org/apache/unomi/web/EventsCollectorServlet.java +++ b/wab/src/main/java/org/apache/unomi/web/EventsCollectorServlet.java @@ -171,7 +171,7 @@ public class EventsCollectorServlet extends HttpServlet { } } - String thirdPartyId = eventService.authenticateThirdPartyServer(((HttpServletRequest)request).getHeader("X-Unomi-Peer"), request.getRemoteAddr()); + String thirdPartyId = eventService.authenticateThirdPartyServer(((HttpServletRequest)request).getHeader("X-Unomi-Peer"), HttpUtils.getRemoteAddr(request)); int changes = 0; http://git-wip-us.apache.org/repos/asf/incubator-unomi/blob/046fc71c/wab/src/main/java/org/apache/unomi/web/HttpUtils.java ---------------------------------------------------------------------- diff --git a/wab/src/main/java/org/apache/unomi/web/HttpUtils.java b/wab/src/main/java/org/apache/unomi/web/HttpUtils.java index 8965aad..05b012d 100644 --- a/wab/src/main/java/org/apache/unomi/web/HttpUtils.java +++ b/wab/src/main/java/org/apache/unomi/web/HttpUtils.java @@ -66,7 +66,7 @@ public class HttpUtils { if (httpServletRequest.getQueryString() != null) { stringBuilder.append("?").append(httpServletRequest.getQueryString()); } - stringBuilder.append(" serverName=").append(httpServletRequest.getServerName()).append(" serverPort=").append(httpServletRequest.getServerPort()).append(" remoteAddr=").append(httpServletRequest.getRemoteAddr()).append(" remotePort=").append(httpServletRequest.getRemotePort()).append("\n"); + stringBuilder.append(" serverName=").append(httpServletRequest.getServerName()).append(" serverPort=").append(httpServletRequest.getServerPort()).append(" remoteAddr=").append(getRemoteAddr(httpServletRequest)).append(" remotePort=").append(httpServletRequest.getRemotePort()).append("\n"); return stringBuilder.toString(); } @@ -152,4 +152,19 @@ public class HttpUtils { } return null; } + + public static String getRemoteAddr(HttpServletRequest request) { + String remoteAddr = request.getRemoteAddr(); + String remoteAddrParameter = request.getParameter("remoteAddr"); + String xff = request.getHeader("X-Forwarded-For"); + if (remoteAddrParameter != null && remoteAddrParameter.length() > 0) { + remoteAddr = remoteAddrParameter; + } else if (xff != null && !xff.equals("")) { + if (xff.indexOf(',') > -1) { + xff = xff.substring(0, xff.indexOf(',')); + } + remoteAddr = xff; + } + return remoteAddr; + } }
