diff --git a/java/com.sap.sse.replication/src/com/sap/sse/replication/impl/ReplicationServlet.java b/java/com.sap.sse.replication/src/com/sap/sse/replication/impl/ReplicationServlet.java index e054d325c83..03557bf2aee 100755 --- a/java/com.sap.sse.replication/src/com/sap/sse/replication/impl/ReplicationServlet.java +++ b/java/com.sap.sse.replication/src/com/sap/sse/replication/impl/ReplicationServlet.java @@ -340,9 +340,12 @@ public class ReplicationServlet extends AbstractHttpServlet { } private ReplicaDescriptor getReplicaDescriptor(HttpServletRequest req) throws UnknownHostException { - InetAddress ipAddress = InetAddress.getByName(req.getRemoteAddr()); - UUID uuid = UUID.fromString(req.getParameter(SERVER_UUID)); - String additional = req.getParameter(ADDITIONAL_INFORMATION); + final String forwardedFor = req.getHeader("X-Forwarded-For"); // could have come through a load balancer / reverse proxy + final InetAddress ipAddress = forwardedFor != null && !forwardedFor.trim().isEmpty() + ? InetAddress.getByName(forwardedFor) + : InetAddress.getByName(req.getRemoteAddr()); + final UUID uuid = UUID.fromString(req.getParameter(SERVER_UUID)); + final String additional = req.getParameter(ADDITIONAL_INFORMATION); final String[] replicableIdsAsStrings = req.getParameter(REPLICABLES_IDS_AS_STRINGS_COMMA_SEPARATED).split(","); return new ReplicaDescriptorImpl(ipAddress, uuid, additional, replicableIdsAsStrings); }