You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ranger.apache.org by ma...@apache.org on 2016/12/14 20:59:11 UTC

[2/2] incubator-ranger git commit: RANGER-1256: plugin-status report has incorrect plugin IP address when Ranger Admin is in HA mode

RANGER-1256: plugin-status report has incorrect plugin IP address when Ranger Admin is in HA mode

Signed-off-by: Madhan Neethiraj <ma...@apache.org>


Project: http://git-wip-us.apache.org/repos/asf/incubator-ranger/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-ranger/commit/a1dd7be6
Tree: http://git-wip-us.apache.org/repos/asf/incubator-ranger/tree/a1dd7be6
Diff: http://git-wip-us.apache.org/repos/asf/incubator-ranger/diff/a1dd7be6

Branch: refs/heads/master
Commit: a1dd7be65d9e0ac82b45aa6cb357a657ecab8c4f
Parents: 83674c7
Author: Abhay Kulkarni <ak...@hortonworks.com>
Authored: Tue Dec 13 16:11:26 2016 -0800
Committer: Madhan Neethiraj <ma...@apache.org>
Committed: Wed Dec 14 12:43:29 2016 -0800

----------------------------------------------------------------------
 .../java/org/apache/ranger/biz/AssetMgr.java    | 21 +++++++++++++++++++-
 1 file changed, 20 insertions(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-ranger/blob/a1dd7be6/security-admin/src/main/java/org/apache/ranger/biz/AssetMgr.java
----------------------------------------------------------------------
diff --git a/security-admin/src/main/java/org/apache/ranger/biz/AssetMgr.java b/security-admin/src/main/java/org/apache/ranger/biz/AssetMgr.java
index 479099d..d32d796 100644
--- a/security-admin/src/main/java/org/apache/ranger/biz/AssetMgr.java
+++ b/security-admin/src/main/java/org/apache/ranger/biz/AssetMgr.java
@@ -672,7 +672,7 @@ public class AssetMgr extends AssetMgrBase {
 	public void createPluginInfo(String serviceName, String pluginId, HttpServletRequest request, int entityType, long downloadedVersion, long lastKnownVersion, long lastActivationTime, int httpCode) {
 		RangerRESTUtils restUtils = new RangerRESTUtils();
 
-		final String ipAddress = request != null ? request.getRemoteAddr() : null;
+		final String ipAddress = getRemoteAddress(request);
 		final String appType = restUtils.getAppIdFromPluginId(pluginId);
 
 		String tmpHostName = null;
@@ -830,6 +830,25 @@ public class AssetMgr extends AssetMgrBase {
 		return ret;
 	}
 
+	private String getRemoteAddress(final HttpServletRequest request) {
+		String ret = null;
+
+		if (request != null) {
+			String xForwardedAddress = request.getHeader("X-Forwarded-For");
+			if (StringUtils.isNotBlank(xForwardedAddress)) {
+				String[] forwardedAddresses = xForwardedAddress.split(",");
+				if (forwardedAddresses.length > 0) {
+					// Use first one. Hope it is the IP of the originating client
+					ret = forwardedAddresses[0].trim();
+				}
+			}
+			if (ret == null) {
+				ret = request.getRemoteAddr();
+			}
+		}
+		return ret;
+	}
+
 	public VXTrxLogList getReportLogs(SearchCriteria searchCriteria) {
 		if (!xaBizUtil.isAdmin()) {
 			throw restErrorUtil.create403RESTException("Permission Denied !");