Repository: ranger Updated Branches: refs/heads/ranger-0.7 9890a90b9 -> c84b98fba
http://git-wip-us.apache.org/repos/asf/ranger/blob/c84b98fb/security-admin/src/main/java/org/apache/ranger/service/RangerServiceResourceService.java ---------------------------------------------------------------------- diff --git a/security-admin/src/main/java/org/apache/ranger/service/RangerServiceResourceService.java b/security-admin/src/main/java/org/apache/ranger/service/RangerServiceResourceService.java index d725680..f0cb8f4 100644 --- a/security-admin/src/main/java/org/apache/ranger/service/RangerServiceResourceService.java +++ b/security-admin/src/main/java/org/apache/ranger/service/RangerServiceResourceService.java @@ -19,113 +19,167 @@ package org.apache.ranger.service; +import java.lang.reflect.Type; import java.util.ArrayList; +import java.util.HashMap; import java.util.List; +import java.util.Map; +import com.google.gson.reflect.TypeToken; 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; +import org.apache.ranger.authorization.utils.JsonUtils; +import org.apache.ranger.biz.RangerTagDBRetriever; import org.apache.ranger.common.SearchField; import org.apache.ranger.common.SearchField.DATA_TYPE; import org.apache.ranger.common.SearchField.SEARCH_TYPE; import org.apache.ranger.entity.XXServiceResource; +import org.apache.ranger.plugin.model.RangerPolicy; import org.apache.ranger.plugin.model.RangerServiceResource; +import org.apache.ranger.plugin.model.RangerTag; import org.apache.ranger.plugin.util.SearchFilter; import org.springframework.stereotype.Service; @Service public class RangerServiceResourceService extends RangerServiceResourceServiceBase<XXServiceResource, RangerServiceResource> { - private boolean serviceUpdateNeeded = true; + private static final Log LOG = LogFactory.getLog(RangerServiceResourceService.class); - public RangerServiceResourceService() { - searchFields.add(new SearchField(SearchFilter.TAG_RESOURCE_ID, "obj.id", DATA_TYPE.INTEGER, SEARCH_TYPE.FULL)); - searchFields.add(new SearchField(SearchFilter.TAG_SERVICE_ID, "obj.serviceId", DATA_TYPE.INTEGER, SEARCH_TYPE.FULL)); - searchFields.add(new SearchField(SearchFilter.TAG_RESOURCE_SIGNATURE, "obj.resourceSignature", DATA_TYPE.STRING, SEARCH_TYPE.FULL)); - } + private boolean serviceUpdateNeeded = true; - @Override - protected void validateForCreate(RangerServiceResource vObj) { + public static final Type subsumedDataType = new TypeToken<Map<String, RangerPolicy.RangerPolicyResource>>() {}.getType(); + public static final Type duplicatedDataType = new TypeToken<List<RangerTag>>() {}.getType(); - } + public RangerServiceResourceService() { + searchFields.add(new SearchField(SearchFilter.TAG_RESOURCE_ID, "obj.id", DATA_TYPE.INTEGER, SEARCH_TYPE.FULL)); + searchFields.add(new SearchField(SearchFilter.TAG_SERVICE_ID, "obj.serviceId", DATA_TYPE.INTEGER, SEARCH_TYPE.FULL)); + searchFields.add(new SearchField(SearchFilter.TAG_RESOURCE_SIGNATURE, "obj.resourceSignature", DATA_TYPE.STRING, SEARCH_TYPE.FULL)); + } - @Override - protected void validateForUpdate(RangerServiceResource vObj, XXServiceResource entityObj) { - if (StringUtils.equals(entityObj.getGuid(), vObj.getGuid()) && - StringUtils.equals(entityObj.getResourceSignature(), vObj.getResourceSignature())) { - serviceUpdateNeeded = false; - } else { - serviceUpdateNeeded = true; - } - } + @Override + protected void validateForCreate(RangerServiceResource vObj) { - @Override - public RangerServiceResource postUpdate(XXServiceResource resource) { - RangerServiceResource ret = super.postUpdate(resource); + } - if (serviceUpdateNeeded) { - daoMgr.getXXServiceVersionInfo().updateServiceVersionInfoForServiceResourceUpdate(resource.getId(), resource.getUpdateTime()); - } + @Override + protected void validateForUpdate(RangerServiceResource vObj, XXServiceResource entityObj) { + if (StringUtils.equals(entityObj.getGuid(), vObj.getGuid()) && + StringUtils.equals(entityObj.getResourceSignature(), vObj.getResourceSignature())) { + serviceUpdateNeeded = false; + } else { + serviceUpdateNeeded = true; + } + } - return ret; - } + @Override + public RangerServiceResource postUpdate(XXServiceResource resource) { + RangerServiceResource ret = super.postUpdate(resource); - public RangerServiceResource getPopulatedViewObject(XXServiceResource xObj) { - return populateViewBean(xObj); - } + if (serviceUpdateNeeded) { + daoMgr.getXXServiceVersionInfo().updateServiceVersionInfoForServiceResourceUpdate(resource.getId(), resource.getUpdateTime()); + } - public RangerServiceResource getServiceResourceByGuid(String guid) { - RangerServiceResource ret = null; + return ret; + } - XXServiceResource xxServiceResource = daoMgr.getXXServiceResource().findByGuid(guid); - - if(xxServiceResource != null) { - ret = populateViewBean(xxServiceResource); - } + public RangerServiceResource getPopulatedViewObject(XXServiceResource xObj) { + return populateViewBean(xObj); + } - return ret; - } + public RangerServiceResource getServiceResourceByGuid(String guid) { + RangerServiceResource ret = null; - public List<RangerServiceResource> getByServiceId(Long serviceId) { - List<RangerServiceResource> ret = new ArrayList<RangerServiceResource>(); + XXServiceResource xxServiceResource = daoMgr.getXXServiceResource().findByGuid(guid); - List<XXServiceResource> xxServiceResources = daoMgr.getXXServiceResource().findByServiceId(serviceId); + if (xxServiceResource != null) { + ret = populateViewBean(xxServiceResource); + } - if(CollectionUtils.isNotEmpty(xxServiceResources)) { - for(XXServiceResource xxServiceResource : xxServiceResources) { - RangerServiceResource serviceResource = populateViewBean(xxServiceResource); + return ret; + } - ret.add(serviceResource); - } - } + public List<RangerServiceResource> getByServiceId(Long serviceId) { + List<RangerServiceResource> ret = new ArrayList<RangerServiceResource>(); - return ret; - } + List<XXServiceResource> xxServiceResources = daoMgr.getXXServiceResource().findByServiceId(serviceId); - public RangerServiceResource getByServiceAndResourceSignature(Long serviceId, String resourceSignature) { - RangerServiceResource ret = null; + if (CollectionUtils.isNotEmpty(xxServiceResources)) { + for (XXServiceResource xxServiceResource : xxServiceResources) { + RangerServiceResource serviceResource = populateViewBean(xxServiceResource); - XXServiceResource xxServiceResource = daoMgr.getXXServiceResource().findByServiceAndResourceSignature(serviceId, resourceSignature); - - if(xxServiceResource != null) { - ret = populateViewBean(xxServiceResource); - } + ret.add(serviceResource); + } + } - return ret; - } + return ret; + } - public List<RangerServiceResource> getTaggedResourcesInServiceId(Long serviceId) { - List<RangerServiceResource> ret = new ArrayList<RangerServiceResource>(); + public RangerServiceResource getByServiceAndResourceSignature(Long serviceId, String resourceSignature) { + RangerServiceResource ret = null; - List<XXServiceResource> xxServiceResources = daoMgr.getXXServiceResource().findByServiceId(serviceId); - - if(CollectionUtils.isNotEmpty(xxServiceResources)) { - for(XXServiceResource xxServiceResource : xxServiceResources) { - RangerServiceResource serviceResource = populateViewBean(xxServiceResource); + XXServiceResource xxServiceResource = daoMgr.getXXServiceResource().findByServiceAndResourceSignature(serviceId, resourceSignature); - ret.add(serviceResource); - } - } + if (xxServiceResource != null) { + ret = populateViewBean(xxServiceResource); + } - return ret; - } + return ret; + } + + public List<RangerServiceResource> getTaggedResourcesInServiceId(Long serviceId) { + List<RangerServiceResource> ret = new ArrayList<RangerServiceResource>(); + + List<XXServiceResource> xxServiceResources = daoMgr.getXXServiceResource().findByServiceId(serviceId); + + if (CollectionUtils.isNotEmpty(xxServiceResources)) { + for (XXServiceResource xxServiceResource : xxServiceResources) { + RangerServiceResource serviceResource = populateViewBean(xxServiceResource); + + ret.add(serviceResource); + } + } + + return ret; + } + + @Override + protected XXServiceResource mapViewToEntityBean(RangerServiceResource serviceResource, XXServiceResource xxServiceResource, int operationContext) { + XXServiceResource ret = super.mapViewToEntityBean(serviceResource, xxServiceResource, operationContext); + if (MapUtils.isNotEmpty(serviceResource.getResourceElements())) { + String serviceResourceElements = JsonUtils.mapToJson(serviceResource.getResourceElements()); + if (StringUtils.isNotEmpty(serviceResourceElements)) { + ret.setServiceResourceElements(serviceResourceElements); + } else { + LOG.info("Empty string representing serviceResourceElements in [" + ret + "]!!"); + } + } + + return ret; + } + + @Override + protected RangerServiceResource mapEntityToViewBean(RangerServiceResource serviceResource, XXServiceResource xxServiceResource) { + RangerServiceResource ret = super.mapEntityToViewBean(serviceResource, xxServiceResource); + if (StringUtils.isNotEmpty(xxServiceResource.getServiceResourceElements())) { + Map<String, RangerPolicy.RangerPolicyResource> serviceResourceElements = + RangerTagDBRetriever.gsonBuilder.fromJson(xxServiceResource.getServiceResourceElements(), RangerServiceResourceService.subsumedDataType); + if (MapUtils.isNotEmpty(serviceResourceElements)) { + ret.setResourceElements(serviceResourceElements); + } else { + LOG.info("Empty serviceResourceElement in [" + ret + "]!!"); + } + } else { + LOG.info("Empty string representing serviceResourceElements in [" + xxServiceResource + "]!!"); + } + + return ret; + } + + @Override + Map<String, RangerPolicy.RangerPolicyResource> getServiceResourceElements(XXServiceResource xxServiceResource) { + return new HashMap<>(); + } } http://git-wip-us.apache.org/repos/asf/ranger/blob/c84b98fb/security-admin/src/main/java/org/apache/ranger/service/RangerServiceResourceServiceBase.java ---------------------------------------------------------------------- diff --git a/security-admin/src/main/java/org/apache/ranger/service/RangerServiceResourceServiceBase.java b/security-admin/src/main/java/org/apache/ranger/service/RangerServiceResourceServiceBase.java index 6af682a..329d3ee 100644 --- a/security-admin/src/main/java/org/apache/ranger/service/RangerServiceResourceServiceBase.java +++ b/security-admin/src/main/java/org/apache/ranger/service/RangerServiceResourceServiceBase.java @@ -73,26 +73,31 @@ public abstract class RangerServiceResourceServiceBase<T extends XXServiceResour vObj.setServiceName(xService.getName()); - List<XXServiceResourceElement> resElementList = daoMgr.getXXServiceResourceElement().findByResourceId(xObj.getId()); - Map<String, RangerPolicy.RangerPolicyResource> resourceElements = new HashMap<String, RangerPolicy.RangerPolicyResource>(); + Map<String, RangerPolicy.RangerPolicyResource> resourceElements = getServiceResourceElements(xObj); - for (XXServiceResourceElement resElement : resElementList) { - List<String> resValueMapList = daoMgr.getXXServiceResourceElementValue().findValuesByResElementId(resElement.getId()); + vObj.setResourceElements(resourceElements); - XXResourceDef xResDef = daoMgr.getXXResourceDef().getById(resElement.getResDefId()); + return vObj; + } - RangerPolicyResource policyRes = new RangerPolicyResource(); - policyRes.setIsExcludes(resElement.getIsExcludes()); - policyRes.setIsRecursive(resElement.getIsRecursive()); - policyRes.setValues(resValueMapList); + Map<String, RangerPolicyResource> getServiceResourceElements(T xObj) { + List<XXServiceResourceElement> resElementList = daoMgr.getXXServiceResourceElement().findByResourceId(xObj.getId()); + Map<String, RangerPolicy.RangerPolicyResource> resourceElements = new HashMap<String, RangerPolicy.RangerPolicyResource>(); - resourceElements.put(xResDef.getName(), policyRes); - } + for (XXServiceResourceElement resElement : resElementList) { + List<String> resValueMapList = daoMgr.getXXServiceResourceElementValue().findValuesByResElementId(resElement.getId()); - vObj.setResourceElements(resourceElements); + XXResourceDef xResDef = daoMgr.getXXResourceDef().getById(resElement.getResDefId()); - return vObj; - } + RangerPolicyResource policyRes = new RangerPolicyResource(); + policyRes.setIsExcludes(resElement.getIsExcludes()); + policyRes.setIsRecursive(resElement.getIsRecursive()); + policyRes.setValues(resValueMapList); + + resourceElements.put(xResDef.getName(), policyRes); + } + return resourceElements; + } public PList<V> searchServiceResources(SearchFilter searchFilter) { PList<V> retList = new PList<V>(); http://git-wip-us.apache.org/repos/asf/ranger/blob/c84b98fb/security-admin/src/main/java/org/apache/ranger/service/RangerTagDefService.java ---------------------------------------------------------------------- diff --git a/security-admin/src/main/java/org/apache/ranger/service/RangerTagDefService.java b/security-admin/src/main/java/org/apache/ranger/service/RangerTagDefService.java index 82eb252..10c73f0 100644 --- a/security-admin/src/main/java/org/apache/ranger/service/RangerTagDefService.java +++ b/security-admin/src/main/java/org/apache/ranger/service/RangerTagDefService.java @@ -23,6 +23,8 @@ import java.util.ArrayList; import java.util.List; import org.apache.commons.collections.CollectionUtils; +import org.apache.ranger.authorization.utils.JsonUtils; +import org.apache.ranger.biz.RangerTagDBRetriever; import org.apache.ranger.common.SearchField; import org.apache.ranger.common.SearchField.DATA_TYPE; import org.apache.ranger.common.SearchField.SEARCH_TYPE; @@ -102,5 +104,27 @@ public class RangerTagDefService extends RangerTagDefServiceBase<XXTagDef, Range return ret; } + + @Override + protected RangerTagDef mapEntityToViewBean(RangerTagDef vObj, XXTagDef xObj) { + super.mapEntityToViewBean(vObj, xObj); + + List<RangerTagDef.RangerTagAttributeDef> attributeDefs = RangerTagDBRetriever.gsonBuilder.fromJson(xObj.getTagAttrDefs(), RangerTagDBRetriever.subsumedDataType); + vObj.setAttributeDefs(attributeDefs); + + return vObj; + } + + @Override + protected XXTagDef mapViewToEntityBean(RangerTagDef vObj, XXTagDef xObj, int OPERATION_CONTEXT) { + super.mapViewToEntityBean(vObj, xObj, OPERATION_CONTEXT); + xObj.setTagAttrDefs(JsonUtils.listToJson(vObj.getAttributeDefs())); + return xObj; + } + + @Override + public List<RangerTagDef.RangerTagAttributeDef> getAttributeDefForTagDef(XXTagDef xtagDef) { + return new ArrayList<>(); + } } http://git-wip-us.apache.org/repos/asf/ranger/blob/c84b98fb/security-admin/src/main/java/org/apache/ranger/service/RangerTagService.java ---------------------------------------------------------------------- diff --git a/security-admin/src/main/java/org/apache/ranger/service/RangerTagService.java b/security-admin/src/main/java/org/apache/ranger/service/RangerTagService.java index 28b9115..2fa8830 100644 --- a/security-admin/src/main/java/org/apache/ranger/service/RangerTagService.java +++ b/security-admin/src/main/java/org/apache/ranger/service/RangerTagService.java @@ -19,13 +19,21 @@ package org.apache.ranger.service; +import java.lang.reflect.Type; import java.util.ArrayList; +import java.util.HashMap; import java.util.List; +import java.util.Map; +import com.google.gson.reflect.TypeToken; import org.apache.commons.collections.CollectionUtils; +import org.apache.commons.lang.StringUtils; +import org.apache.ranger.authorization.utils.JsonUtils; +import org.apache.ranger.biz.RangerTagDBRetriever; import org.apache.ranger.common.SearchField; import org.apache.ranger.common.SearchField.DATA_TYPE; import org.apache.ranger.common.SearchField.SEARCH_TYPE; +import org.apache.ranger.entity.XXServiceResource; import org.apache.ranger.entity.XXTag; import org.apache.ranger.plugin.model.RangerTag; import org.apache.ranger.plugin.util.SearchFilter; @@ -35,6 +43,8 @@ import org.springframework.stereotype.Service; @Service public class RangerTagService extends RangerTagServiceBase<XXTag, RangerTag> { + public static final Type subsumedDataType = new TypeToken<Map<String, String>>() {}.getType(); + public RangerTagService() { searchFields.add(new SearchField(SearchFilter.TAG_ID, "obj.id", SearchField.DATA_TYPE.INTEGER, SearchField.SEARCH_TYPE.FULL)); searchFields.add(new SearchField(SearchFilter.TAG_DEF_ID, "obj.type", SearchField.DATA_TYPE.INTEGER, SearchField.SEARCH_TYPE.FULL)); @@ -95,13 +105,12 @@ public class RangerTagService extends RangerTagServiceBase<XXTag, RangerTag> { public List<RangerTag> getTagsForResourceId(Long resourceId) { List<RangerTag> ret = new ArrayList<RangerTag>(); - List<XXTag> xxTags = daoMgr.getXXTag().findForResourceId(resourceId); - - if(CollectionUtils.isNotEmpty(xxTags)) { - for(XXTag xxTag : xxTags) { - RangerTag tag = populateViewBean(xxTag); + XXServiceResource serviceResourceEntity = daoMgr.getXXServiceResource().getById(resourceId); - ret.add(tag); + if (serviceResourceEntity != null) { + String tagsText = serviceResourceEntity.getTags(); + if (StringUtils.isNotEmpty(tagsText)) { + ret = RangerTagDBRetriever.gsonBuilder.fromJson(tagsText, RangerServiceResourceService.duplicatedDataType); } } @@ -111,13 +120,12 @@ public class RangerTagService extends RangerTagServiceBase<XXTag, RangerTag> { public List<RangerTag> getTagsForResourceGuid(String resourceGuid) { List<RangerTag> ret = new ArrayList<RangerTag>(); - List<XXTag> xxTags = daoMgr.getXXTag().findForResourceGuid(resourceGuid); - - if(CollectionUtils.isNotEmpty(xxTags)) { - for(XXTag xxTag : xxTags) { - RangerTag tag = populateViewBean(xxTag); + XXServiceResource serviceResourceEntity = daoMgr.getXXServiceResource().findByGuid(resourceGuid); - ret.add(tag); + if (serviceResourceEntity != null) { + String tagsText = serviceResourceEntity.getTags(); + if (StringUtils.isNotEmpty(tagsText)) { + ret = RangerTagDBRetriever.gsonBuilder.fromJson(tagsText, RangerServiceResourceService.duplicatedDataType); } } @@ -139,4 +147,25 @@ public class RangerTagService extends RangerTagServiceBase<XXTag, RangerTag> { return ret; } + + @Override + protected RangerTag mapEntityToViewBean(RangerTag vObj, XXTag xObj) { + super.mapEntityToViewBean(vObj, xObj); + + Map<String, String> attributes = RangerTagDBRetriever.gsonBuilder.fromJson(xObj.getTagAttrs(), RangerTagService.subsumedDataType); + vObj.setAttributes(attributes); + return vObj; + } + + @Override + protected XXTag mapViewToEntityBean(RangerTag vObj, XXTag xObj, int OPERATION_CONTEXT) { + super.mapViewToEntityBean(vObj, xObj, OPERATION_CONTEXT); + xObj.setTagAttrs(JsonUtils.mapToJson(vObj.getAttributes())); + return xObj; + } + + @Override + public Map<String, String> getAttributesForTag(XXTag xTag) { + return new HashMap<>(); + } } \ No newline at end of file http://git-wip-us.apache.org/repos/asf/ranger/blob/c84b98fb/security-admin/src/main/resources/META-INF/jpa_named_queries.xml ---------------------------------------------------------------------- diff --git a/security-admin/src/main/resources/META-INF/jpa_named_queries.xml b/security-admin/src/main/resources/META-INF/jpa_named_queries.xml index 4a7055d..cacc43f 100644 --- a/security-admin/src/main/resources/META-INF/jpa_named_queries.xml +++ b/security-admin/src/main/resources/META-INF/jpa_named_queries.xml @@ -199,22 +199,11 @@ </query> </named-query> - <named-query name="XXUser.findByPolicyItemId"> - <query>select obj.name from XXUser obj, XXPolicyItemUserPerm polItemUser - where polItemUser.policyItemId = :polItemId and polItemUser.userId = obj.id </query> - </named-query> - <named-query name="XXUser.findByPortalUserId"> <query>select obj from XXUser obj, XXPortalUser portalUser where portalUser.id = :portalUserId and obj.name = portalUser.loginId</query> </named-query> - <named-query name="XXGroup.findByPolicyItemId"> - <query>select obj.name from XXGroup obj, XXPolicyItemGroupPerm polItemGrp - where polItemGrp.policyItemId = :polItemId and polItemGrp.groupId = obj.id </query> - </named-query> - - <!-- XXPolicyItem --> <named-query name="XXPolicyItem.findByPolicyId"> <query>select obj from XXPolicyItem obj @@ -343,18 +332,6 @@ <query>select obj from XXPolicyConditionDef obj where obj.defId = :serviceDefId and obj.name = :name order by obj.order</query> </named-query> - <named-query name="XXPolicyConditionDef.findByPolicyItemId"> - <query>select obj from XXPolicyConditionDef obj, XXPolicyItemCondition xPolItemCond - where xPolItemCond.policyItemId = :polItemId and obj.id = xPolItemCond.type order by obj.order</query> - </named-query> - - <named-query name="XXPolicyConditionDef.findByPolicyItemIdAndName"> - <query>select obj from XXPolicyConditionDef obj, XXPolicyItemCondition xPolItemCond - where xPolItemCond.policyItemId = :polItemId and obj.name = :name - and obj.id = xPolItemCond.type order by obj.order - </query> - </named-query> - <!-- XXContextEnricherDef --> <named-query name="XXContextEnricherDef.findByServiceDefId"> <query>select obj from XXContextEnricherDef obj where obj.defId = :serviceDefId order by obj.order</query> @@ -466,10 +443,6 @@ </named-query> <!-- XXPolicyResource --> - <named-query name="XXPolicyResource.findByResDefIdAndPolicyId"> - <query>select obj from XXPolicyResource obj where - obj.policyId = :polId and obj.resDefId = :resDefId</query> - </named-query> <named-query name="XXPolicyResource.findByPolicyId"> <query>select obj from XXPolicyResource obj @@ -488,11 +461,6 @@ <named-query name="XXPolicyResource.findByResDefId"> <query>select obj from XXPolicyResource obj where obj.resDefId = :resDefId</query> </named-query> - - <!-- XXPolicyResourceMap --> - <named-query name="XXPolicyResourceMap.findByPolicyResId"> - <query>select obj from XXPolicyResourceMap obj where obj.resourceId = :polResId order by obj.order</query> - </named-query> <named-query name="XXPolicyResourceMap.findByPolicyId"> <query>select obj from XXPolicyResourceMap obj, XXPolicyResource res @@ -511,13 +479,6 @@ </named-query> <!-- XXPolicyItemAccess --> - <named-query name="XXPolicyItemAccess.findByPolicyItemId"> - <query>select obj from XXPolicyItemAccess obj where obj.policyItemId = :polItemId order by obj.order</query> - </named-query> - - <named-query name="XXPolicyItemAccess.findByType"> - <query>select obj from XXPolicyItemAccess obj where obj.type = :type</query> - </named-query> <named-query name="XXPolicyItemAccess.findByPolicyId"> <query>select obj from XXPolicyItemAccess obj, XXPolicyItem item @@ -534,21 +495,214 @@ order by item.policyId, obj.policyItemId, obj.order </query> </named-query> - - <!-- XXPolicyItemCondition --> - <named-query name="XXPolicyItemCondition.findByPolicyItemId"> - <query>select obj from XXPolicyItemCondition obj where obj.policyItemId = :polItemId order by obj.order</query> + + <!-- XXPolicyRefAccessType --> + <named-query name="XXPolicyRefAccessType.findByPolicyId"> + <query>select obj from XXPolicyRefAccessType obj where obj.policyId = :policyId </query> + </named-query> + + <named-query name="XXPolicyRefAccessType.findByAccessTypeDefId"> + <query>select obj from XXPolicyRefAccessType obj where obj.accessDefId = :accessDefId</query> + </named-query> + + <!-- XXPolicyRefCondition --> + <named-query name="XXPolicyRefCondition.findByPolicyId"> + <query>select obj from XXPolicyRefCondition obj where obj.policyId = :policyId </query> + </named-query> + + <named-query name="XXPolicyRefCondition.findByConditionName"> + <query>select obj from XXPolicyRefCondition obj where obj.conditionName = :conditionName</query> + </named-query> + + <!-- XXPolicyRefGroup --> + <named-query name="XXPolicyRefGroup.findByPolicyId"> + <query>select obj from XXPolicyRefGroup obj where obj.policyId = :policyId </query> + </named-query> + + <named-query name="XXPolicyRefGroup.findByGroupName"> + <query>select obj from XXPolicyRefGroup obj where obj.groupName = :groupName</query> + </named-query> + +<!-- new queries --> + <named-query name="XXPolicyRefGroup.findByGroupIdAndPolicyId"> + <query>select obj from XXPolicyRefGroup obj where obj.groupId = :groupId and obj.policyId = :policyId </query> + </named-query> + + <named-query name="XXPolicyRefCondition.findByConditionDefIdAndPolicyId"> + <query>select obj from XXPolicyRefCondition obj where obj.conditionDefId = :conditionDefId and obj.policyId = :policyId </query> + </named-query> + <named-query name="XXPolicyRefCondition.findByConditionDefId"> + <query>select obj from XXPolicyRefCondition obj where obj.conditionDefId = :conditionDefId </query> + </named-query> + + <named-query name="XXUser.findUpdatedUserNames"> + <query>select distinct obj from XXUser obj, XXPolicyRefUser ref where ref.policyId = :policyId and ref.userId = obj.id + and ref.userName != obj.name</query> + </named-query> + + <named-query name="XXAccessTypeDef.findUpdatedAccessDefNames"> + <query>select distinct obj from XXAccessTypeDef obj, XXPolicyRefAccessType ref where ref.policyId = :policyId and ref.accessDefId = obj.id + and ref.accessTypeName != obj.name</query> + </named-query> + + <named-query name="XXDataMaskTypeDef.findUpdatedDataMaskDefNames"> + <query>select distinct obj from XXDataMaskTypeDef obj, XXPolicyRefDataMaskType ref where ref.policyId = :policyId and ref.dataMaskDefId = obj.id + and ref.dataMaskTypeName != obj.name</query> + </named-query> + + <named-query name="XXResourceDef.findUpdatedResourceDefNames"> + <query>select distinct obj from XXResourceDef obj, XXPolicyRefResource ref where ref.policyId = :policyId and ref.resourceDefId = obj.id + and ref.resourceName != obj.name</query> + </named-query> + + <named-query name="XXPolicyRefGroup.findUpdatedGroupNamesByPolicy"> + <query>select groupRef.policyId, groupRef.groupName, grp.name + from XXPolicyRefGroup groupRef, XXGroup grp + where groupRef.policyId = :policy + and groupRef.groupId = grp.id + and groupRef.groupName != grp.name + </query> + </named-query> + + <named-query name="XXPolicyRefGroup.findUpdatedGroupNamesByService"> + <query>select groupRef.policyId, groupRef.groupName, grp.name + from XXPolicy policy, XXPolicyRefGroup groupRef, XXGroup grp + where policy.service = :service + and groupRef.policyId = policy.id + and groupRef.groupId = grp.id + and groupRef.groupName != grp.name + </query> + </named-query> + + <named-query name="XXPolicyRefUser.findUpdatedUserNamesByPolicy"> + <query>select userRef.policyId, userRef.userName, user.name + from XXPolicyRefUser userRef, XXUser user + where userRef.policyId = :policy + and userRef.userId = user.id + and userRef.userName != user.name + </query> + </named-query> + + <named-query name="XXPolicyRefUser.findUpdatedUserNamesByService"> + <query>select userRef.policyId, userRef.userName, user.name + from XXPolicy policy, XXPolicyRefUser userRef, XXUser user + where policy.service = :service + and userRef.policyId = policy.id + and userRef.userId = user.id + and userRef.userName != user.name + </query> + </named-query> + + <named-query name="XXPolicyRefAccessType.findUpdatedAccessNamesByPolicy"> + <query>select accessRef.policyId, accessRef.accessTypeName, accessDef.name + from XXPolicyRefAccessType accessRef, XXAccessTypeDef accessDef + where accessRef.policyId = :policy + and accessRef.accessDefId = accessDef.id + and accessRef.accessTypeName != accessDef.name + </query> + </named-query> + + <named-query name="XXPolicyRefAccessType.findUpdatedAccessNamesByService"> + <query>select accessRef.policyId, accessRef.accessTypeName, accessDef.name + from XXPolicy policy, XXPolicyRefAccessType accessRef, XXAccessTypeDef accessDef + where policy.service = :service + and accessRef.policyId = policy.id + and accessRef.accessDefId = accessDef.id + and accessRef.accessTypeName != accessDef.name + </query> + </named-query> + + <named-query name="XXPolicyRefResource.findUpdatedResourceNamesByPolicy"> + <query>select resourceRef.policyId, resourceRef.resourceName, resourceDef.name + from XXPolicyRefResource resourceRef, XXResourceDef resourceDef + where resourceRef.policyId = :policy + and resourceRef.resourceDefId = resourceDef.id + and resourceRef.resourceName != resourceDef.name + </query> + </named-query> + + <named-query name="XXPolicyRefResource.findUpdatedResourceNamesByService"> + <query>select resourceRef.policyId, resourceRef.resourceName, resourceDef.name + from XXPolicy policy, XXPolicyRefResource resourceRef, XXResourceDef resourceDef + where policy.service = :service + and resourceRef.policyId = policy.id + and resourceRef.resourceDefId = resourceDef.id + and resourceRef.resourceName != resourceDef.name + </query> + </named-query> + + <named-query name="XXPolicyRefDataMaskType.findUpdatedDataMaskNamesByPolicy"> + <query>select dataMaskRef.policyId, dataMaskRef.dataMaskTypeName, dMaskDef.name + from XXPolicyRefDataMaskType dataMaskRef, XXDataMaskTypeDef dMaskDef + where dataMaskRef.policyId = :policy + and dataMaskRef.dataMaskDefId = dMaskDef.id + and dataMaskRef.dataMaskTypeName != dMaskDef.name + </query> + </named-query> + + <named-query name="XXPolicyRefDataMaskType.findUpdatedDataMaskNamesByService"> + <query>select dataMaskRef.policyId, dataMaskRef.dataMaskTypeName, dMaskDef.name + from XXPolicy policy, XXPolicyRefDataMaskType dataMaskRef, XXDataMaskTypeDef dMaskDef + where policy.service = :service + and dataMaskRef.policyId = policy.id + and dataMaskRef.dataMaskDefId = dMaskDef.id + and dataMaskRef.dataMaskTypeName != dMaskDef.name + </query> + </named-query> + + <named-query name="XXPolicyRefCondition.findUpdatedConditionNamesByPolicy"> + <query>select conditionRef.policyId, conditionRef.conditionName, condDef.name + from XXPolicyRefCondition conditionRef, XXPolicyConditionDef condDef + where conditionRef.policyId = :policy + and conditionRef.conditionDefId = condDef.id + and conditionRef.conditionName != condDef.name + </query> + </named-query> + + <named-query name="XXPolicyRefCondition.findUpdatedConditionNamesByService"> + <query>select conditionRef.policyId, conditionRef.conditionName, condDef.name + from XXPolicy policy, XXPolicyRefCondition conditionRef, XXPolicyConditionDef condDef + where policy.service = :service + and conditionRef.policyId = policy.id + and conditionRef.conditionDefId = condDef.id + and conditionRef.conditionName != condDef.name + </query> + </named-query> +<!-- end --> + + <!-- XXPolicyRefDataMaskType --> + <named-query name="XXPolicyRefDataMaskType.findByPolicyId"> + <query>select obj from XXPolicyRefDataMaskType obj where obj.policyId = :policyId </query> + </named-query> + + <named-query name="XXPolicyRefDataMaskType.findByDataMaskTypeName"> + <query>select obj from XXPolicyRefDataMaskType obj where obj.dataMaskTypeName = :dataMaskTypeName</query> + </named-query> + + <!-- XXPolicyRefResource --> + <named-query name="XXPolicyRefResource.findByPolicyId"> + <query>select obj from XXPolicyRefResource obj where obj.policyId = :policyId </query> </named-query> - <named-query name="XXPolicyItemCondition.findByPolicyItemAndDefId"> - <query>select obj from XXPolicyItemCondition obj where - obj.policyItemId = :polItemId and obj.type = :polCondDefId order by obj.order</query> + <named-query name="XXPolicyRefResource.findByResourceDefId"> + <query>select obj from XXPolicyRefResource obj where obj.resourceDefId = :resourceDefId</query> </named-query> - <named-query name="XXPolicyItemCondition.findByPolicyConditionDefId"> - <query>select obj from XXPolicyItemCondition obj where obj.type = :polCondDefId</query> + <!-- XXPolicyRefUser --> + <named-query name="XXPolicyRefUser.findByPolicyId"> + <query>select obj from XXPolicyRefUser obj where obj.policyId = :policyId </query> </named-query> + <named-query name="XXPolicyRefUser.findByUserName"> + <query>select obj from XXPolicyRefUser obj where obj.userName = :userName</query> + </named-query> + + <named-query name="XXPolicyRefUser.findByUserId"> + <query>select obj from XXPolicyRefUser obj where obj.userId = :userId</query> + </named-query> + + <!-- XXPolicyItemCondition --> + <named-query name="XXPolicyItemCondition.findByPolicyId"> <query>select obj from XXPolicyItemCondition obj, XXPolicyItem item where obj.policyItemId = item.id @@ -566,9 +720,6 @@ </named-query> <!-- XXPolicyItemGroupPerm --> - <named-query name="XXPolicyItemGroupPerm.findByPolicyItemId"> - <query>select obj from XXPolicyItemGroupPerm obj where obj.policyItemId = :polItemId order by obj.order</query> - </named-query> <named-query name="XXPolicyItemGroupPerm.findByPolicyId"> <query>select obj from XXPolicyItemGroupPerm obj, XXPolicyItem item @@ -587,9 +738,6 @@ </named-query> <!-- XXPolicyItemUserPerm --> - <named-query name="XXPolicyItemUserPerm.findByPolicyItemId"> - <query>select obj from XXPolicyItemUserPerm obj where obj.policyItemId = :polItemId order by obj.order</query> - </named-query> <named-query name="XXPolicyItemUserPerm.findByPolicyId"> <query>select obj from XXPolicyItemUserPerm obj, XXPolicyItem item @@ -608,9 +756,6 @@ </named-query> <!-- XXPolicyItemDataMaskInfo --> - <named-query name="XXPolicyItemDataMaskInfo.findByPolicyItemId"> - <query>select obj from XXPolicyItemDataMaskInfo obj where obj.policyItemId = :polItemId</query> - </named-query> <named-query name="XXPolicyItemDataMaskInfo.findByPolicyId"> <query>select obj from XXPolicyItemDataMaskInfo obj, XXPolicyItem item @@ -628,14 +773,7 @@ </query> </named-query> - <named-query name="XXPolicyItemDataMaskInfo.findByType"> - <query>select obj from XXPolicyItemDataMaskInfo obj where obj.type = :type</query> - </named-query> - <!-- XXPolicyItemRowFilterInfo --> - <named-query name="XXPolicyItemRowFilterInfo.findByPolicyItemId"> - <query>select obj from XXPolicyItemRowFilterInfo obj where obj.policyItemId = :polItemId</query> - </named-query> <named-query name="XXPolicyItemRowFilterInfo.findByPolicyId"> <query>select obj from XXPolicyItemRowFilterInfo obj, XXPolicyItem item @@ -810,20 +948,6 @@ </query> </named-query> - <named-query name="XXServiceResourceElement.findForServicePlugin"> - <query> - select obj from XXServiceResourceElement obj where obj.resourceId in - (select serviceRes.id from XXServiceResource serviceRes, XXService service where service.id = :serviceId and service.tagService is not null and serviceRes.serviceId = service.id and serviceRes.id in - (select tagResMap.resourceId from XXTagResourceMap tagResMap, XXTag tag, XXTagDef tagDef - where tagResMap.tagId = tag.id and tag.type = tagDef.id and tagDef.name in - (select policyResMap.value from XXPolicyResourceMap policyResMap, XXPolicyResource policyRes, XXPolicy policy - where policy.service = service.tagService and policy.isEnabled = TRUE and policyRes.policyId = policy.id and policyResMap.resourceId = policyRes.id) - ) - ) - order by obj.resourceId, obj.id - </query> - </named-query> - <named-query name="XXServiceResourceElement.findByServiceId"> <query>select obj from XXServiceResourceElement obj where obj.resourceId in (select serviceresource.id from XXServiceResource serviceresource where serviceresource.serviceId = :serviceId) @@ -848,20 +972,6 @@ </query> </named-query> - <named-query name="XXServiceResourceElementValue.findForServicePlugin"> - <query> - select obj from XXServiceResourceElementValue obj, XXServiceResourceElement serviceResElem where obj.resElementId = serviceResElem.id and - serviceResElem.resourceId in - (select serviceRes.id from XXServiceResource serviceRes, XXService service where service.id = :serviceId and service.tagService is not null and serviceRes.serviceId = service.id and serviceRes.id in - (select tagResMap.resourceId from XXTagResourceMap tagResMap, XXTag tag, XXTagDef tagDef - where tagResMap.tagId = tag.id and tag.type = tagDef.id and tagDef.name in - (select policyResMap.value from XXPolicyResourceMap policyResMap, XXPolicyResource policyRes, XXPolicy policy - where policy.service = service.tagService and policy.isEnabled = TRUE and policyRes.policyId = policy.id and policyResMap.resourceId = policyRes.id) - ) - ) - order by serviceResElem.resourceId, serviceResElem.id - </query> - </named-query> <named-query name="XXServiceResourceElementValue.findByServiceId"> <query>select obj from XXServiceResourceElementValue obj, XXServiceResourceElement resElem where obj.resElementId = resElem.id and resElem.resourceId in (select res.id from XXServiceResource res where res.serviceId = :serviceId) @@ -909,19 +1019,6 @@ order by obj.resourceId</query> </named-query> - <named-query name="XXTagResourceMap.findForServicePlugin"> - <query> - select obj from XXTagResourceMap obj, XXService service, XXServiceResource serviceRes where service.id = :serviceId and service.tagService is not null - and obj.resourceId = serviceRes.id and serviceRes.serviceId = :serviceId - and obj.tagId in - (select tag.id from XXTag tag, XXTagDef tagDef where tag.type = tagDef.id and tagDef.name in - (select policyResMap.value from XXPolicyResourceMap policyResMap, XXPolicyResource policyRes, XXPolicy policy - where policy.service = service.tagService and policy.isEnabled = TRUE and policyRes.policyId = policy.id and policyResMap.resourceId = policyRes.id) - ) - order by obj.resourceId - </query> - </named-query> - <named-query name="XXTagResourceMap.getTagIdsForResourceId"> <query>select obj.tagId from XXTagResourceMap obj where obj.resourceId = :resourceId order by obj.id @@ -935,22 +1032,14 @@ <named-query name="XXTagDef.findByName"> <query>select obj from XXTagDef obj where obj.name = :name</query> </named-query> - - <named-query name="XXTagDef.findByServiceId"> - <query>select obj from XXTagDef obj where obj.id in - (select tag.type from XXTag tag, XXTagResourceMap tagRes, XXServiceResource resource where tag.id = tagRes.tagId and tagRes.resourceId = resource.id and resource.serviceId = :serviceId) - order by obj.id - </query> - </named-query> - <named-query name="XXTagDef.findForServicePlugin"> - <query>select obj from XXTagDef obj, XXService service where service.id = :serviceId and service.tagService is not null and - obj.name in - (select policyResMap.value from XXPolicyResourceMap policyResMap, XXPolicyResource policyRes, XXPolicy policy - where policy.service = service.tagService and policyRes.policyId = policy.id and policy.isEnabled = TRUE and policyResMap.resourceId = policyRes.id) + <named-query name="XXTagDef.findByServiceId"> + <query>select obj.id, obj.guid, obj.version, obj.isEnabled, obj.name, obj.source, obj.tagAttrDefs from XXTagDef obj where obj.id in + (select tag.type from XXTag tag, XXTagResourceMap tagRes, XXServiceResource resource where tag.id = tagRes.tagId and tagRes.resourceId = resource.id and resource.serviceId = :serviceId) order by obj.id </query> </named-query> + <named-query name="XXTagDef.findByResourceId"> <query>select obj from XXTagDef obj where obj.id in (select tag.type from XXTag tag, XXTagResourceMap tagRes where tag.id = tagRes.tagId and tagRes.resourceId = :resourceId) @@ -972,16 +1061,6 @@ order by obj.tagDefId </query> </named-query> - <named-query name="XXTagAttributeDef.findForServicePlugin"> - <query>select obj from XXTagAttributeDef obj where obj.tagDefId in - (select tagDef.id from XXTagDef tagDef, XXService service where service.id = :serviceId and service.tagService is not null and - tagDef.name in - (select policyResMap.value from XXPolicyResourceMap policyResMap, XXPolicyResource policyRes, XXPolicy policy - where policy.service = service.tagService and policy.isEnabled = TRUE and policyRes.policyId = policy.id and policyResMap.resourceId = policyRes.id) - ) - order by obj.tagDefId - </query> - </named-query> <named-query name="XXTagAttributeDef.findByResourceId"> <query>select obj from XXTagAttributeDef obj where obj.tagDefId in (select tag.type from XXTag tag, XXTagResourceMap tagRes where tag.id = tagRes.tagId and tagRes.resourceId = :resourceId) @@ -1017,16 +1096,6 @@ </query> </named-query> - <named-query name="XXTag.findForServicePlugin"> - <query> - select obj from XXTag obj, XXTagDef tagDef, XXService service where service.id = :serviceId and service.tagService is not null and - obj.type = tagDef.id and tagDef.name in - (select policyResMap.value from XXPolicyResourceMap policyResMap, XXPolicyResource policyRes, XXPolicy policy - where policy.service = service.tagService and policy.isEnabled = TRUE and policyRes.policyId = policy.id and policyResMap.resourceId = policyRes.id) - order by obj.id - </query> - </named-query> - <named-query name="XXTag.findByServiceIdAndOwner"> <query>select obj from XXTag obj where obj.owner = :owner and obj.id in (select tagRes.tagId from XXTagResourceMap tagRes, XXServiceResource resource where tagRes.resourceId = resource.id and resource.serviceId = :serviceId) @@ -1061,18 +1130,6 @@ </query> </named-query> - <named-query name="XXTagAttribute.findForServicePlugin"> - <query> - select obj from XXTagAttribute obj where obj.tagId in - (select tag.id from XXTag tag, XXTagDef tagDef, XXService service where service.id = :serviceId and service.tagService is not null and - tag.type = tagDef.id and tagDef.name in - (select policyResMap.value from XXPolicyResourceMap policyResMap, XXPolicyResource policyRes, XXPolicy policy - where policy.service = service.tagService and policy.isEnabled = TRUE and policyRes.policyId = policy.id and policyResMap.resourceId = policyRes.id) - ) - order by obj.tagId - </query> - </named-query> - <named-query name="XXServiceResource.findByGuid"> <query>select obj from XXServiceResource obj where obj.guid = :guid</query> </named-query> @@ -1084,9 +1141,9 @@ </named-query> <named-query name="XXServiceResource.findTaggedResourcesInServiceId"> - <query>select obj from XXServiceResource obj where obj.serviceId = :serviceId and obj.id in - (select tagResMap.resourceId from XXTagResourceMap tagResMap) - order by obj.id + <query>select obj.id, obj.guid, obj.version, obj.isEnabled, obj.resourceSignature, obj.serviceId, obj.serviceResourceElements, obj.tags from XXServiceResource obj where obj.serviceId = :serviceId and obj.id in + (select tagResMap.resourceId from XXTagResourceMap tagResMap) + order by obj.id </query> </named-query> @@ -1096,18 +1153,6 @@ </query> </named-query> - <named-query name="XXServiceResource.findForServicePlugin"> - <query> - select obj from XXServiceResource obj, XXService service where service.id = :serviceId and service.tagService is not null and obj.serviceId = service.id and obj.id in - (select tagResMap.resourceId from XXTagResourceMap tagResMap, XXTag tag, XXTagDef tagDef - where tagResMap.tagId = tag.id and tag.type = tagDef.id and tagDef.name in - (select policyResMap.value from XXPolicyResourceMap policyResMap, XXPolicyResource policyRes, XXPolicy policy - where policy.service = service.tagService and policy.isEnabled = TRUE and policyRes.policyId = policy.id and policyResMap.resourceId = policyRes.id) - ) - order by obj.id - </query> - </named-query> - <named-query name="XXServiceResource.findByServiceAndResourceSignature"> <query>select obj from XXServiceResource obj where obj.serviceId = :serviceId and obj.resourceSignature = :resourceSignature</query> </named-query> @@ -1137,12 +1182,12 @@ </query> </named-query> <named-query name="XXPolicy.findByUserId"> - <query>select obj from XXPolicy obj, XXPolicyItem polItem,XXPolicyItemUserPerm polItemUserPerm where - obj.id = polItem.policyId and polItem.id = polItemUserPerm.policyItemId and polItemUserPerm.userId = :userId</query> + <query>select obj from XXPolicy obj, XXPolicyRefUser ref where + obj.id = ref.policyId and ref.userId = :userId</query> </named-query> <named-query name="XXPolicy.findByGroupId"> - <query>select obj from XXPolicy obj, XXPolicyItem polItem,XXPolicyItemGroupPerm polItemGroupPerm where - obj.id = polItem.policyId and polItem.id = polItemGroupPerm.policyItemId and polItemGroupPerm.groupId = :groupId</query> + <query>select obj from XXPolicy obj, XXPolicyRefGroup ref where + obj.id = ref.policyId and ref.groupId = :groupId</query> </named-query> <named-query name="XXAccessAudit.getMaxIdOfXXAccessAudit"> <query>select max(obj.id) from XXAccessAudit obj</query> http://git-wip-us.apache.org/repos/asf/ranger/blob/c84b98fb/security-admin/src/test/java/org/apache/ranger/biz/TestServiceDBStore.java ---------------------------------------------------------------------- diff --git a/security-admin/src/test/java/org/apache/ranger/biz/TestServiceDBStore.java b/security-admin/src/test/java/org/apache/ranger/biz/TestServiceDBStore.java index 44523fb..ecb7571 100644 --- a/security-admin/src/test/java/org/apache/ranger/biz/TestServiceDBStore.java +++ b/security-admin/src/test/java/org/apache/ranger/biz/TestServiceDBStore.java @@ -28,6 +28,7 @@ import org.apache.ranger.common.ContextUtil; import org.apache.ranger.common.RangerFactory; import org.apache.ranger.common.StringUtil; import org.apache.ranger.common.UserSessionBase; +import org.apache.ranger.common.db.RangerTransactionSynchronizationAdapter; import org.apache.ranger.db.*; import org.apache.ranger.entity.*; import org.apache.ranger.plugin.model.RangerPolicy; @@ -45,7 +46,7 @@ import org.apache.ranger.plugin.model.RangerServiceDef.RangerEnumElementDef; import org.apache.ranger.plugin.model.RangerServiceDef.RangerPolicyConditionDef; import org.apache.ranger.plugin.model.RangerServiceDef.RangerResourceDef; import org.apache.ranger.plugin.model.RangerServiceDef.RangerServiceConfigDef; -//import org.apache.ranger.plugin.store.EmbeddedServiceDefsUtil; +import org.apache.ranger.plugin.store.EmbeddedServiceDefsUtil; import org.apache.ranger.plugin.store.PList; import org.apache.ranger.plugin.store.ServicePredicateUtil; import org.apache.ranger.plugin.util.SearchFilter; @@ -126,6 +127,15 @@ public class TestServiceDBStore { @Mock ServicePredicateUtil predicateUtil; + @Mock + PolicyRefUpdater policyRefUpdater; + + @Mock + AssetMgr assetMgr; + + @Mock + RangerTransactionSynchronizationAdapter transactionSynchronizationAdapter; + @Rule public ExpectedException thrown = ExpectedException.none(); @@ -137,6 +147,22 @@ public class TestServiceDBStore { .getCurrentUserSession(); currentUserSession.setUserAdmin(true); } + + private XXAccessTypeDef rangerKmsAccessTypes(String accessTypeName, int itemId) { + XXAccessTypeDef accessTypeDefObj = new XXAccessTypeDef(); + accessTypeDefObj.setAddedByUserId(Id); + accessTypeDefObj.setCreateTime(new Date()); + accessTypeDefObj.setDefid(Long.valueOf(itemId)); + accessTypeDefObj.setId(Long.valueOf(itemId)); + accessTypeDefObj.setItemId(Long.valueOf(itemId)); + accessTypeDefObj.setLabel(accessTypeName); + accessTypeDefObj.setName(accessTypeName); + accessTypeDefObj.setOrder(null); + accessTypeDefObj.setRbkeylabel(null); + accessTypeDefObj.setUpdatedByUserId(Id); + accessTypeDefObj.setUpdateTime(new Date()); + return accessTypeDefObj; + } private RangerServiceDef rangerServiceDef() { List<RangerServiceConfigDef> configs = new ArrayList<RangerServiceConfigDef>(); @@ -206,6 +232,28 @@ public class TestServiceDBStore { return rangerService; } + + private RangerService rangerKMSService() { + Map<String, String> configs = new HashMap<String, String>(); + configs.put("username", "servicemgr"); + configs.put("password", "servicemgr"); + configs.put("provider", "kmsurl"); + + RangerService rangerService = new RangerService(); + rangerService.setId(Id); + rangerService.setConfigs(configs); + rangerService.setCreateTime(new Date()); + rangerService.setDescription("service kms policy"); + rangerService.setGuid("1427365526516_835_1"); + rangerService.setIsEnabled(true); + rangerService.setName("KMS_1"); + rangerService.setPolicyUpdateTime(new Date()); + rangerService.setType("7"); + rangerService.setUpdatedBy("Admin"); + rangerService.setUpdateTime(new Date()); + + return rangerService; + } private RangerPolicy rangerPolicy() { List<RangerPolicyItemAccess> accesses = new ArrayList<RangerPolicyItemAccess>(); @@ -603,6 +651,7 @@ public class TestServiceDBStore { @Test public void test13deleteServiceDef() throws Exception { + setup(); XXServiceDao xServiceDao = Mockito.mock(XXServiceDao.class); XXDataMaskTypeDefDao xDataMaskDefDao = Mockito.mock(XXDataMaskTypeDefDao.class); XXAccessTypeDefDao xAccessTypeDefDao = Mockito @@ -611,6 +660,12 @@ public class TestServiceDBStore { .mock(XXAccessTypeDefGrantsDao.class); XXPolicyItemAccessDao xPolicyItemAccessDao = Mockito .mock(XXPolicyItemAccessDao.class); + XXPolicyRefAccessTypeDao xPolicyRefAccessTypeDao = Mockito + .mock(XXPolicyRefAccessTypeDao.class); + XXPolicyRefConditionDao xPolicyRefConditionDao = Mockito + .mock(XXPolicyRefConditionDao.class); + XXPolicyRefResourceDao xPolicyRefResourceDao = Mockito + .mock(XXPolicyRefResourceDao.class); XXContextEnricherDefDao xContextEnricherDefDao = Mockito .mock(XXContextEnricherDefDao.class); XXEnumDefDao xEnumDefDao = Mockito.mock(XXEnumDefDao.class); @@ -866,6 +921,40 @@ public class TestServiceDBStore { policyItemUserPermObj.setUserId(Id); policyItemUserPermList.add(policyItemUserPermObj); + List<XXPolicyRefAccessType> policyRefAccessTypeList = new ArrayList<XXPolicyRefAccessType>(); + XXPolicyRefAccessType policyRefAccessType = new XXPolicyRefAccessType(); + policyRefAccessType.setId(Id); + policyRefAccessType.setAccessTypeName("myAccessType"); + policyRefAccessType.setPolicyId(Id); + policyRefAccessType.setCreateTime(new Date()); + policyRefAccessType.setUpdateTime(new Date()); + policyRefAccessType.setAddedByUserId(Id); + policyRefAccessType.setUpdatedByUserId(Id); + policyRefAccessTypeList.add(policyRefAccessType); + + List<XXPolicyRefCondition> policyRefConditionsList = new ArrayList<XXPolicyRefCondition>(); + XXPolicyRefCondition policyRefCondition = new XXPolicyRefCondition(); + policyRefCondition.setId(Id); + policyRefCondition.setAddedByUserId(Id); + policyRefCondition.setConditionDefId(Id); + policyRefCondition.setConditionName("myConditionName"); + policyRefCondition.setPolicyId(Id); + policyRefCondition.setUpdatedByUserId(Id); + policyRefCondition.setCreateTime(new Date()); + policyRefCondition.setUpdateTime(new Date()); + policyRefConditionsList.add(policyRefCondition); + + List<XXPolicyRefResource> policyRefResourcesList = new ArrayList<XXPolicyRefResource>(); + XXPolicyRefResource policyRefResource = new XXPolicyRefResource(); + policyRefResource.setAddedByUserId(Id); + policyRefResource.setCreateTime(new Date()); + policyRefResource.setId(Id); + policyRefResource.setPolicyId(Id); + policyRefResource.setResourceDefId(Id); + policyRefResource.setUpdateTime(new Date()); + policyRefResource.setResourceName("myresourceName"); + policyRefResourcesList.add(policyRefResource); + XXUser xUser = new XXUser(); xUser.setAddedByUserId(Id); xUser.setCreateTime(new Date()); @@ -878,6 +967,18 @@ public class TestServiceDBStore { xUser.setUpdatedByUserId(Id); xUser.setUpdateTime(new Date()); + Mockito.when(daoManager.getXXPolicyRefAccessType()).thenReturn(xPolicyRefAccessTypeDao); + Mockito.when(xPolicyRefAccessTypeDao.findByAccessTypeDefId(Id)).thenReturn(policyRefAccessTypeList); + Mockito.when(xPolicyRefAccessTypeDao.remove(policyRefAccessType)).thenReturn(true); + + Mockito.when(daoManager.getXXPolicyRefCondition()).thenReturn(xPolicyRefConditionDao); + Mockito.when(xPolicyRefConditionDao.findByConditionDefId(Id)).thenReturn(policyRefConditionsList); + Mockito.when(xPolicyRefConditionDao.remove(policyRefCondition)).thenReturn(true); + + Mockito.when(daoManager.getXXPolicyRefResource()).thenReturn(xPolicyRefResourceDao); + Mockito.when(xPolicyRefResourceDao.findByResourceDefID(Id)).thenReturn(policyRefResourcesList); + Mockito.when(xPolicyRefResourceDao.remove(policyRefResource)).thenReturn(true); + Mockito.when(serviceDefService.read(Id)).thenReturn(rangerServiceDef); Mockito.when(daoManager.getXXService()).thenReturn(xServiceDao); Mockito.when(xServiceDao.findByServiceDefId(serviceDefId)).thenReturn(null); @@ -896,8 +997,8 @@ public class TestServiceDBStore { Mockito.when(daoManager.getXXPolicyItemAccess()).thenReturn( xPolicyItemAccessDao); - Mockito.when(xPolicyItemAccessDao.findByType(accessTypeDefObj.getId())) - .thenReturn(policyItemAccessList); + /*Mockito.when(xPolicyItemAccessDao.findByType(accessTypeDefObj.getId())) + .thenReturn(policyItemAccessList);*/ Mockito.when(daoManager.getXXContextEnricherDef()).thenReturn( xContextEnricherDefDao); @@ -920,10 +1021,10 @@ public class TestServiceDBStore { Mockito.when(daoManager.getXXPolicyItemCondition()).thenReturn( xPolicyItemConditionDao); - Mockito.when( + /*Mockito.when( xPolicyItemConditionDao .findByPolicyConditionDefId(policyConditionDefObj - .getId())).thenReturn(policyItemConditionList); + .getId())).thenReturn(policyItemConditionList);*/ Mockito.when(daoManager.getXXResourceDef()).thenReturn(xResourceDefDao); Mockito.when(xResourceDefDao.findByServiceDefId(serviceDefId)) @@ -931,14 +1032,14 @@ public class TestServiceDBStore { Mockito.when(daoManager.getXXPolicyResource()).thenReturn( xPolicyResourceDao); - Mockito.when(xPolicyResourceDao.findByResDefId(resourceDef.getId())) - .thenReturn(policyResourceList); + /*Mockito.when(xPolicyResourceDao.findByResDefId(resourceDef.getId())) + .thenReturn(policyResourceList);*/ Mockito.when(daoManager.getXXPolicyResourceMap()).thenReturn( xPolicyResourceMapDao); - Mockito.when( + /*Mockito.when( xPolicyResourceMapDao.findByPolicyResId(policyResource.getId())) - .thenReturn(policyResourceMapList); + .thenReturn(policyResourceMapList);*/ Mockito.when(daoManager.getXXServiceConfigDef()).thenReturn( xServiceConfigDefDao); @@ -965,15 +1066,15 @@ public class TestServiceDBStore { Mockito.when(daoManager.getXXPolicyItemGroupPerm()).thenReturn( xPolicyItemGroupPermDao); - Mockito.when( + /*Mockito.when( xPolicyItemGroupPermDao.findByPolicyItemId(policyItem.getId())) - .thenReturn(policyItemGroupPermlist); + .thenReturn(policyItemGroupPermlist);*/ Mockito.when(daoManager.getXXPolicyItemUserPerm()).thenReturn( policyItemUserPermDao); - Mockito.when( + /*Mockito.when( policyItemUserPermDao.findByPolicyItemId(policyItem.getId())) - .thenReturn(policyItemUserPermList); + .thenReturn(policyItemUserPermList);*/ svcServiceWithAssignedId.setPopulateExistingBaseFields(true); @@ -1179,8 +1280,8 @@ public class TestServiceDBStore { Mockito.when(xUserMgr.createServiceConfigUser(userName)).thenReturn(vXUser); XXServiceConfigMap xConfMap = new XXServiceConfigMap(); - Mockito.when(rangerAuditFields.populateAuditFields(xConfMap, xService)) - .thenReturn(xService); + //Mockito.when(rangerAuditFields.populateAuditFields(xConfMap, xService)) + // .thenReturn(xService); Mockito.when(svcService.getPopulatedViewObject(xService)).thenReturn( rangerService); @@ -1196,10 +1297,10 @@ public class TestServiceDBStore { ServiceDBStore spy = Mockito.spy(serviceDBStore); - Mockito.doNothing().when(spy).createDefaultPolicies(rangerService); + Mockito.doNothing().when(spy).createDefaultPolicies(xService, vXUser); spy.createService(rangerService); - + Mockito.verify(daoManager, Mockito.atLeast(1)).getXXService(); Mockito.verify(daoManager).getXXServiceConfigMap(); } @@ -1208,8 +1309,8 @@ public class TestServiceDBStore { public void test20updateService() throws Exception { XXServiceDao xServiceDao = Mockito.mock(XXServiceDao.class); XXService xService = Mockito.mock(XXService.class); - XXServiceVersionInfoDao xServiceVersionInfoDao = Mockito.mock(XXServiceVersionInfoDao.class); - XXServiceVersionInfo xServiceVersionInfo = Mockito.mock(XXServiceVersionInfo.class); + //XXServiceVersionInfoDao xServiceVersionInfoDao = Mockito.mock(XXServiceVersionInfoDao.class); + //XXServiceVersionInfo xServiceVersionInfo = Mockito.mock(XXServiceVersionInfo.class); XXServiceConfigMapDao xServiceConfigMapDao = Mockito .mock(XXServiceConfigMapDao.class); XXServiceConfigDefDao xServiceConfigDefDao = Mockito @@ -1297,9 +1398,9 @@ public class TestServiceDBStore { Mockito.when(svcService.getPopulatedViewObject(xService)).thenReturn( rangerService); - Mockito.when(daoManager.getXXServiceVersionInfo()).thenReturn(xServiceVersionInfoDao); - Mockito.when(xServiceVersionInfoDao.findByServiceId(Id)).thenReturn(xServiceVersionInfo); - Mockito.when(xServiceVersionInfoDao.update(xServiceVersionInfo)).thenReturn(xServiceVersionInfo); + //Mockito.when(daoManager.getXXServiceVersionInfo()).thenReturn(xServiceVersionInfoDao); + //Mockito.when(xServiceVersionInfoDao.findByServiceId(Id)).thenReturn(xServiceVersionInfo); + //Mockito.when(xServiceVersionInfoDao.update(xServiceVersionInfo)).thenReturn(xServiceVersionInfo); RangerService dbRangerService = serviceDBStore .updateService(rangerService, options); @@ -1319,11 +1420,12 @@ public class TestServiceDBStore { @Test public void test21deleteService() throws Exception { + setup(); XXPolicyDao xPolicyDao = Mockito.mock(XXPolicyDao.class); XXServiceDao xServiceDao = Mockito.mock(XXServiceDao.class); XXService xService = Mockito.mock(XXService.class); - XXServiceVersionInfoDao xServiceVersionInfoDao = Mockito.mock(XXServiceVersionInfoDao.class); - XXServiceVersionInfo xServiceVersionInfo = Mockito.mock(XXServiceVersionInfo.class); + //XXServiceVersionInfoDao xServiceVersionInfoDao = Mockito.mock(XXServiceVersionInfoDao.class); + //XXServiceVersionInfo xServiceVersionInfo = Mockito.mock(XXServiceVersionInfo.class); XXPolicyItemDao xPolicyItemDao = Mockito.mock(XXPolicyItemDao.class); XXPolicyItemDataMaskInfoDao xxPolicyItemDataMaskInfoDao = Mockito.mock(XXPolicyItemDataMaskInfoDao.class); XXPolicyItemRowFilterInfoDao xxPolicyItemRowFilterInfoDao = Mockito.mock(XXPolicyItemRowFilterInfoDao.class); @@ -1494,9 +1596,9 @@ public class TestServiceDBStore { Mockito.when(svcService.getPopulatedViewObject(xService)).thenReturn( rangerService); - Mockito.when(daoManager.getXXServiceVersionInfo()).thenReturn(xServiceVersionInfoDao); - Mockito.when(xServiceVersionInfoDao.findByServiceId(Id)).thenReturn(xServiceVersionInfo); - Mockito.when(xServiceVersionInfoDao.update(xServiceVersionInfo)).thenReturn(xServiceVersionInfo); + //Mockito.when(daoManager.getXXServiceVersionInfo()).thenReturn(xServiceVersionInfoDao); + //Mockito.when(xServiceVersionInfoDao.findByServiceId(Id)).thenReturn(xServiceVersionInfo); + //Mockito.when(xServiceVersionInfoDao.update(xServiceVersionInfo)).thenReturn(xServiceVersionInfo); Mockito.when(daoManager.getXXPolicyItem()).thenReturn(xPolicyItemDao); Mockito.when(xPolicyItemDao.findByPolicyId(policyItem.getId())) @@ -1571,6 +1673,7 @@ public class TestServiceDBStore { Mockito.when(xUserDao.findByUserName(name)).thenReturn(xUser); Mockito.when(!bizUtil.hasAccess(xService, null)).thenReturn(true); serviceDBStore.deleteService(Id); + Mockito.verify(svcService).delete(rangerService); } @Test @@ -1696,15 +1799,14 @@ public class TestServiceDBStore { } @Test - public void tess26createPolicy() throws Exception { + public void test26createPolicy() throws Exception { setup(); XXServiceDefDao xServiceDefDao = Mockito.mock(XXServiceDefDao.class); XXPolicy xPolicy = Mockito.mock(XXPolicy.class); XXPolicyDao xPolicyDao = Mockito.mock(XXPolicyDao.class); XXServiceDao xServiceDao = Mockito.mock(XXServiceDao.class); - XXServiceVersionInfoDao xServiceVersionInfoDao = Mockito.mock(XXServiceVersionInfoDao.class); + //XXServiceVersionInfoDao xServiceVersionInfoDao = Mockito.mock(XXServiceVersionInfoDao.class); XXService xService = Mockito.mock(XXService.class); - XXServiceVersionInfo xServiceVersionInfo = Mockito.mock(XXServiceVersionInfo.class); XXPolicyItemDao xPolicyItemDao = Mockito.mock(XXPolicyItemDao.class); XXServiceConfigDefDao xServiceConfigDefDao = Mockito .mock(XXServiceConfigDefDao.class); @@ -1865,9 +1967,6 @@ public class TestServiceDBStore { Mockito.when(daoManager.getXXService()).thenReturn(xServiceDao); Mockito.when(xServiceDao.findByName(name)).thenReturn(xService); - Mockito.when(daoManager.getXXServiceVersionInfo()).thenReturn(xServiceVersionInfoDao); - Mockito.when(xServiceVersionInfoDao.findByServiceId(Id)).thenReturn(xServiceVersionInfo); - Mockito.when(xServiceVersionInfoDao.update(xServiceVersionInfo)).thenReturn(xServiceVersionInfo); Mockito.when(svcService.getPopulatedViewObject(xService)).thenReturn( rangerService); @@ -1885,7 +1984,8 @@ public class TestServiceDBStore { rangerPolicy); Mockito.when(daoManager.getXXPolicy()).thenReturn(xPolicyDao); - Mockito.when(xPolicyDao.getById(Id)).thenReturn(xPolicy); + Mockito.when(xPolicyDao.getById(Id)).thenReturn(xPolicy);Mockito.doNothing().when(policyRefUpdater).createNewPolMappingForRefTable(rangerPolicy, xPolicy, xServiceDef); + Mockito.when(policyService.getPopulatedViewObject(xPolicy)).thenReturn(rangerPolicy); Mockito.when( rangerAuditFields.populateAuditFields( @@ -1968,14 +2068,13 @@ public class TestServiceDBStore { .thenReturn(policyConditionDefObj); Mockito.when(!bizUtil.hasAccess(xService, null)).thenReturn(true); + //RangerTransactionSynchronizationAdapter spy = Mockito.spy(transactionSynchronizationAdapter); + //Mockito.doNothing().when(spy).executeOnTransactionCommit(Mockito.any(Runnable.class)); + RangerPolicy dbRangerPolicy = serviceDBStore.createPolicy(rangerPolicy); - Assert.assertNull(dbRangerPolicy); - Assert.assertEquals(Id, rangerPolicy.getId()); - Mockito.verify(daoManager).getXXServiceDef(); - Mockito.verify(policyService).create(rangerPolicy); - Mockito.verify(rangerAuditFields).populateAuditFields( - Mockito.isA(XXPolicyItem.class), Mockito.isA(XXPolicy.class)); - Mockito.verify(daoManager).getXXPolicyItem(); + + Assert.assertNotNull(dbRangerPolicy); + Assert.assertEquals(Id, dbRangerPolicy.getId()); } @Test @@ -2017,10 +2116,8 @@ public class TestServiceDBStore { XXPolicy xPolicy = Mockito.mock(XXPolicy.class); XXServiceDao xServiceDao = Mockito.mock(XXServiceDao.class); XXService xService = Mockito.mock(XXService.class); - XXServiceVersionInfoDao xServiceVersionInfoDao = Mockito.mock(XXServiceVersionInfoDao.class); XXServiceDefDao xServiceDefDao = Mockito.mock(XXServiceDefDao.class); XXServiceDef xServiceDef = Mockito.mock(XXServiceDef.class); - XXServiceVersionInfo xServiceVersionInfo = Mockito.mock(XXServiceVersionInfo.class); XXPolicyResourceDao xPolicyResourceDao = Mockito .mock(XXPolicyResourceDao.class); XXPolicyResourceMapDao xPolicyResourceMapDao = Mockito @@ -2029,10 +2126,8 @@ public class TestServiceDBStore { XXPolicyItem xPolicyItem = Mockito.mock(XXPolicyItem.class); XXServiceConfigDefDao xServiceConfigDefDao = Mockito .mock(XXServiceConfigDefDao.class); - XXServiceConfigMapDao xServiceConfigMapDao = Mockito - .mock(XXServiceConfigMapDao.class); - XXUserDao xUserDao = Mockito.mock(XXUserDao.class); - XXUser xUser = Mockito.mock(XXUser.class); + XXServiceVersionInfoDao serviceVersionInfoDao = Mockito.mock(XXServiceVersionInfoDao.class); + XXServiceVersionInfo serviceVersionInfoDbObj = Mockito.mock(XXServiceVersionInfo.class); RangerService rangerService = rangerService(); @@ -2091,10 +2186,6 @@ public class TestServiceDBStore { Mockito.when(svcService.getPopulatedViewObject(xService)).thenReturn( rangerService); - Mockito.when(daoManager.getXXServiceVersionInfo()).thenReturn(xServiceVersionInfoDao); - Mockito.when(xServiceVersionInfoDao.findByServiceId(Id)).thenReturn(xServiceVersionInfo); - Mockito.when(xServiceVersionInfoDao.update(xServiceVersionInfo)).thenReturn(xServiceVersionInfo); - Mockito.when(daoManager.getXXServiceDef()).thenReturn(xServiceDefDao); Mockito.when(xServiceDefDao.findByName(rangerService.getType())) .thenReturn(xServiceDef); @@ -2112,9 +2203,9 @@ public class TestServiceDBStore { Mockito.when(daoManager.getXXPolicyResourceMap()).thenReturn( xPolicyResourceMapDao); - Mockito.when( + /*Mockito.when( xPolicyResourceMapDao.findByPolicyResId(policyResourceMap - .getId())).thenReturn(policyResourceMapList); + .getId())).thenReturn(policyResourceMapList);*/ Mockito.when(daoManager.getXXPolicyItem()).thenReturn(xPolicyItemDao); @@ -2137,19 +2228,8 @@ public class TestServiceDBStore { Mockito.when(daoManager.getXXService()).thenReturn(xServiceDao); Mockito.when(xServiceDao.getById(rangerService.getId())).thenReturn( xService); - - Mockito.when(daoManager.getXXServiceConfigMap()).thenReturn( - xServiceConfigMapDao); - Mockito.when( - xServiceConfigMapDao.findByServiceId(rangerService.getId())) - .thenReturn(xConfMapList); - - Mockito.when( - rangerAuditFields.populateAuditFields( - Mockito.isA(XXServiceConfigMap.class), - Mockito.isA(XXService.class))).thenReturn(xConfMap); - Mockito.when(daoManager.getXXUser()).thenReturn(xUserDao); - Mockito.when(xUserDao.findByUserName(name)).thenReturn(xUser); + Mockito.when(daoManager.getXXServiceVersionInfo()).thenReturn(serviceVersionInfoDao); + Mockito.when(serviceVersionInfoDao.findByServiceId(rangerService.getId())).thenReturn(serviceVersionInfoDbObj); RangerPolicyResourceSignature signature = Mockito .mock(RangerPolicyResourceSignature.class); @@ -2173,9 +2253,6 @@ public class TestServiceDBStore { rangerPolicy.getIsEnabled()); Assert.assertEquals(dbRangerPolicy.getVersion(), rangerPolicy.getVersion()); - - Mockito.verify(rangerAuditFields).populateAuditFields( - Mockito.isA(XXPolicyItem.class), Mockito.isA(XXPolicy.class)); } @Test @@ -2183,9 +2260,6 @@ public class TestServiceDBStore { setup(); XXServiceDao xServiceDao = Mockito.mock(XXServiceDao.class); XXService xService = Mockito.mock(XXService.class); - XXServiceVersionInfoDao xServiceVersionInfoDao = Mockito.mock(XXServiceVersionInfoDao.class); - XXServiceVersionInfo xServiceVersionInfo = Mockito.mock(XXServiceVersionInfo.class); - XXPolicyItemDao xPolicyItemDao = Mockito.mock(XXPolicyItemDao.class); XXPolicyItemDataMaskInfoDao xPolicyItemDataMaskInfoDao = Mockito.mock(XXPolicyItemDataMaskInfoDao.class); XXPolicyItemRowFilterInfoDao xPolicyItemRowFilterInfoDao = Mockito.mock(XXPolicyItemRowFilterInfoDao.class); @@ -2337,26 +2411,26 @@ public class TestServiceDBStore { Mockito.when(daoManager.getXXPolicyItemCondition()).thenReturn( xPolicyItemConditionDao); - Mockito.when( + /*Mockito.when( xPolicyItemConditionDao.findByPolicyItemId(policyItemCondition - .getId())).thenReturn(policyItemConditionList); + .getId())).thenReturn(policyItemConditionList);*/ Mockito.when(daoManager.getXXPolicyItemGroupPerm()).thenReturn( xPolicyItemGroupPermDao); - Mockito.when( + /*Mockito.when( xPolicyItemGroupPermDao.findByPolicyItemId(policyItem.getId())) - .thenReturn(policyItemGroupPermList); + .thenReturn(policyItemGroupPermList);*/ Mockito.when(daoManager.getXXPolicyItemUserPerm()).thenReturn( xPolicyItemUserPermDao); - Mockito.when(xPolicyItemUserPermDao.findByPolicyItemId(Id)).thenReturn( - policyItemUserPermList); + /*Mockito.when(xPolicyItemUserPermDao.findByPolicyItemId(Id)).thenReturn( + policyItemUserPermList);*/ Mockito.when(daoManager.getXXPolicyItemAccess()).thenReturn( xPolicyItemAccessDao); - Mockito.when( + /*Mockito.when( xPolicyItemAccessDao.findByPolicyItemId(policyItemAccess - .getId())).thenReturn(policyItemAccessList); + .getId())).thenReturn(policyItemAccessList);*/ Mockito.when(daoManager.getXXPolicyResource()).thenReturn( xPolicyResourceDao); @@ -2365,16 +2439,16 @@ public class TestServiceDBStore { Mockito.when(daoManager.getXXPolicyResourceMap()).thenReturn( xPolicyResourceMapDao); - Mockito.when( + /*Mockito.when( xPolicyResourceMapDao.findByPolicyResId(policyResourceMap - .getId())).thenReturn(policyResourceMapList); + .getId())).thenReturn(policyResourceMapList);*/ Mockito.when(daoManager.getXXService()).thenReturn(xServiceDao); Mockito.when(xServiceDao.getById(Id)).thenReturn(xService); - Mockito.when(daoManager.getXXServiceVersionInfo()).thenReturn(xServiceVersionInfoDao); - Mockito.when(xServiceVersionInfoDao.findByServiceId(Id)).thenReturn(xServiceVersionInfo); - Mockito.when(xServiceVersionInfoDao.update(xServiceVersionInfo)).thenReturn(xServiceVersionInfo); + //Mockito.when(daoManager.getXXServiceVersionInfo()).thenReturn(xServiceVersionInfoDao); + //Mockito.when(xServiceVersionInfoDao.findByServiceId(Id)).thenReturn(xServiceVersionInfo); + //Mockito.when(xServiceVersionInfoDao.update(xServiceVersionInfo)).thenReturn(xServiceVersionInfo); Mockito.when(daoManager.getXXServiceConfigDef()).thenReturn( xServiceConfigDefDao); @@ -2637,4 +2711,131 @@ public class TestServiceDBStore { Assert.assertNotNull(policyList); Mockito.verify(daoManager).getXXPolicy(); } + + @Test + public void test41createKMSService() throws Exception { + XXServiceDefDao xServiceDefDao = Mockito.mock(XXServiceDefDao.class); + XXPolicy xPolicy = Mockito.mock(XXPolicy.class); + XXPolicyDao xPolicyDao = Mockito.mock(XXPolicyDao.class); + XXAccessTypeDefDao xAccessTypeDefDao = Mockito + .mock(XXAccessTypeDefDao.class); + XXServiceDao xServiceDao = Mockito.mock(XXServiceDao.class); + XXServiceConfigMapDao xServiceConfigMapDao = Mockito + .mock(XXServiceConfigMapDao.class); + XXUserDao xUserDao = Mockito.mock(XXUserDao.class); + XXServiceConfigDefDao xServiceConfigDefDao = Mockito + .mock(XXServiceConfigDefDao.class); + XXService xService = Mockito.mock(XXService.class); + XXUser xUser = Mockito.mock(XXUser.class); + XXServiceDef xServiceDef = Mockito.mock(XXServiceDef.class); + Mockito.when(daoManager.getXXServiceDef()).thenReturn(xServiceDefDao); + Mockito.when(xServiceDefDao.findByName("KMS_1")).thenReturn( + xServiceDef); + Mockito.when(xService.getName()).thenReturn( + "KMS_1"); + Mockito.when(xServiceDao.findByName("KMS_1")).thenReturn( + xService); + Mockito.when(!bizUtil.hasAccess(xService, null)).thenReturn(true); + + RangerService rangerService = rangerKMSService(); + VXUser vXUser = null; + String userName = "servicemgr"; + Mockito.when(xService.getType()).thenReturn(Long.valueOf(rangerService.getType())); + Mockito.when(xServiceDefDao.getById(Long.valueOf(rangerService.getType()))).thenReturn(xServiceDef); + Mockito.when(xServiceDef.getImplclassname()).thenReturn(EmbeddedServiceDefsUtil.KMS_IMPL_CLASS_NAME); + List<XXServiceConfigDef> svcConfDefList = new ArrayList<XXServiceConfigDef>(); + XXServiceConfigDef serviceConfigDefObj = new XXServiceConfigDef(); + serviceConfigDefObj.setId(Id); + serviceConfigDefObj.setType("7"); + svcConfDefList.add(serviceConfigDefObj); + Mockito.when(daoManager.getXXServiceConfigDef()).thenReturn( + xServiceConfigDefDao); + Mockito.when(xServiceConfigDefDao.findByServiceDefName(userName)) + .thenReturn(svcConfDefList); + + Mockito.when(svcService.create(rangerService)).thenReturn(rangerService); + + Mockito.when(daoManager.getXXService()).thenReturn(xServiceDao); + Mockito.when(xServiceDao.getById(rangerService.getId())).thenReturn( + xService); + Mockito.when(daoManager.getXXServiceConfigMap()).thenReturn( + xServiceConfigMapDao); + + Mockito.when(stringUtil.getValidUserName(userName)) + .thenReturn(userName); + Mockito.when(daoManager.getXXUser()).thenReturn(xUserDao); + Mockito.when(xUserDao.findByUserName(userName)).thenReturn(xUser); + + Mockito.when(xUserService.populateViewBean(xUser)).thenReturn(vXUser); + Mockito.when(xUserMgr.createServiceConfigUser(userName)).thenReturn(vXUser); + VXUser vXUserHdfs = new VXUser(); + vXUserHdfs.setName("hdfs"); + vXUserHdfs.setPassword("hdfs"); + Mockito.when(xUserMgr.createServiceConfigUser("hdfs")).thenReturn(vXUserHdfs); + VXUser vXUserHive = new VXUser(); + vXUserHive.setName("hive"); + vXUserHive.setPassword("hive"); + Mockito.when(xUserMgr.createServiceConfigUser("hive")).thenReturn(vXUserHive); + + XXServiceConfigMap xConfMap = new XXServiceConfigMap(); + //Mockito.when(rangerAuditFields.populateAuditFields(xConfMap, xService)) + //.thenReturn(xService); + + Mockito.when(svcService.getPopulatedViewObject(xService)).thenReturn( + rangerService); + + Mockito.when( + rangerAuditFields.populateAuditFields( + Mockito.isA(XXServiceConfigMap.class), + Mockito.isA(XXService.class))).thenReturn(xConfMap); + + Mockito.when(daoManager.getXXPolicy()).thenReturn(xPolicyDao); + + Mockito.when(xPolicyDao.getById(Id)).thenReturn(xPolicy); + + + List<XXAccessTypeDef> accessTypeDefList = new ArrayList<XXAccessTypeDef>(); + accessTypeDefList.add(rangerKmsAccessTypes("getmetadata", 7)); + accessTypeDefList.add(rangerKmsAccessTypes("generateeek", 8)); + accessTypeDefList.add(rangerKmsAccessTypes("decrypteek", 9)); + + RangerServiceDef ran = new RangerServiceDef(); + ran.setName("KMS Test"); + Mockito.when(serviceDefService.read(1L)).thenReturn(ran); + Long serviceDefId = ran.getId(); + + ServiceDBStore spy = Mockito.spy(serviceDBStore); + + Mockito.when(daoManager.getXXAccessTypeDef()).thenReturn( + xAccessTypeDefDao); + Mockito.when(xAccessTypeDefDao.findByServiceDefId(serviceDefId)) + .thenReturn(accessTypeDefList); + Mockito.when(spy.getServiceByName("KMS_1")).thenReturn( + rangerService); + Mockito.doNothing().when(spy).createDefaultPolicies(xService, vXUser); + + RangerPolicy policy = new RangerPolicy(); + RangerResourceDef resourceDef = new RangerResourceDef(); + resourceDef.setItemId(Id); + resourceDef.setName("keyname"); + resourceDef.setType("string"); + resourceDef.setType("string"); + resourceDef.setLabel("Key Name"); + resourceDef.setDescription("Key Name"); + + List<RangerResourceDef> resourceHierarchy = new ArrayList<RangerResourceDef>(); + resourceHierarchy.addAll(resourceHierarchy); + + spy.createService(rangerService); + vXUser = new VXUser(); + vXUser.setName(userName); + vXUser.setPassword(userName); + + spy.createDefaultPolicy(policy, xService, vXUser, resourceHierarchy); + + Mockito.verify(daoManager, Mockito.atLeast(1)).getXXService(); + Mockito.verify(daoManager).getXXServiceConfigMap(); + //Assert.assertNull(policy); + Assert.assertEquals(3, policy.getPolicyItems().size()); + } } http://git-wip-us.apache.org/repos/asf/ranger/blob/c84b98fb/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 68908b2..7d407f7 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 @@ -247,7 +247,7 @@ public class TestServiceREST { return rangerService; } - private RangerPolicy rangerPolicy() { + RangerPolicy rangerPolicy() { List<RangerPolicyItemAccess> accesses = new ArrayList<RangerPolicyItemAccess>(); List<String> users = new ArrayList<String>(); List<String> groups = new ArrayList<String>(); http://git-wip-us.apache.org/repos/asf/ranger/blob/c84b98fb/security-admin/src/test/java/org/apache/ranger/service/TestRangerServiceDefService.java ---------------------------------------------------------------------- diff --git a/security-admin/src/test/java/org/apache/ranger/service/TestRangerServiceDefService.java b/security-admin/src/test/java/org/apache/ranger/service/TestRangerServiceDefService.java index d65b0d6..f5fdef5 100644 --- a/security-admin/src/test/java/org/apache/ranger/service/TestRangerServiceDefService.java +++ b/security-admin/src/test/java/org/apache/ranger/service/TestRangerServiceDefService.java @@ -322,9 +322,6 @@ public class TestRangerServiceDefService { Mockito.when(daoManager.getXXPolicyConditionDef()).thenReturn( xPolicyConditionDefDao); - Mockito.when( - xPolicyConditionDefDao.findByPolicyItemId(xPolicyItem.getId())) - .thenReturn(xConditionDefList); Mockito.when(daoManager.getXXContextEnricherDef()).thenReturn( xContextEnricherDefDao); @@ -547,9 +544,6 @@ public class TestRangerServiceDefService { Mockito.when(daoManager.getXXPolicyConditionDef()).thenReturn( xPolicyConditionDefDao); - Mockito.when( - xPolicyConditionDefDao.findByPolicyItemId(xPolicyItem.getId())) - .thenReturn(xConditionDefList); Mockito.when(daoManager.getXXContextEnricherDef()).thenReturn( xContextEnricherDefDao); @@ -745,9 +739,6 @@ public class TestRangerServiceDefService { Mockito.when(daoManager.getXXPolicyConditionDef()).thenReturn( xPolicyConditionDefDao); - Mockito.when( - xPolicyConditionDefDao.findByPolicyItemId(xPolicyItem.getId())) - .thenReturn(xConditionDefList); Mockito.when(daoManager.getXXContextEnricherDef()).thenReturn( xContextEnricherDefDao); http://git-wip-us.apache.org/repos/asf/ranger/blob/c84b98fb/security-admin/src/test/java/org/apache/ranger/service/TestRangerTagDefService.java ---------------------------------------------------------------------- diff --git a/security-admin/src/test/java/org/apache/ranger/service/TestRangerTagDefService.java b/security-admin/src/test/java/org/apache/ranger/service/TestRangerTagDefService.java index 2ca0fd2..6b4b9a2 100644 --- a/security-admin/src/test/java/org/apache/ranger/service/TestRangerTagDefService.java +++ b/security-admin/src/test/java/org/apache/ranger/service/TestRangerTagDefService.java @@ -22,7 +22,6 @@ import java.util.List; import org.apache.ranger.db.RangerDaoManager; import org.apache.ranger.db.XXServiceVersionInfoDao; -import org.apache.ranger.db.XXTagAttributeDefDao; import org.apache.ranger.db.XXTagDefDao; import org.apache.ranger.entity.XXTagAttributeDef; import org.apache.ranger.entity.XXTagDef; @@ -36,6 +35,7 @@ import org.mockito.InjectMocks; import org.mockito.Mock; import org.mockito.Mockito; import org.mockito.runners.MockitoJUnitRunner; +//import org.mockito.junit.MockitoJUnitRunner; @RunWith(MockitoJUnitRunner.class) @FixMethodOrder(MethodSorters.NAME_ASCENDING) @@ -81,21 +81,15 @@ public class TestRangerTagDefService { xxTagAttributeDef.setName(name); tagAttrDefList.add(xxTagAttributeDef); - XXTagAttributeDefDao xxTagAttributeDefDao = Mockito.mock(XXTagAttributeDefDao.class); XXServiceVersionInfoDao xxServiceVersionInfoDao = Mockito.mock(XXServiceVersionInfoDao.class); - - Mockito.when(daoMgr.getXXTagAttributeDef()).thenReturn(xxTagAttributeDefDao); - Mockito.when(xxTagAttributeDefDao.findByTagDefId(tagDef.getId())).thenReturn(tagAttrDefList); - + Mockito.when(daoMgr.getXXServiceVersionInfo()).thenReturn(xxServiceVersionInfoDao); Mockito.doNothing().when(xxServiceVersionInfoDao).updateServiceVersionInfoForTagDefUpdate(tagDef.getId(), tagDef.getUpdateTime()); RangerTagDef result = rangerTagDefService.postUpdate(tagDef); Assert.assertEquals(result.getId(), tagAttrDefList.get(0).getId()); Assert.assertEquals(result.getName(), tagAttrDefList.get(0).getName()); - - Mockito.verify(daoMgr).getXXTagAttributeDef(); - Mockito.verify(xxTagAttributeDefDao).findByTagDefId(tagDef.getId()); + Mockito.verify(daoMgr).getXXServiceVersionInfo(); Mockito.verify(xxServiceVersionInfoDao).updateServiceVersionInfoForTagDefUpdate(tagDef.getId(), tagDef.getUpdateTime()); } @@ -117,19 +111,12 @@ public class TestRangerTagDefService { xxTagAttributeDef.setName(name); tagAttrDefList.add(xxTagAttributeDef); - XXTagAttributeDefDao xxTagAttributeDefDao = Mockito.mock(XXTagAttributeDefDao.class); - - Mockito.when(daoMgr.getXXTagAttributeDef()).thenReturn(xxTagAttributeDefDao); - Mockito.when(xxTagAttributeDefDao.findByTagDefId(xxTagDef.getId())).thenReturn(tagAttrDefList); - RangerTagDef result = rangerTagDefService.getTagDefByGuid(guid); Assert.assertEquals(result.getId(), tagAttrDefList.get(0).getId()); Assert.assertEquals(result.getName(), tagAttrDefList.get(0).getName()); Mockito.verify(daoMgr).getXXTagDef(); Mockito.verify(xXTagDefDao).findByGuid(guid); - Mockito.verify(daoMgr).getXXTagAttributeDef(); - Mockito.verify(xxTagAttributeDefDao).findByTagDefId(xxTagDef.getId()); } @Test @@ -167,19 +154,12 @@ public class TestRangerTagDefService { xxTagAttributeDef.setName(name); tagAttrDefList.add(xxTagAttributeDef); - XXTagAttributeDefDao xxTagAttributeDefDao = Mockito.mock(XXTagAttributeDefDao.class); - - Mockito.when(daoMgr.getXXTagAttributeDef()).thenReturn(xxTagAttributeDefDao); - Mockito.when(xxTagAttributeDefDao.findByTagDefId(xxTagDef.getId())).thenReturn(tagAttrDefList); - RangerTagDef result = rangerTagDefService.getTagDefByName(name); Assert.assertEquals(result.getId(), tagAttrDefList.get(0).getId()); Assert.assertEquals(result.getName(), tagAttrDefList.get(0).getName()); Mockito.verify(daoMgr).getXXTagDef(); Mockito.verify(xXTagDefDao).findByName(name); - Mockito.verify(daoMgr).getXXTagAttributeDef(); - Mockito.verify(xxTagAttributeDefDao).findByTagDefId(xxTagDef.getId()); } @Test @@ -215,19 +195,12 @@ public class TestRangerTagDefService { xxTagAttributeDef.setName(name); tagAttrDefList.add(xxTagAttributeDef); - XXTagAttributeDefDao xxTagAttributeDefDao = Mockito.mock(XXTagAttributeDefDao.class); - - Mockito.when(daoMgr.getXXTagAttributeDef()).thenReturn(xxTagAttributeDefDao); - Mockito.when(xxTagAttributeDefDao.findByTagDefId(xxTagDef.getId())).thenReturn(tagAttrDefList); - List<RangerTagDef> result = rangerTagDefService.getTagDefsByServiceId(serviceId); Assert.assertEquals(result.get(0).getId(), tagAttrDefList.get(0).getId()); Assert.assertEquals(result.get(0).getName(), tagAttrDefList.get(0).getName()); Mockito.verify(daoMgr).getXXTagDef(); Mockito.verify(xXTagDefDao).findByServiceId(serviceId); - Mockito.verify(daoMgr).getXXTagAttributeDef(); - Mockito.verify(xxTagAttributeDefDao).findByTagDefId(xxTagDef.getId()); } @@ -259,16 +232,8 @@ public class TestRangerTagDefService { xxTagAttributeDef.setName(name); tagAttrDefList.add(xxTagAttributeDef); - XXTagAttributeDefDao xxTagAttributeDefDao = Mockito.mock(XXTagAttributeDefDao.class); - - Mockito.when(daoMgr.getXXTagAttributeDef()).thenReturn(xxTagAttributeDefDao); - Mockito.when(xxTagAttributeDefDao.findByTagDefId(xxTagDef.getId())).thenReturn(tagAttrDefList); - RangerTagDef result = rangerTagDefService.getPopulatedViewObject(xxTagDef); Assert.assertEquals(result.getId(), tagAttrDefList.get(0).getId()); Assert.assertEquals(result.getName(), tagAttrDefList.get(0).getName()); - - Mockito.verify(daoMgr).getXXTagAttributeDef(); - Mockito.verify(xxTagAttributeDefDao).findByTagDefId(xxTagDef.getId()); } }
