Repository: incubator-ranger Updated Branches: refs/heads/master cb2dc3146 -> 63c7893ae
RANGER-380: Fixed Case sensitive comparision Project: http://git-wip-us.apache.org/repos/asf/incubator-ranger/repo Commit: http://git-wip-us.apache.org/repos/asf/incubator-ranger/commit/63c7893a Tree: http://git-wip-us.apache.org/repos/asf/incubator-ranger/tree/63c7893a Diff: http://git-wip-us.apache.org/repos/asf/incubator-ranger/diff/63c7893a Branch: refs/heads/master Commit: 63c7893aeb7edadd24b8076e7c2ed18e4cf1065f Parents: cb2dc31 Author: Ramesh Mani <[email protected]> Authored: Wed Apr 8 02:28:40 2015 -0400 Committer: sneethiraj <[email protected]> Committed: Wed Apr 8 02:28:40 2015 -0400 ---------------------------------------------------------------------- .../apache/ranger/common/RangerSearchUtil.java | 23 +++++++++- .../java/org/apache/ranger/rest/PublicAPIs.java | 45 +++++++------------- .../org/apache/ranger/rest/ServiceREST.java | 23 ++++++++++ 3 files changed, 61 insertions(+), 30 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/incubator-ranger/blob/63c7893a/security-admin/src/main/java/org/apache/ranger/common/RangerSearchUtil.java ---------------------------------------------------------------------- diff --git a/security-admin/src/main/java/org/apache/ranger/common/RangerSearchUtil.java b/security-admin/src/main/java/org/apache/ranger/common/RangerSearchUtil.java index 1a45d43..8b98ac9 100644 --- a/security-admin/src/main/java/org/apache/ranger/common/RangerSearchUtil.java +++ b/security-admin/src/main/java/org/apache/ranger/common/RangerSearchUtil.java @@ -79,6 +79,27 @@ public class RangerSearchUtil extends SearchUtil { return ret; } + public SearchFilter getSearchFilterFromLegacyRequestForRepositorySearch(HttpServletRequest request, List<SortField> sortFields) { + if (request == null) { + return null; + } + + SearchFilter ret = new SearchFilter(); + + if (MapUtils.isEmpty(request.getParameterMap())) { + ret.setParams(new HashMap<String, String>()); + } + + ret.setParam(SearchFilter.SERVICE_NAME, request.getParameter("name")); + ret.setParam(SearchFilter.IS_ENABLED, request.getParameter("status")); + ret.setParam(SearchFilter.SERVICE_TYPE, request.getParameter("type").toLowerCase()); + + extractCommonCriteriasForFilter(request, ret, sortFields); + + return ret; + } + + public SearchFilter getSearchFilterFromLegacyRequest(HttpServletRequest request, List<SortField> sortFields) { if (request == null) { return null; @@ -90,7 +111,7 @@ public class RangerSearchUtil extends SearchUtil { ret.setParams(new HashMap<String, String>()); } - ret.setParam(SearchFilter.SERVICE_TYPE, request.getParameter("repositoryType")); + ret.setParam(SearchFilter.SERVICE_TYPE, request.getParameter("repositoryType").toLowerCase()); ret.setParam(SearchFilter.SERVICE_NAME, request.getParameter("repositoryName")); ret.setParam(SearchFilter.SERVICE_ID, request.getParameter("repositoryId")); ret.setParam(SearchFilter.POLICY_NAME, request.getParameter("policyName")); http://git-wip-us.apache.org/repos/asf/incubator-ranger/blob/63c7893a/security-admin/src/main/java/org/apache/ranger/rest/PublicAPIs.java ---------------------------------------------------------------------- diff --git a/security-admin/src/main/java/org/apache/ranger/rest/PublicAPIs.java b/security-admin/src/main/java/org/apache/ranger/rest/PublicAPIs.java index cd31f69..736e56f 100644 --- a/security-admin/src/main/java/org/apache/ranger/rest/PublicAPIs.java +++ b/security-admin/src/main/java/org/apache/ranger/rest/PublicAPIs.java @@ -19,6 +19,7 @@ package org.apache.ranger.rest; +import org.apache.commons.collections.MapUtils; import org.apache.log4j.Logger; import org.apache.ranger.common.*; import org.apache.ranger.common.annotation.RangerAnnotationClassName; @@ -39,7 +40,8 @@ import org.springframework.transaction.annotation.Transactional; import javax.servlet.http.HttpServletRequest; import javax.ws.rs.*; import javax.ws.rs.core.Context; -import java.util.ArrayList; + +import java.util.HashMap; import java.util.List; @Path("public") @@ -177,57 +179,42 @@ public class PublicAPIs { if(logger.isDebugEnabled()) { logger.debug("==> PublicAPIs.searchRepositories()"); } - - SearchCriteria searchCriteria = searchUtil.extractCommonCriterias( - request, xAssetService.sortFields); - searchUtil.extractString(request, searchCriteria, "name", - "Repository Name", null); - searchUtil.extractBoolean(request, searchCriteria, "status", - "Activation Status"); - searchUtil.extractString(request, searchCriteria, "type", - "Repository Type", null); - searchCriteria = serviceUtil.getMappedSearchParams(request, - searchCriteria); - List<RangerService> serviceList = serviceREST.getServices(request); + SearchFilter filter = searchUtil.getSearchFilterFromLegacyRequestForRepositorySearch(request, policyService.sortFields); + + List<RangerService> serviceList = serviceREST.getServices(filter); VXRepositoryList ret = null; if (serviceList != null) { ret = serviceUtil.rangerServiceListToPublicObjectList(serviceList); } + if(logger.isDebugEnabled()) { logger.debug("<== PublicAPIs.searchRepositories(): count=" + (ret == null ? 0 : ret.getListSize())); } - + return ret; } - + @GET @Path("/api/repository/count") @Produces({ "application/json", "application/xml" }) public VXLong countRepositories(@Context HttpServletRequest request) { - SearchCriteria searchCriteria = searchUtil.extractCommonCriterias( - request, xAssetService.sortFields); - + if(logger.isDebugEnabled()) { logger.debug("==> PublicAPIs.countRepositories()"); } - - ArrayList<Integer> valueList = new ArrayList<Integer>(); - valueList.add(RangerConstants.STATUS_DISABLED); - valueList.add(RangerConstants.STATUS_ENABLED); - searchCriteria.addParam("status", valueList); - + VXLong ret = new VXLong(); ret.setValue(serviceREST.countServices(request)); - + if(logger.isDebugEnabled()) { logger.debug("<== PublicAPIs.countRepositories(): count=" + ret); } - + return ret; } @@ -367,16 +354,16 @@ public class PublicAPIs { if(logger.isDebugEnabled()) { logger.debug("==> PublicAPIs.countPolicies(): "); } - + Long policyCount = serviceREST.countPolicies(request); VXLong vXlong = new VXLong(); vXlong.setValue(policyCount); - + if(logger.isDebugEnabled()) { logger.debug("<== PublicAPIs.countPolicies(): " + request ); } - + return vXlong; } http://git-wip-us.apache.org/repos/asf/incubator-ranger/blob/63c7893a/security-admin/src/main/java/org/apache/ranger/rest/ServiceREST.java ---------------------------------------------------------------------- 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 c85422c..c2b0a3f 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 @@ -474,6 +474,29 @@ public class ServiceREST { return ret; } + public List<RangerService> getServices(SearchFilter filter) { + if(LOG.isDebugEnabled()) { + LOG.debug("==> ServiceREST.getServices():"); + } + + List<RangerService> ret = null; + + try { + ret = svcStore.getServices(filter); + } catch(Exception excp) { + LOG.error("getServices() failed", excp); + + throw restErrorUtil.createRESTException(HttpServletResponse.SC_BAD_REQUEST, excp.getMessage(), true); + } + + if(LOG.isDebugEnabled()) { + LOG.debug("<== ServiceREST.getServices(): count=" + (ret == null ? 0 : ret.size())); + } + + return ret; + } + + @GET @Path("/services/count") @Produces({ "application/json", "application/xml" })
