You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ranger.apache.org by pr...@apache.org on 2022/04/07 03:41:43 UTC

[ranger] 01/02: RANGER-3611: fix NullPtrException in download API

This is an automated email from the ASF dual-hosted git repository.

pradeep pushed a commit to branch ranger-2.3
in repository https://gitbox.apache.org/repos/asf/ranger.git

commit 88a375f3cb5ef4cc110494cd2582cb2f760e3a9d
Author: ZhouTianling <zh...@sensorsdata.cn>
AuthorDate: Tue Feb 8 19:09:45 2022 +0800

    RANGER-3611: fix NullPtrException in download API
    
    Signed-off-by: pradeep <pr...@apache.org>
---
 .../src/main/java/org/apache/ranger/biz/AssetMgr.java     |  2 +-
 .../src/main/java/org/apache/ranger/rest/RoleREST.java    | 10 ++--------
 .../src/main/java/org/apache/ranger/rest/ServiceREST.java | 13 ++++---------
 .../src/main/java/org/apache/ranger/rest/XUserREST.java   | 15 ++++-----------
 4 files changed, 11 insertions(+), 29 deletions(-)

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 baf169538..d63388c86 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
@@ -674,7 +674,7 @@ public class AssetMgr extends AssetMgrBase {
 		return ret;
 	}
 
