You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ranger.apache.org by ab...@apache.org on 2019/05/16 20:38:09 UTC
[ranger] branch master updated: RANGER-2438: Legacy PublicAPI REST
API to get all policies fails
This is an automated email from the ASF dual-hosted git repository.
abhay pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/ranger.git
The following commit(s) were added to refs/heads/master by this push:
new 90a9960 RANGER-2438: Legacy PublicAPI REST API to get all policies fails
90a9960 is described below
commit 90a99603882494c45102d50059803535bf4d0165
Author: Abhay Kulkarni <ab...@apache.org>
AuthorDate: Thu May 16 13:37:57 2019 -0700
RANGER-2438: Legacy PublicAPI REST API to get all policies fails
---
.../java/org/apache/ranger/common/ServiceUtil.java | 2 +-
.../java/org/apache/ranger/rest/ServiceREST.java | 64 +++++++++++++---------
2 files changed, 38 insertions(+), 28 deletions(-)
diff --git a/security-admin/src/main/java/org/apache/ranger/common/ServiceUtil.java b/security-admin/src/main/java/org/apache/ranger/common/ServiceUtil.java
index 2003474..7c44e6c 100644
--- a/security-admin/src/main/java/org/apache/ranger/common/ServiceUtil.java
+++ b/security-admin/src/main/java/org/apache/ranger/common/ServiceUtil.java
@@ -485,7 +485,7 @@ public class ServiceUtil {
}
}
- return ret;
+ return ret == null ? 0 : ret;
}
private RangerBaseModelObject dataObjectToRangerObject(VXDataObject dataObject,RangerBaseModelObject rangerObject) {
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 3ff763c..0e7cd8f 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
@@ -340,15 +340,20 @@ public class ServiceREST {
bizUtil.hasAdminPermissions("Service-Def");
XXServiceDef xServiceDef = daoManager.getXXServiceDef().getById(id);
- bizUtil.hasKMSPermissions("Service-Def", xServiceDef.getImplclassname());
+ if (xServiceDef != null) {
+ bizUtil.hasKMSPermissions("Service-Def", xServiceDef.getImplclassname());
+
+ String forceDeleteStr = request.getParameter("forceDelete");
+ boolean forceDelete = false;
+ if (!StringUtils.isEmpty(forceDeleteStr) && "true".equalsIgnoreCase(forceDeleteStr)) {
+ forceDelete = true;
+ }
- String forceDeleteStr = request.getParameter("forceDelete");
- boolean forceDelete = false;
- if(!StringUtils.isEmpty(forceDeleteStr) && "true".equalsIgnoreCase(forceDeleteStr)) {
- forceDelete = true;
+ svcStore.deleteServiceDef(id, forceDelete);
+ } else {
+ LOG.error("Cannot retrieve service-definition:[" + id + "] for deletion");
+ throw new Exception("deleteServiceDef(" + id + ") failed");
}
-
- svcStore.deleteServiceDef(id, forceDelete);
} catch(WebApplicationException excp) {
throw excp;
} catch(Throwable excp) {
@@ -785,30 +790,35 @@ public class ServiceREST {
// services including KMS
XXService service = daoManager.getXXService().getById(id);
- EmbeddedServiceDefsUtil embeddedServiceDefsUtil = EmbeddedServiceDefsUtil.instance();
- if (service.getType().equals(embeddedServiceDefsUtil.getTagServiceDefId())){
- List<XXService> referringServices=daoManager.getXXService().findByTagServiceId(id);
- if(!CollectionUtils.isEmpty(referringServices)){
- Set<String> referringServiceNames=new HashSet<String>();
- for(XXService xXService:referringServices){
- referringServiceNames.add(xXService.getName());
- if(referringServiceNames.size()>=10){
- break;
+ if (service != null) {
+ EmbeddedServiceDefsUtil embeddedServiceDefsUtil = EmbeddedServiceDefsUtil.instance();
+ if (service.getType().equals(embeddedServiceDefsUtil.getTagServiceDefId())) {
+ List<XXService> referringServices = daoManager.getXXService().findByTagServiceId(id);
+ if (!CollectionUtils.isEmpty(referringServices)) {
+ Set<String> referringServiceNames = new HashSet<String>();
+ for (XXService xXService : referringServices) {
+ referringServiceNames.add(xXService.getName());
+ if (referringServiceNames.size() >= 10) {
+ break;
+ }
+ }
+ if (referringServices.size() <= 10) {
+ throw restErrorUtil.createRESTException("Tag service '" + service.getName() + "' is being referenced by " + referringServices.size() + " services: " + referringServiceNames, MessageEnums.OPER_NOT_ALLOWED_FOR_STATE);
+ } else {
+ throw restErrorUtil.createRESTException("Tag service '" + service.getName() + "' is being referenced by " + referringServices.size() + " services: " + referringServiceNames + " and more..", MessageEnums.OPER_NOT_ALLOWED_FOR_STATE);
}
- }
- if(referringServices.size()<=10){
- throw restErrorUtil.createRESTException("Tag service '" + service.getName() + "' is being referenced by " + referringServices.size() + " services: "+referringServiceNames,MessageEnums.OPER_NOT_ALLOWED_FOR_STATE);
- }else{
- throw restErrorUtil.createRESTException("Tag service '" + service.getName() + "' is being referenced by " + referringServices.size() + " services: "+referringServiceNames+" and more..",MessageEnums.OPER_NOT_ALLOWED_FOR_STATE);
}
}
- }
- XXServiceDef xxServiceDef = daoManager.getXXServiceDef().getById(service.getType());
- bizUtil.hasKMSPermissions("Service", xxServiceDef.getImplclassname());
- bizUtil.blockAuditorRoleUser();
- tagStore.deleteAllTagObjectsForService(service.getName());
+ XXServiceDef xxServiceDef = daoManager.getXXServiceDef().getById(service.getType());
+ bizUtil.hasKMSPermissions("Service", xxServiceDef.getImplclassname());
+ bizUtil.blockAuditorRoleUser();
+ tagStore.deleteAllTagObjectsForService(service.getName());
- svcStore.deleteService(id);
+ svcStore.deleteService(id);
+ } else {
+ LOG.error("Cannot retrieve service:[" + id + "] for deletion");
+ throw new Exception("deleteService(" + id + ") failed");
+ }
} catch(WebApplicationException excp) {
throw excp;
} catch(Throwable excp) {