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 2015/12/22 03:05:22 UTC
incubator-ranger git commit: RANGER-789: fix policy-listing for
non-admin users
Repository: incubator-ranger
Updated Branches:
refs/heads/master fbf4f3533 -> d94aecff9
RANGER-789: fix policy-listing for non-admin users
Project: http://git-wip-us.apache.org/repos/asf/incubator-ranger/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-ranger/commit/d94aecff
Tree: http://git-wip-us.apache.org/repos/asf/incubator-ranger/tree/d94aecff
Diff: http://git-wip-us.apache.org/repos/asf/incubator-ranger/diff/d94aecff
Branch: refs/heads/master
Commit: d94aecff9374dfa4a93685c8d215b55af219b68d
Parents: fbf4f35
Author: Madhan Neethiraj <ma...@apache.org>
Authored: Wed Dec 16 03:27:21 2015 -0800
Committer: Madhan Neethiraj <ma...@apache.org>
Committed: Mon Dec 21 17:58:30 2015 -0800
----------------------------------------------------------------------
.../plugin/store/AbstractPredicateUtil.java | 194 ++++++++++++++++++-
.../org/apache/ranger/biz/ServiceDBStore.java | 23 ++-
.../apache/ranger/common/RangerSearchUtil.java | 2 +-
.../org/apache/ranger/rest/ServiceREST.java | 176 +++++++++++------
.../org/apache/ranger/rest/TestServiceREST.java | 10 +-
5 files changed, 336 insertions(+), 69 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-ranger/blob/d94aecff/agents-common/src/main/java/org/apache/ranger/plugin/store/AbstractPredicateUtil.java
----------------------------------------------------------------------
diff --git a/agents-common/src/main/java/org/apache/ranger/plugin/store/AbstractPredicateUtil.java b/agents-common/src/main/java/org/apache/ranger/plugin/store/AbstractPredicateUtil.java
index abfb350..62b9bca 100644
--- a/agents-common/src/main/java/org/apache/ranger/plugin/store/AbstractPredicateUtil.java
+++ b/agents-common/src/main/java/org/apache/ranger/plugin/store/AbstractPredicateUtil.java
@@ -79,16 +79,23 @@ public class AbstractPredicateUtil {
}
public void addPredicates(SearchFilter filter, List<Predicate> predicates) {
+ addPredicateForServiceType(filter.getParam(SearchFilter.SERVICE_TYPE), predicates);
addPredicateForServiceTypeId(filter.getParam(SearchFilter.SERVICE_TYPE_ID), predicates);
addPredicateForServiceName(filter.getParam(SearchFilter.SERVICE_NAME), predicates);
+ // addPredicateForServiceId(filter.getParam(SearchFilter.SERVICE_ID), predicates); // not supported
addPredicateForPolicyName(filter.getParam(SearchFilter.POLICY_NAME), predicates);
addPredicateForPolicyId(filter.getParam(SearchFilter.POLICY_ID), predicates);
addPredicateForIsEnabled(filter.getParam(SearchFilter.IS_ENABLED), predicates);
addPredicateForIsRecursive(filter.getParam(SearchFilter.IS_RECURSIVE), predicates);
+ addPredicateForTagServiceName(filter.getParam(SearchFilter.TAG_SERVICE_NAME), predicates);
+ // addPredicateForTagServiceId(filter.getParam(SearchFilter.TAG_SERVICE_ID), predicates); // not supported
addPredicateForUserName(filter.getParam(SearchFilter.USER), predicates);
addPredicateForGroupName(filter.getParam(SearchFilter.GROUP), predicates);
- addPredicateForResourceSignature(filter.getParam(SearchFilter.RESOURCE_SIGNATURE), predicates);
addPredicateForResources(filter.getParamsWithPrefix(SearchFilter.RESOURCE_PREFIX, true), predicates);
+ addPredicateForPolicyResource(filter.getParam(SearchFilter.POL_RESOURCE), predicates);
+ addPredicateForPartialPolicyName(filter.getParam(SearchFilter.POLICY_NAME_PARTIAL), predicates);
+ addPredicateForResourceSignature(filter.getParam(SearchFilter.RESOURCE_SIGNATURE), predicates);
+ addPredicateForPolicyType(filter.getParam(SearchFilter.POLICY_TYPE), predicates);
}
public Comparator<RangerBaseModelObject> getSorter(SearchFilter filter) {
@@ -216,6 +223,40 @@ public class AbstractPredicateUtil {
sorterMap.put(SearchFilter.UPDATE_TIME, updateTimeComparator);
}
+ private Predicate addPredicateForServiceType(final String serviceType, List<Predicate> predicates) {
+ if(StringUtils.isEmpty(serviceType)) {
+ return null;
+ }
+
+ Predicate ret = new Predicate() {
+ @Override
+ public boolean evaluate(Object object) {
+ if(object == null) {
+ return false;
+ }
+
+ boolean ret = false;
+
+ if(object instanceof RangerServiceDef) {
+ RangerServiceDef serviceDef = (RangerServiceDef)object;
+ String svcType = serviceDef.getName();
+
+ ret = StringUtils.equals(svcType, serviceType);
+ } else {
+ ret = true;
+ }
+
+ return ret;
+ }
+ };
+
+ if(predicates != null) {
+ predicates.add(ret);
+ }
+
+ return ret;
+ }
+
private Predicate addPredicateForServiceTypeId(final String serviceTypeId, List<Predicate> predicates) {
if(StringUtils.isEmpty(serviceTypeId)) {
return null;
@@ -322,6 +363,39 @@ public class AbstractPredicateUtil {
return ret;
}
+ private Predicate addPredicateForPartialPolicyName(final String policyName, List<Predicate> predicates) {
+ if(StringUtils.isEmpty(policyName)) {
+ return null;
+ }
+
+ Predicate ret = new Predicate() {
+ @Override
+ public boolean evaluate(Object object) {
+ if(object == null) {
+ return false;
+ }
+
+ boolean ret = false;
+
+ if(object instanceof RangerPolicy) {
+ RangerPolicy policy = (RangerPolicy)object;
+
+ ret = StringUtils.containsIgnoreCase(policy.getName(), policyName);
+ } else {
+ ret = true;
+ }
+
+ return ret;
+ }
+ };
+
+ if(predicates != null) {
+ predicates.add(ret);
+ }
+
+ return ret;
+ }
+
private Predicate addPredicateForPolicyId(final String policyId, List<Predicate> predicates) {
if(StringUtils.isEmpty(policyId)) {
return null;
@@ -557,6 +631,58 @@ public class AbstractPredicateUtil {
return ret;
}
+ private Predicate addPredicateForPolicyResource(final String resourceValue, List<Predicate> predicates) {
+ if(StringUtils.isEmpty(resourceValue)) {
+ return null;
+ }
+
+ Predicate ret = new Predicate() {
+ @Override
+ public boolean evaluate(Object object) {
+ if(object == null) {
+ return false;
+ }
+
+ boolean ret = false;
+
+ if(object instanceof RangerPolicy) {
+ RangerPolicy policy = (RangerPolicy)object;
+ Map<String, RangerPolicyResource> policyResources = policy.getResources();
+
+ if(MapUtils.isNotEmpty(policyResources)) {
+ for(String resourceName : policyResources.keySet()) {
+ RangerPolicyResource policyResource = policyResources.get(resourceName);
+
+ if(policyResource != null && CollectionUtils.isNotEmpty(policyResource.getValues())) {
+ for(String policyResourceVal : policyResource.getValues()) {
+ if(StringUtils.containsIgnoreCase(policyResourceVal, resourceValue)) {
+ ret = true;
+
+ break;
+ }
+ }
+ }
+
+ if(ret) {
+ break;
+ }
+ }
+ }
+ } else {
+ ret = true;
+ }
+
+ return ret;
+ }
+ };
+
+ if(predicates != null) {
+ predicates.add(ret);
+ }
+
+ return ret;
+ }
+
private Predicate addPredicateForIsRecursive(final String isRecursiveStr, List<Predicate> predicates) {
if(StringUtils.isEmpty(isRecursiveStr)) {
return null;
@@ -604,6 +730,39 @@ public class AbstractPredicateUtil {
return ret;
}
+ private Predicate addPredicateForTagServiceName(final String tagServiceName, List<Predicate> predicates) {
+ if(StringUtils.isEmpty(tagServiceName)) {
+ return null;
+ }
+
+ Predicate ret = new Predicate() {
+ @Override
+ public boolean evaluate(Object object) {
+ if(object == null) {
+ return false;
+ }
+
+ boolean ret = false;
+
+ if(object instanceof RangerService) {
+ RangerService service = (RangerService)object;
+
+ ret = StringUtils.equals(tagServiceName, service.getTagService());
+ } else {
+ ret = true;
+ }
+
+ return ret;
+ }
+ };
+
+ if(ret != null) {
+ predicates.add(ret);
+ }
+
+ return ret;
+ }
+
private Predicate addPredicateForResourceSignature(String signature, List<Predicate> predicates) {
Predicate ret = createPredicateForResourceSignature(signature);
@@ -614,6 +773,39 @@ public class AbstractPredicateUtil {
return ret;
}
+
+ private Predicate addPredicateForPolicyType(final String policyType, List<Predicate> predicates) {
+ if(StringUtils.isEmpty(policyType)) {
+ return null;
+ }
+
+ Predicate ret = new Predicate() {
+ @Override
+ public boolean evaluate(Object object) {
+ if(object == null) {
+ return false;
+ }
+
+ boolean ret = true;
+
+ if(object instanceof RangerPolicy) {
+ RangerPolicy policy = (RangerPolicy)object;
+
+ if(policy.getPolicyType() != null) {
+ ret = StringUtils.equalsIgnoreCase(policyType, policy.getPolicyType().toString());
+ }
+ }
+
+ return ret;
+ }
+ };
+
+ if(predicates != null) {
+ predicates.add(ret);
+ }
+
+ return ret;
+ }
/**
* @param policySignature
http://git-wip-us.apache.org/repos/asf/incubator-ranger/blob/d94aecff/security-admin/src/main/java/org/apache/ranger/biz/ServiceDBStore.java
----------------------------------------------------------------------
diff --git a/security-admin/src/main/java/org/apache/ranger/biz/ServiceDBStore.java b/security-admin/src/main/java/org/apache/ranger/biz/ServiceDBStore.java
index 80d8dd3..38091bd 100644
--- a/security-admin/src/main/java/org/apache/ranger/biz/ServiceDBStore.java
+++ b/security-admin/src/main/java/org/apache/ranger/biz/ServiceDBStore.java
@@ -1641,7 +1641,13 @@ public class ServiceDBStore extends AbstractServiceStore {
throw new Exception("service does not exist - id='" + serviceId);
}
- List<RangerPolicy> ret = getServicePolicies(service.getName(), filter);
+ RangerPolicyRetriever policyRetriever = new RangerPolicyRetriever(daoMgr);
+
+ List<RangerPolicy> ret = policyRetriever.getServicePolicies(service);
+
+ if(filter != null) {
+ predicateUtil.applyFilter(ret, filter);
+ }
return ret;
}
@@ -1658,7 +1664,6 @@ public class ServiceDBStore extends AbstractServiceStore {
throw new Exception("service does not exist - id='" + serviceId);
}
-
PList<RangerPolicy> ret = getPaginatedServicePolicies(service.getName(), filter);
return ret;
@@ -1670,13 +1675,19 @@ public class ServiceDBStore extends AbstractServiceStore {
LOG.debug("==> ServiceDBStore.getServicePolicies(" + serviceName + ")");
}
- if(filter == null) {
- filter = new SearchFilter();
+ XXService service = daoMgr.getXXService().findByName(serviceName);
+
+ if (service == null) {
+ throw new Exception("service does not exist - name='" + serviceName);
}
- filter.setParam(SearchFilter.SERVICE_NAME, serviceName);
+ RangerPolicyRetriever policyRetriever = new RangerPolicyRetriever(daoMgr);
- List<RangerPolicy> ret = getPolicies(filter);
+ List<RangerPolicy> ret = policyRetriever.getServicePolicies(service);
+
+ if(filter != null) {
+ predicateUtil.applyFilter(ret, filter);
+ }
if(LOG.isDebugEnabled()) {
LOG.debug("<== ServiceDBStore.getServicePolicies(" + serviceName + "): count=" + ((ret == null) ? 0 : ret.size()));
http://git-wip-us.apache.org/repos/asf/incubator-ranger/blob/d94aecff/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 141e634..cf66fc1 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
@@ -159,7 +159,7 @@ public class RangerSearchUtil extends SearchUtil {
int pageSize = restErrorUtil.parseInt(request.getParameter(SearchFilter.PAGE_SIZE),
configUtil.getDefaultMaxRows(), "Invalid value for parameter pageSize",
MessageEnums.INVALID_INPUT_DATA, null, SearchFilter.PAGE_SIZE);
- ret.setMaxRows(pageSize);
+ ret.setMaxRows(validatePageSize(pageSize));
ret.setGetCount(restErrorUtil.parseBoolean(request.getParameter("getCount"), true));
String sortBy = restErrorUtil.validateString(request.getParameter(SearchFilter.SORT_BY),
http://git-wip-us.apache.org/repos/asf/incubator-ranger/blob/d94aecff/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 7d41f07..3c00e63 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
@@ -40,6 +40,7 @@ import javax.ws.rs.core.Context;
import javax.ws.rs.core.MediaType;
import org.apache.commons.collections.CollectionUtils;
+import org.apache.commons.collections.MapUtils;
import org.apache.commons.lang.StringUtils;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
@@ -1256,32 +1257,42 @@ public class ServiceREST {
LOG.debug("==> ServiceREST.getPolicies()");
}
- RangerPolicyList ret = null;
+ RangerPolicyList ret = new RangerPolicyList();
RangerPerfTracer perf = null;
- PList<RangerPolicy> paginatedPolicies = null;
-
SearchFilter filter = searchUtil.getSearchFilter(request, policyService.sortFields);
try {
if(RangerPerfTracer.isPerfTraceEnabled(PERF_LOG)) {
perf = RangerPerfTracer.getPerfTracer(PERF_LOG, "ServiceREST.getPolicies()");
}
- paginatedPolicies = svcStore.getPaginatedPolicies(filter);
- if(paginatedPolicies != null) {
- ret = new RangerPolicyList();
+ if(isAdminUserWithNoFilterParams(filter)) {
+ PList<RangerPolicy> policies = svcStore.getPaginatedPolicies(filter);
+
+ ret = toRangerPolicyList(policies);
+ } else {
+ // get all policies from the store; pick the page to return after applying filter
+ int savedStartIndex = filter == null ? 0 : filter.getStartIndex();
+ int savedMaxRows = filter == null ? Integer.MAX_VALUE : filter.getMaxRows();
- ret.setPolicies(paginatedPolicies.getList());
- ret.setPageSize(paginatedPolicies.getPageSize());
- ret.setResultSize(paginatedPolicies.getResultSize());
- ret.setStartIndex(paginatedPolicies.getStartIndex());
- ret.setTotalCount(paginatedPolicies.getTotalCount());
- ret.setSortBy(paginatedPolicies.getSortBy());
- ret.setSortType(paginatedPolicies.getSortType());
+ if(filter != null) {
+ filter.setStartIndex(0);
+ filter.setMaxRows(Integer.MAX_VALUE);
+ }
+
+ List<RangerPolicy> policies = svcStore.getPolicies(filter);
+
+ if(filter != null) {
+ filter.setStartIndex(savedStartIndex);
+ filter.setMaxRows(savedMaxRows);
+ }
- applyAdminAccessFilter(ret);
+ applyAdminAccessFilter(policies);
+
+ ret = toRangerPolicyList(policies, filter);
}
+
} catch(WebApplicationException excp) {
throw excp;
} catch (Throwable excp) {
@@ -1376,31 +1387,40 @@ public class ServiceREST {
LOG.debug("==> ServiceREST.getServicePolicies(" + serviceId + ")");
}
- RangerPolicyList ret = null;
+ RangerPolicyList ret = new RangerPolicyList();
RangerPerfTracer perf = null;
- PList<RangerPolicy> paginatedPolicies = null;
-
SearchFilter filter = searchUtil.getSearchFilter(request, policyService.sortFields);
try {
if(RangerPerfTracer.isPerfTraceEnabled(PERF_LOG)) {
perf = RangerPerfTracer.getPerfTracer(PERF_LOG, "ServiceREST.getServicePolicies(serviceId=" + serviceId + ")");
}
- paginatedPolicies = svcStore.getPaginatedServicePolicies(serviceId, filter);
- if(paginatedPolicies != null) {
- ret = new RangerPolicyList();
+ if(isAdminUserWithNoFilterParams(filter)) {
+ PList<RangerPolicy> policies = svcStore.getPaginatedServicePolicies(serviceId, filter);
- ret.setPolicies(paginatedPolicies.getList());
- ret.setPageSize(paginatedPolicies.getPageSize());
- ret.setResultSize(paginatedPolicies.getResultSize());
- ret.setStartIndex(paginatedPolicies.getStartIndex());
- ret.setTotalCount(paginatedPolicies.getTotalCount());
- ret.setSortBy(paginatedPolicies.getSortBy());
- ret.setSortType(paginatedPolicies.getSortType());
+ ret = toRangerPolicyList(policies);
+ } else {
+ // get all policies from the store; pick the page to return after applying filter
+ int savedStartIndex = filter == null ? 0 : filter.getStartIndex();
+ int savedMaxRows = filter == null ? Integer.MAX_VALUE : filter.getMaxRows();
+
+ if(filter != null) {
+ filter.setStartIndex(0);
+ filter.setMaxRows(Integer.MAX_VALUE);
+ }
- applyAdminAccessFilter(ret);
+ List<RangerPolicy> servicePolicies = svcStore.getServicePolicies(serviceId, filter);
+
+ if(filter != null) {
+ filter.setStartIndex(savedStartIndex);
+ filter.setMaxRows(savedMaxRows);
+ }
+
+ applyAdminAccessFilter(servicePolicies);
+
+ ret = toRangerPolicyList(servicePolicies, filter);
}
} catch(WebApplicationException excp) {
throw excp;
@@ -1412,10 +1432,6 @@ public class ServiceREST {
RangerPerfTracer.log(perf);
}
- if (ret == null) {
- LOG.info("No Policies found for given service id: " + serviceId);
- }
-
if (LOG.isDebugEnabled()) {
LOG.debug("<== ServiceREST.getServicePolicies(" + serviceId + "): count="
+ (ret == null ? 0 : ret.getListSize()));
@@ -1432,31 +1448,40 @@ public class ServiceREST {
LOG.debug("==> ServiceREST.getServicePolicies(" + serviceName + ")");
}
- RangerPolicyList ret = null;
+ RangerPolicyList ret = new RangerPolicyList();
RangerPerfTracer perf = null;
- PList<RangerPolicy> paginatedPolicies = null;
-
SearchFilter filter = searchUtil.getSearchFilter(request, policyService.sortFields);
try {
if(RangerPerfTracer.isPerfTraceEnabled(PERF_LOG)) {
perf = RangerPerfTracer.getPerfTracer(PERF_LOG, "ServiceREST.getServicePolicies(serviceName=" + serviceName + ")");
}
- paginatedPolicies = svcStore.getPaginatedServicePolicies(serviceName, filter);
- if(paginatedPolicies != null) {
- ret = new RangerPolicyList();
+ if(isAdminUserWithNoFilterParams(filter)) {
+ PList<RangerPolicy> policies = svcStore.getPaginatedServicePolicies(serviceName, filter);
+
+ ret = toRangerPolicyList(policies);
+ } else {
+ // get all policies from the store; pick the page to return after applying filter
+ int savedStartIndex = filter == null ? 0 : filter.getStartIndex();
+ int savedMaxRows = filter == null ? Integer.MAX_VALUE : filter.getMaxRows();
+
+ if(filter != null) {
+ filter.setStartIndex(0);
+ filter.setMaxRows(Integer.MAX_VALUE);
+ }
- ret.setPolicies(paginatedPolicies.getList());
- ret.setPageSize(paginatedPolicies.getPageSize());
- ret.setResultSize(paginatedPolicies.getResultSize());
- ret.setStartIndex(paginatedPolicies.getStartIndex());
- ret.setTotalCount(paginatedPolicies.getTotalCount());
- ret.setSortBy(paginatedPolicies.getSortBy());
- ret.setSortType(paginatedPolicies.getSortType());
+ List<RangerPolicy> servicePolicies = svcStore.getServicePolicies(serviceName, filter);
- applyAdminAccessFilter(ret);
+ if(filter != null) {
+ filter.setStartIndex(savedStartIndex);
+ filter.setMaxRows(savedMaxRows);
+ }
+
+ applyAdminAccessFilter(servicePolicies);
+
+ ret = toRangerPolicyList(servicePolicies, filter);
}
} catch(WebApplicationException excp) {
throw excp;
@@ -1468,10 +1493,6 @@ public class ServiceREST {
RangerPerfTracer.log(perf);
}
- if (ret == null) {
- LOG.info("No Policies found for given service name: " + serviceName);
- }
-
if (LOG.isDebugEnabled()) {
LOG.debug("<== ServiceREST.getServicePolicies(" + serviceName + "): count="
+ (ret == null ? 0 : ret.getListSize()));
@@ -1773,12 +1794,6 @@ public class ServiceREST {
return svcStore.getPolicyForVersionNumber(policyId, versionNo);
}
- private void applyAdminAccessFilter(RangerPolicyList policies) {
- if(policies != null && !CollectionUtils.isEmpty(policies.getList())) {
- applyAdminAccessFilter(policies.getPolicies());
- }
- }
-
private void applyAdminAccessFilter(List<RangerPolicy> policies) {
boolean isAdmin = bizUtil.isAdmin();
boolean isKeyAdmin = bizUtil.isKeyAdmin();
@@ -1912,4 +1927,53 @@ public class ServiceREST {
return String.valueOf(bizUtil.isSSOEnabled());
}
+ boolean isAdminUserWithNoFilterParams(SearchFilter filter) {
+ return (filter == null || MapUtils.isEmpty(filter.getParams())) &&
+ (bizUtil.isAdmin() || bizUtil.isKeyAdmin());
+ }
+
+ private RangerPolicyList toRangerPolicyList(PList<RangerPolicy> policyList) {
+ RangerPolicyList ret = new RangerPolicyList();
+
+ if(policyList != null) {
+ ret.setPolicies(policyList.getList());
+ ret.setPageSize(policyList.getPageSize());
+ ret.setResultSize(policyList.getResultSize());
+ ret.setStartIndex(policyList.getStartIndex());
+ ret.setTotalCount(policyList.getTotalCount());
+ ret.setSortBy(policyList.getSortBy());
+ ret.setSortType(policyList.getSortType());
+ }
+
+ return ret;
+ }
+
+ private RangerPolicyList toRangerPolicyList(List<RangerPolicy> policyList, SearchFilter filter) {
+ RangerPolicyList ret = new RangerPolicyList();
+
+ if(CollectionUtils.isNotEmpty(policyList)) {
+ int totalCount = policyList.size();
+ int startIndex = filter == null ? 0 : filter.getStartIndex();
+ int pageSize = filter == null ? totalCount : filter.getMaxRows();
+ int toIndex = Math.min(startIndex + pageSize, totalCount);
+ String sortType = filter == null ? null : filter.getSortType();
+ String sortBy = filter == null ? null : filter.getSortBy();
+
+ List<RangerPolicy> retList = new ArrayList<RangerPolicy>();
+ for(int i = startIndex; i < toIndex; i++) {
+ retList.add(policyList.get(i));
+ }
+
+ ret.setPolicies(retList);
+ ret.setPageSize(pageSize);
+ ret.setResultSize(retList.size());
+ ret.setStartIndex(startIndex);
+ ret.setTotalCount(totalCount);
+ ret.setSortBy(sortBy);
+ ret.setSortType(sortType);
+ }
+
+ return ret;
+ }
+
}
http://git-wip-us.apache.org/repos/asf/incubator-ranger/blob/d94aecff/security-admin/src/test/java/org/apache/ranger/rest/TestServiceREST.java
----------------------------------------------------------------------
diff --git a/security-admin/src/test/java/org/apache/ranger/rest/TestServiceREST.java b/security-admin/src/test/java/org/apache/ranger/rest/TestServiceREST.java
index 339f1e7..d7af3c2 100644
--- a/security-admin/src/test/java/org/apache/ranger/rest/TestServiceREST.java
+++ b/security-admin/src/test/java/org/apache/ranger/rest/TestServiceREST.java
@@ -880,7 +880,8 @@ public class TestServiceREST {
searchUtil.getSearchFilter(request, policyService.sortFields))
.thenReturn(filter);
RangerPolicyList dbRangerPolicy = serviceREST.getPolicies(request);
- Assert.assertNull(dbRangerPolicy);
+ Assert.assertNotNull(dbRangerPolicy);
+ Assert.assertEquals(dbRangerPolicy.getListSize(), 0);
Mockito.verify(searchUtil).getSearchFilter(request,
policyService.sortFields);
}
@@ -903,7 +904,6 @@ public class TestServiceREST {
Assert.assertNotNull(data);
Mockito.verify(searchUtil).getSearchFilter(request,
policyService.sortFields);
- Mockito.verify(svcStore).getPaginatedPolicies(filter);
}
@Test
@@ -927,7 +927,7 @@ public class TestServiceREST {
Assert.assertNotNull(dbRangerPolicy);
Mockito.verify(searchUtil).getSearchFilter(request,
policyService.sortFields);
- Mockito.verify(svcStore).getPaginatedServicePolicies(Id, filter);
+ Mockito.verify(svcStore).getServicePolicies(Id, filter);
}
@Test
@@ -935,7 +935,7 @@ public class TestServiceREST {
HttpServletRequest request = Mockito.mock(HttpServletRequest.class);
RangerPolicy rangerPolicy = rangerPolicy();
- PList<RangerPolicy> ret = Mockito.mock(PList.class);
+ List<RangerPolicy> ret = Mockito.mock(List.class);
SearchFilter filter = new SearchFilter();
filter.setParam(SearchFilter.POLICY_NAME, "policyName");
filter.setParam(SearchFilter.SERVICE_NAME, "serviceName");
@@ -944,7 +944,7 @@ public class TestServiceREST {
.thenReturn(filter);
Mockito.when(
- svcStore.getPaginatedServicePolicies(rangerPolicy.getName(),
+ svcStore.getServicePolicies(rangerPolicy.getName(),
filter)).thenReturn(ret);
RangerPolicyList dbRangerPolicy = serviceREST.getServicePoliciesByName(