-	public void createPluginInfo(String serviceName, String pluginId, HttpServletRequest request, int entityType, Long downloadedVersion, long lastKnownVersion, long lastActivationTime, int httpCode, String clusterName, String pluginCapabilities) {
+	public void createPluginInfo(String serviceName, String pluginId, HttpServletRequest request, int entityType, Long downloadedVersion, Long lastKnownVersion, long lastActivationTime, int httpCode, String clusterName, String pluginCapabilities) {
 		RangerRESTUtils restUtils = new RangerRESTUtils();
 
 		final String ipAddress = getRemoteAddress(request);
diff --git a/security-admin/src/main/java/org/apache/ranger/rest/RoleREST.java b/security-admin/src/main/java/org/apache/ranger/rest/RoleREST.java
index 220c70037..c72e10511 100644
--- a/security-admin/src/main/java/org/apache/ranger/rest/RoleREST.java
+++ b/security-admin/src/main/java/org/apache/ranger/rest/RoleREST.java
@@ -723,7 +723,7 @@ public class RoleREST {
     @Produces({ "application/json", "application/xml" })
     public RangerRoles getRangerRolesIfUpdated(
             @PathParam("serviceName") String serviceName,
-            @QueryParam("lastKnownRoleVersion") Long lastKnownRoleVersion,
+            @DefaultValue("-1") @QueryParam("lastKnownRoleVersion") Long lastKnownRoleVersion,
             @DefaultValue("0") @QueryParam("lastActivationTime") Long lastActivationTime,
             @QueryParam("pluginId") String pluginId,
             @DefaultValue("") @QueryParam("clusterName") String clusterName,
@@ -751,9 +751,6 @@ public class RoleREST {
             logMsg = e.getMessage();
         }
         if (isValid) {
-            if (lastKnownRoleVersion == null) {
-                lastKnownRoleVersion = Long.valueOf(-1);
-            }
             try {
                 RangerRoles roles = roleStore.getRoles(serviceName, lastKnownRoleVersion);
                 if (roles == null) {
@@ -793,7 +790,7 @@ public class RoleREST {
     @Produces({ "application/json", "application/xml" })
     public RangerRoles getSecureRangerRolesIfUpdated(
             @PathParam("serviceName") String serviceName,
-            @QueryParam("lastKnownRoleVersion") Long lastKnownRoleVersion,
+            @DefaultValue("-1") @QueryParam("lastKnownRoleVersion") Long lastKnownRoleVersion,
             @DefaultValue("0") @QueryParam("lastActivationTime") Long lastActivationTime,
             @QueryParam("pluginId") String pluginId,
             @DefaultValue("") @QueryParam("clusterName") String clusterName,
@@ -824,9 +821,6 @@ public class RoleREST {
             logMsg = e.getMessage();
         }
         if (isValid) {
-            if (lastKnownRoleVersion == null) {
-                lastKnownRoleVersion = Long.valueOf(-1);
-            }
             try {
                 XXService xService = daoManager.getXXService().findByName(serviceName);
                 if (xService == null) {
diff --git a/security-admin/src/main/java/org/apache/ranger/rest/ServiceREST.java b/security-admin/src/main/java/org/apache/ranger/rest/ServiceREST.java
index 7453a1900..642a18791 100644
--- a/security-admin/src/main/java/org/apache/ranger/rest/ServiceREST.java
+++ b/security-admin/src/main/java/org/apache/ranger/rest/ServiceREST.java
@@ -2989,7 +2989,7 @@ public class ServiceREST {
 	@Produces({ "application/json", "application/xml" })
 	public ServicePolicies getServicePoliciesIfUpdated(
 			@PathParam("serviceName") String serviceName,
-			@QueryParam("lastKnownVersion") Long lastKnownVersion,
+			@DefaultValue("-1") @QueryParam("lastKnownVersion") Long lastKnownVersion,
 			@DefaultValue("0") @QueryParam("lastActivationTime") Long lastActivationTime,
 			@QueryParam("pluginId") String pluginId,
 			@DefaultValue("") @QueryParam("clusterName") String clusterName,
@@ -3022,11 +3022,8 @@ public class ServiceREST {
 			httpCode = HttpServletResponse.SC_BAD_REQUEST;
 			logMsg = e.getMessage();
 		}
-		if (isValid) {
-			if (lastKnownVersion == null) {
-				lastKnownVersion = Long.valueOf(-1);
-			}
 
+		if (isValid) {
 			try {
 				if(RangerPerfTracer.isPerfTraceEnabled(PERF_LOG)) {
 					perf = RangerPerfTracer.getPerfTracer(PERF_LOG, "ServiceREST.getServicePoliciesIfUpdated(serviceName=" + serviceName + ",lastKnownVersion=" + lastKnownVersion + ",lastActivationTime=" + lastActivationTime + ")");
@@ -3071,7 +3068,7 @@ public class ServiceREST {
 	@Produces({ "application/json", "application/xml" })
 	public ServicePolicies getSecureServicePoliciesIfUpdated(
 			@PathParam("serviceName") String serviceName,
-			@QueryParam("lastKnownVersion") Long lastKnownVersion,
+			@DefaultValue("-1") @QueryParam("lastKnownVersion") Long lastKnownVersion,
 			@DefaultValue("0") @QueryParam("lastActivationTime") Long lastActivationTime,
 			@QueryParam("pluginId") String pluginId,
 			@DefaultValue("") @QueryParam("clusterName") String clusterName,
@@ -3104,10 +3101,8 @@ public class ServiceREST {
 			httpCode = HttpServletResponse.SC_BAD_REQUEST;
 			logMsg = e.getMessage();
 		}
+
 		if (isValid) {
-			if (lastKnownVersion == null) {
-				lastKnownVersion = Long.valueOf(-1);
-			}
 			try {
 				if (RangerPerfTracer.isPerfTraceEnabled(PERF_LOG)) {
 					perf = RangerPerfTracer.getPerfTracer(PERF_LOG, "ServiceREST.getSecureServicePoliciesIfUpdated(serviceName=" + serviceName + ",lastKnownVersion=" + lastKnownVersion + ",lastActivationTime=" + lastActivationTime + ")");
diff --git a/security-admin/src/main/java/org/apache/ranger/rest/XUserREST.java b/security-admin/src/main/java/org/apache/ranger/rest/XUserREST.java
index 451805321..4c9ebb7db 100644
--- a/security-admin/src/main/java/org/apache/ranger/rest/XUserREST.java
+++ b/security-admin/src/main/java/org/apache/ranger/rest/XUserREST.java
@@ -1299,7 +1299,7 @@ public class XUserREST {
     @Path("/download/{serviceName}")
     @Produces({ "application/xml", "application/json" })
     public RangerUserStore getRangerUserStoreIfUpdated(@PathParam("serviceName") String serviceName,
-                                                       @QueryParam("lastKnownUserStoreVersion") Long lastKnownUserStoreVersion,
+													   @DefaultValue("-1") @QueryParam("lastKnownUserStoreVersion") Long lastKnownUserStoreVersion,
                                                        @DefaultValue("0") @QueryParam("lastActivationTime") Long lastActivationTime,
                                                        @QueryParam("pluginId") String pluginId,
                                                        @DefaultValue("") @QueryParam("clusterName") String clusterName,
@@ -1313,8 +1313,9 @@ public class XUserREST {
         boolean         isValid  = false;
         int             httpCode = HttpServletResponse.SC_OK;
         String          logMsg   = null;
+        Long   downloadedVersion = null;
 
-        try {
+		try {
             bizUtil.failUnauthenticatedIfNotAllowed();
 
             isValid = serviceUtil.isValidService(serviceName, request);
@@ -1326,16 +1327,11 @@ public class XUserREST {
             logMsg   = e.getMessage();
         }
 
-        Long downloadedVersion = null;
-
         if (isValid) {
             try {
                 XXService xService = rangerDaoManager.getXXService().findByName(serviceName);
 
                 if (xService != null) {
-                    if (lastKnownUserStoreVersion == null) {
-                        lastKnownUserStoreVersion = Long.valueOf(-1);
-                    }
 
                     RangerUserStore rangerUserStore = xUserMgr.getRangerUserStore(lastKnownUserStoreVersion);
 
@@ -1377,7 +1373,7 @@ public class XUserREST {
 	@Path("/secure/download/{serviceName}")
 	@Produces({ "application/xml", "application/json" })
 	public RangerUserStore getSecureRangerUserStoreIfUpdated(@PathParam("serviceName") String serviceName,
-															 @QueryParam("lastKnownUserStoreVersion") Long lastKnownUserStoreVersion,
+															 @DefaultValue("-1") @QueryParam("lastKnownUserStoreVersion") Long lastKnownUserStoreVersion,
 															 @DefaultValue("0") @QueryParam("lastActivationTime") Long lastActivationTime,
 															 @QueryParam("pluginId") String pluginId,
 															 @DefaultValue("") @QueryParam("clusterName") String clusterName,
@@ -1402,9 +1398,6 @@ public class XUserREST {
 				isValid = true;
 			}
 			if (isValid) {
-				if (lastKnownUserStoreVersion == null) {
-					lastKnownUserStoreVersion = Long.valueOf(-1);
-				}
 				XXServiceDef xServiceDef = rangerDaoManager.getXXServiceDef().getById(xService.getType());
 				RangerService rangerService = svcStore.getServiceByName(serviceName);