Repository: incubator-ranger Updated Branches: refs/heads/stack a67360d26 -> c928a4159
RANGER-203: database service-store implementation Project: http://git-wip-us.apache.org/repos/asf/incubator-ranger/repo Commit: http://git-wip-us.apache.org/repos/asf/incubator-ranger/commit/30722773 Tree: http://git-wip-us.apache.org/repos/asf/incubator-ranger/tree/30722773 Diff: http://git-wip-us.apache.org/repos/asf/incubator-ranger/diff/30722773 Branch: refs/heads/stack Commit: 30722773231fcbc6a624a108775fab52ed191594 Parents: a67360d Author: Gautam Borad <[email protected]> Authored: Fri Feb 13 09:33:14 2015 -0800 Committer: Madhan Neethiraj <[email protected]> Committed: Fri Feb 13 09:33:14 2015 -0800 ---------------------------------------------------------------------- .../org/apache/ranger/common/AppConstants.java | 152 ++++++++++++++- .../apache/ranger/db/RangerDaoManagerBase.java | 193 ++++++++++++++++++- .../java/org/apache/ranger/db/XXGroupDao.java | 17 +- .../java/org/apache/ranger/db/XXUserDao.java | 16 ++ .../org/apache/ranger/rest/ServiceREST.java | 10 +- .../resources/META-INF/jpa_named_queries.xml | 167 ++++++++++++++++ 6 files changed, 548 insertions(+), 7 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/incubator-ranger/blob/30722773/security-admin/src/main/java/org/apache/ranger/common/AppConstants.java ---------------------------------------------------------------------- diff --git a/security-admin/src/main/java/org/apache/ranger/common/AppConstants.java b/security-admin/src/main/java/org/apache/ranger/common/AppConstants.java index c5bfedf..b85f975 100644 --- a/security-admin/src/main/java/org/apache/ranger/common/AppConstants.java +++ b/security-admin/src/main/java/org/apache/ranger/common/AppConstants.java @@ -429,11 +429,101 @@ public class AppConstants extends RangerCommonEnums { * CLASS_TYPE_XA_TRANSACTION_LOG_ATTRIBUTE is an element of enum ClassTypes. Its value is "CLASS_TYPE_XA_TRANSACTION_LOG_ATTRIBUTE". */ public static final int CLASS_TYPE_XA_TRANSACTION_LOG_ATTRIBUTE = 1014; + /** + * CLASS_TYPE_XA_ACCESS_TYPE_DEF is an element of enum ClassTypes. Its value is "CLASS_TYPE_XA_ACCESS_TYPE_DEF". + */ + public static final int CLASS_TYPE_XA_ACCESS_TYPE_DEF = 1015; + /** + * CLASS_TYPE_XA_ACCESS_TYPE_DEF_GRANTS is an element of enum ClassTypes. Its value is "CLASS_TYPE_XA_ACCESS_TYPE_DEF_GRANTS". + */ + public static final int CLASS_TYPE_XA_ACCESS_TYPE_DEF_GRANTS = 1016; + /** + * CLASS_TYPE_XA_DATA_HIST is an element of enum ClassTypes. Its value is "CLASS_TYPE_XA_DATA_HIST". + */ + public static final int CLASS_TYPE_XA_DATA_HIST = 1017; + /** + * CLASS_TYPE_XA_ENUM_DEF is an element of enum ClassTypes. Its value is "CLASS_TYPE_XA_ENUM_DEF". + */ + public static final int CLASS_TYPE_XA_ENUM_DEF = 1018; + /** + * CLASS_TYPE_XA_ENUM_DEF_ELEMENT is an element of enum ClassTypes. Its value is "CLASS_TYPE_XA_ENUM_DEF_ELEMENT". + */ + public static final int CLASS_TYPE_XA_ENUM_ELEMENT_DEF = 1019; + /** + * CLASS_TYPE_RANGER_POLICY is an element of enum ClassTypes. Its value is "CLASS_TYPE_RANGER_POLICY". + */ + public static final int CLASS_TYPE_RANGER_POLICY = 1020; + /** + * CLASS_TYPE_RANGER_POLICY_CONDITION_DEF is an element of enum ClassTypes. Its value is "CLASS_TYPE_RANGER_POLICY_CONDITION_DEF". + */ + public static final int CLASS_TYPE_RANGER_POLICY_CONDITION_DEF = 1021; + /** + * CLASS_TYPE_RANGER_POLICY_ITEM is an element of enum ClassTypes. Its value is "CLASS_TYPE_RANGER_POLICY_ITEM". + */ + public static final int CLASS_TYPE_RANGER_POLICY_ITEM = 1022; + /** + * CLASS_TYPE_RANGER_POLICY_ITEM_ACCESS is an element of enum ClassTypes. Its value is "CLASS_TYPE_RANGER_POLICY_ITEM_ACCESS". + */ + public static final int CLASS_TYPE_RANGER_POLICY_ITEM_ACCESS = 1023; + /** + * CLASS_TYPE_RANGER_POLICY_CONDITION is an element of enum ClassTypes. Its value is "CLASS_TYPE_RANGER_POLICY_CONDITION". + */ + public static final int CLASS_TYPE_RANGER_POLICY_ITEM_CONDITION = 1024; + /** + * CLASS_TYPE_RANGER_POLICY_ITEM_GRP_PERM is an element of enum ClassTypes. Its value is "CLASS_TYPE_RANGER_POLICY_ITEM_GRP_PERM". + */ + public static final int CLASS_TYPE_RANGER_POLICY_ITEM_GRP_PERM = 1025; + /** + * CLASS_TYPE_RANGER_POLICY_ITEM_USER_PERM is an element of enum ClassTypes. Its value is "CLASS_TYPE_RANGER_POLICY_ITEM_USER_PERM". + */ + public static final int CLASS_TYPE_RANGER_POLICY_ITEM_USER_PERM = 1026; + /** + * CLASS_TYPE_RANGER_POLICY_RESOURCE is an element of enum ClassTypes. Its value is "CLASS_TYPE_RANGER_POLICY_RESOURCE". + */ + public static final int CLASS_TYPE_RANGER_POLICY_RESOURCE = 1027; + /** + * CLASS_TYPE_RANGER_POLICY_RESOURCE_MAP is an element of enum ClassTypes. Its value is "CLASS_TYPE_RANGER_POLICY_RESOURCE_MAP". + */ + public static final int CLASS_TYPE_RANGER_POLICY_RESOURCE_MAP = 1028; + /** + * CLASS_TYPE_XA_RESOURCE_DEF is an element of enum ClassTypes. Its value is "CLASS_TYPE_XA_RESOURCE_DEF". + */ + public static final int CLASS_TYPE_XA_RESOURCE_DEF = 1029; + /** + * CLASS_TYPE_XA_SERVICE is an element of enum ClassTypes. Its value is "CLASS_TYPE_XA_SERVICE". + */ + public static final int CLASS_TYPE_XA_SERVICE = 1030; + /** + * CLASS_TYPE_XA_SERVICE_CONFIG_DEF is an element of enum ClassTypes. Its value is "CLASS_TYPE_XA_SERVICE_CONFIG_DEF". + */ + public static final int CLASS_TYPE_XA_SERVICE_CONFIG_DEF = 1031; + /** + * CLASS_TYPE_XA_SERVICE_CONFIG_MAP is an element of enum ClassTypes. Its value is "CLASS_TYPE_XA_SERVICE_CONFIG_MAP". + */ + public static final int CLASS_TYPE_XA_SERVICE_CONFIG_MAP = 1032; + /** + * CLASS_TYPE_XA_SERVICE_DEF is an element of enum ClassTypes. Its value is "CLASS_TYPE_XA_SERVICE_DEF". + */ + public static final int CLASS_TYPE_XA_SERVICE_DEF = 1033; /** * Max value for enum ClassTypes_MAX */ - public static final int ClassTypes_MAX = 1014; + public static final int ClassTypes_MAX = 1033; + + /*************************************************************** + * Enum values for Default SortOrder + **************************************************************/ + public static final int DEFAULT_SORT_ORDER = 0; + + /*************************************************************** + * Enum values for STATUS of XXDataHist object + **************************************************************/ + public static final int HIST_OBJ_STATUS_UNKNOWN = 0; + public static final int HIST_OBJ_STATUS_CREATED = 1; + public static final int HIST_OBJ_STATUS_UPDATED = 2; + public static final int HIST_OBJ_STATUS_DELETED = 3; + public static final int MAX_HIST_OBJ_STATUS = 3; @@ -720,6 +810,66 @@ public class AppConstants extends RangerCommonEnums { if( elementValue == 1013 ) { return "Access Audit"; //CLASS_TYPE_XA_ACCESS_AUDIT } + if( elementValue == 1014 ) { + return "Trx Log Attribute"; //CLASS_TYPE_XA_TRANSACTION_LOG_ATTRIBUTE + } + if( elementValue == 1015 ) { + return "XA AccessType Def"; //CLASS_TYPE_XA_ACCESS_TYPE_DEF + } + if( elementValue == 1016 ) { + return "XA AccessType Def Grants"; //CLASS_TYPE_XA_ACCESS_TYPE_DEF_GRANTS + } + if( elementValue == 1017 ) { + return "XA Data History"; //CLASS_TYPE_XA_DATA_HIST + } + if( elementValue == 1018 ) { + return "XA Enum Defination"; //CLASS_TYPE_XA_ENUM_DEF + } + if( elementValue == 1019 ) { + return "XA EnumElement Def"; //CLASS_TYPE_XA_ENUM_DEF_ELEMENT + } + if( elementValue == 1020 ) { + return "Ranger Policy"; //CLASS_TYPE_RANGER_POLICY + } + if( elementValue == 1021 ) { + return "RangerPolicy Condition Def"; //CLASS_TYPE_RANGER_POLICY_CONDITION_DEF + } + if( elementValue == 1022 ) { + return "RangerPolicy Item"; //CLASS_TYPE_RANGER_POLICY_ITEM + } + if( elementValue == 1023 ) { + return "RangerPolicy Item Access"; //CLASS_TYPE_RANGER_POLICY_ITEM_ACCESS + } + if( elementValue == 1024 ) { + return "RangerPolicyItem Condition "; //CLASS_TYPE_RANGER_POLICY_CONDITION + } + if( elementValue == 1025 ) { + return "RangerPolicy ItemGrp Map"; //CLASS_TYPE_RANGER_POLICY_ITEM_GRP_PERM + } + if( elementValue == 1026 ) { + return "RangerPolicy ItemUser Map"; //CLASS_TYPE_RANGER_POLICY_ITEM_USER_PERM + } + if( elementValue == 1027 ) { + return "RangerPolicy Resource"; //CLASS_TYPE_RANGER_POLICY_RESOURCE + } + if( elementValue == 1028 ) { + return "RangerPolicy Resource Map"; //CLASS_TYPE_RANGER_POLICY_RESOURCE_MAP + } + if( elementValue == 1029 ) { + return "XA Resource Def"; //CLASS_TYPE_XA_RESOURCE_DEF + } + if( elementValue == 1030 ) { + return "XA Service"; //CLASS_TYPE_XA_SERVICE + } + if( elementValue == 1031 ) { + return "XA Service Config Def"; //CLASS_TYPE_XA_SERVICE_CONFIG_DEF + } + if( elementValue == 1032 ) { + return "XA Service Config Map"; //CLASS_TYPE_XA_SERVICE_CONFIG_MAP + } + if( elementValue == 1033 ) { + return "XA Service Def"; //CLASS_TYPE_XA_SERVICE_DEF + } return null; } http://git-wip-us.apache.org/repos/asf/incubator-ranger/blob/30722773/security-admin/src/main/java/org/apache/ranger/db/RangerDaoManagerBase.java ---------------------------------------------------------------------- diff --git a/security-admin/src/main/java/org/apache/ranger/db/RangerDaoManagerBase.java b/security-admin/src/main/java/org/apache/ranger/db/RangerDaoManagerBase.java index 61bcca5..6325881 100644 --- a/security-admin/src/main/java/org/apache/ranger/db/RangerDaoManagerBase.java +++ b/security-admin/src/main/java/org/apache/ranger/db/RangerDaoManagerBase.java @@ -86,6 +86,65 @@ public abstract class RangerDaoManagerBase { return getXXAccessAudit(); } + if (classType == AppConstants.CLASS_TYPE_RANGER_POLICY) { + return getXXPolicy(); + } + if (classType == AppConstants.CLASS_TYPE_XA_SERVICE) { + return getXXService(); + } + if (classType == AppConstants.CLASS_TYPE_RANGER_POLICY_ITEM) { + return getXXPolicyItem(); + } + if (classType == AppConstants.CLASS_TYPE_XA_SERVICE_DEF) { + return getXXServiceDef(); + } + if (classType == AppConstants.CLASS_TYPE_XA_SERVICE_CONFIG_DEF) { + return getXXServiceConfigDef(); + } + if (classType == AppConstants.CLASS_TYPE_XA_RESOURCE_DEF) { + return getXXResourceDef(); + } + if (classType == AppConstants.CLASS_TYPE_XA_ACCESS_TYPE_DEF) { + return getXXAccessTypeDef(); + } + if (classType == AppConstants.CLASS_TYPE_XA_ACCESS_TYPE_DEF_GRANTS) { + return getXXAccessTypeDefGrants(); + } + if (classType == AppConstants.CLASS_TYPE_RANGER_POLICY_CONDITION_DEF) { + return getXXPolicyConditionDef(); + } + if (classType == AppConstants.CLASS_TYPE_XA_ENUM_DEF) { + return getXXEnumDef(); + } + if (classType == AppConstants.CLASS_TYPE_XA_ENUM_ELEMENT_DEF) { + return getXXEnumElementDef(); + } + if (classType == AppConstants.CLASS_TYPE_XA_SERVICE_CONFIG_MAP) { + return getXXServiceConfigMap(); + } + if (classType == AppConstants.CLASS_TYPE_RANGER_POLICY_RESOURCE) { + return getXXPolicyResource(); + } + if (classType == AppConstants.CLASS_TYPE_RANGER_POLICY_RESOURCE_MAP) { + return getXXPolicyResourceMap(); + } + if (classType == AppConstants.CLASS_TYPE_RANGER_POLICY_ITEM_ACCESS) { + return getXXPolicyItemAccess(); + } + if (classType == AppConstants.CLASS_TYPE_RANGER_POLICY_ITEM_CONDITION) { + return getXXPolicyItemCondition(); + } + if (classType == AppConstants.CLASS_TYPE_RANGER_POLICY_ITEM_USER_PERM) { + return getXXPolicyItemUserPerm(); + } + if (classType == AppConstants.CLASS_TYPE_RANGER_POLICY_ITEM_GRP_PERM) { + return getXXPolicyItemGroupPerm(); + } + if (classType == AppConstants.CLASS_TYPE_XA_DATA_HIST) { + return getXXDataHist(); + } + + logger.error("No DaoManager found for classType=" + classType, new Throwable()); return null; } @@ -139,7 +198,64 @@ public abstract class RangerDaoManagerBase { if (className.equals("XXAccessAudit")) { return getXXAccessAudit(); } - + if (className.equals("XXPolicy")) { + return getXXPolicy(); + } + if (className.equals("XXService")) { + return getXXService(); + } + if (className.equals("XXPolicyItem")) { + return getXXPolicyItem(); + } + if (className.equals("XXServiceDef")) { + return getXXServiceDef(); + } + if (className.equals("XXServiceConfigDef")) { + return getXXServiceConfigDef(); + } + if (className.equals("XXResourceDef")) { + return getXXResourceDef(); + } + if (className.equals("XXAccessTypeDef")) { + return getXXAccessTypeDef(); + } + if (className.equals("XXAccessTypeDefGrants")) { + return getXXAccessTypeDefGrants(); + } + if (className.equals("XXPolicyConditionDef")) { + return getXXPolicyConditionDef(); + } + if (className.equals("XXEnumDef")) { + return getXXEnumDef(); + } + if (className.equals("XXEnumElementDef")) { + return getXXEnumElementDef(); + } + if (className.equals("XXServiceConfigMap")) { + return getXXServiceConfigMap(); + } + if (className.equals("XXPolicyResource")) { + return getXXPolicyResource(); + } + if (className.equals("XXPolicyResourceMap")) { + return getXXPolicyResourceMap(); + } + if (className.equals("XXPolicyItemAccess")) { + return getXXPolicyItemAccess(); + } + if (className.equals("XXPolicyItemCondition")) { + return getXXPolicyItemCondition(); + } + if (className.equals("XXPolicyItemUserPerm")) { + return getXXPolicyItemUserPerm(); + } + if (className.equals("XXPolicyItemGroupPerm")) { + return getXXPolicyItemGroupPerm(); + } + if (className.equals("XXDataHist")) { + return getXXDataHist(); + } + logger.error("No DaoManager found for className=" + className, new Throwable()); return null; } @@ -208,6 +324,81 @@ public abstract class RangerDaoManagerBase { return new XXAccessAuditDao(this); } + public XXPolicyDao getXXPolicy() { + return new XXPolicyDao(this); + } + + public XXServiceDao getXXService() { + return new XXServiceDao(this); + } + + public XXPolicyItemDao getXXPolicyItem() { + return new XXPolicyItemDao(this); + } + + public XXServiceDefDao getXXServiceDef() { + return new XXServiceDefDao(this); + } + + public XXServiceConfigDefDao getXXServiceConfigDef() { + return new XXServiceConfigDefDao(this); + } + + public XXResourceDefDao getXXResourceDef() { + return new XXResourceDefDao(this); + } + + public XXAccessTypeDefDao getXXAccessTypeDef() { + return new XXAccessTypeDefDao(this); + } + + public XXAccessTypeDefGrantsDao getXXAccessTypeDefGrants() { + return new XXAccessTypeDefGrantsDao(this); + } + + public XXPolicyConditionDefDao getXXPolicyConditionDef() { + return new XXPolicyConditionDefDao(this); + } + + public XXEnumDefDao getXXEnumDef() { + return new XXEnumDefDao(this); + } + + public XXEnumElementDefDao getXXEnumElementDef() { + return new XXEnumElementDefDao(this); + } + + public XXServiceConfigMapDao getXXServiceConfigMap() { + return new XXServiceConfigMapDao(this); + } + + public XXPolicyResourceDao getXXPolicyResource() { + return new XXPolicyResourceDao(this); + } + + public XXPolicyResourceMapDao getXXPolicyResourceMap() { + return new XXPolicyResourceMapDao(this); + } + + public XXPolicyItemAccessDao getXXPolicyItemAccess() { + return new XXPolicyItemAccessDao(this); + } + + public XXPolicyItemConditionDao getXXPolicyItemCondition() { + return new XXPolicyItemConditionDao(this); + } + + public XXPolicyItemUserPermDao getXXPolicyItemUserPerm() { + return new XXPolicyItemUserPermDao(this); + } + + public XXPolicyItemGroupPermDao getXXPolicyItemGroupPerm() { + return new XXPolicyItemGroupPermDao(this); + } + + public XXDataHistDao getXXDataHist() { + return new XXDataHistDao(this); + } } http://git-wip-us.apache.org/repos/asf/incubator-ranger/blob/30722773/security-admin/src/main/java/org/apache/ranger/db/XXGroupDao.java ---------------------------------------------------------------------- diff --git a/security-admin/src/main/java/org/apache/ranger/db/XXGroupDao.java b/security-admin/src/main/java/org/apache/ranger/db/XXGroupDao.java index 4736305..ee536c9 100644 --- a/security-admin/src/main/java/org/apache/ranger/db/XXGroupDao.java +++ b/security-admin/src/main/java/org/apache/ranger/db/XXGroupDao.java @@ -23,6 +23,8 @@ import java.util.ArrayList; import java.util.List; +import javax.persistence.NoResultException; + import org.apache.ranger.common.db.BaseDao; import org.apache.ranger.entity.XXGroup; @@ -49,7 +51,6 @@ public class XXGroupDao extends BaseDao<XXGroup> { return groupList; } - @SuppressWarnings("unchecked") public XXGroup findByGroupName(String groupName) { if (groupName == null) { return null; @@ -65,5 +66,19 @@ public class XXGroupDao extends BaseDao<XXGroup> { } return null; } + + @SuppressWarnings("unchecked") + public List<String> findByPolicyItemId(Long polItemId) { + if (polItemId == null) { + return null; + } + try { + return getEntityManager() + .createNamedQuery("XXGroup.findByPolicyItemId") + .setParameter("polItemId", polItemId).getResultList(); + } catch (NoResultException e) { + return null; + } + } } http://git-wip-us.apache.org/repos/asf/incubator-ranger/blob/30722773/security-admin/src/main/java/org/apache/ranger/db/XXUserDao.java ---------------------------------------------------------------------- diff --git a/security-admin/src/main/java/org/apache/ranger/db/XXUserDao.java b/security-admin/src/main/java/org/apache/ranger/db/XXUserDao.java index fb5af98..0887594 100644 --- a/security-admin/src/main/java/org/apache/ranger/db/XXUserDao.java +++ b/security-admin/src/main/java/org/apache/ranger/db/XXUserDao.java @@ -20,6 +20,8 @@ package org.apache.ranger.db; +import java.util.List; + import javax.persistence.NoResultException; import org.apache.log4j.Logger; @@ -48,4 +50,18 @@ public class XXUserDao extends BaseDao<XXUser> { } return null; } + + @SuppressWarnings("unchecked") + public List<String> findByPolicyItemId(Long polItemId) { + if (polItemId == null) { + return null; + } + try { + return getEntityManager() + .createNamedQuery("XXUser.findByPolicyItemId") + .setParameter("polItemId", polItemId).getResultList(); + } catch (NoResultException e) { + return null; + } + } } http://git-wip-us.apache.org/repos/asf/incubator-ranger/blob/30722773/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 7889d59..8608054 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 @@ -56,8 +56,6 @@ import org.apache.ranger.plugin.policyengine.RangerResourceImpl; import org.apache.ranger.plugin.policyevaluator.RangerDefaultPolicyEvaluator; import org.apache.ranger.plugin.policyevaluator.RangerPolicyEvaluator; import org.apache.ranger.plugin.service.ResourceLookupContext; -import org.apache.ranger.plugin.store.ServiceStore; -import org.apache.ranger.plugin.store.ServiceStoreFactory; import org.apache.ranger.plugin.util.GrantRevokeRequest; import org.apache.ranger.plugin.util.SearchFilter; import org.apache.ranger.plugin.util.ServicePolicies; @@ -66,9 +64,12 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.annotation.Scope; import org.springframework.security.access.prepost.PreAuthorize; import org.springframework.stereotype.Component; +import org.springframework.transaction.annotation.Propagation; +import org.springframework.transaction.annotation.Transactional; import org.apache.ranger.admin.client.datatype.RESTResponse; import org.apache.ranger.biz.AssetMgr; import org.apache.ranger.biz.ServiceMgr; +import org.apache.ranger.biz.ServiceDBStore; import org.apache.ranger.common.RESTErrorUtil; import org.apache.ranger.entity.XXPolicyExportAudit; @@ -76,6 +77,7 @@ import org.apache.ranger.entity.XXPolicyExportAudit; @Path("plugins") @Component @Scope("request") +@Transactional(propagation = Propagation.REQUIRES_NEW) public class ServiceREST { private static final Log LOG = LogFactory.getLog(ServiceREST.class); @@ -88,10 +90,10 @@ public class ServiceREST { @Autowired AssetMgr assetMgr; - private ServiceStore svcStore = null; + @Autowired + ServiceDBStore svcStore; public ServiceREST() { - svcStore = ServiceStoreFactory.instance().getServiceStore(); } http://git-wip-us.apache.org/repos/asf/incubator-ranger/blob/30722773/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 43ba5fa..755d924 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 @@ -183,4 +183,171 @@ </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="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 where obj.policyId = :policyId</query> + </named-query> + + <!-- XXPolicy --> + <named-query name="XXPolicy.findByName"> + <query>select obj from XXPolicy obj where obj.name = :polName</query> + </named-query> + + <named-query name="XXPolicy.findByServiceId"> + <query>select obj from XXPolicy obj where obj.service = :serviceId</query> + </named-query> + + <!-- XXServiceDef --> + <named-query name="XXServiceDef.findByName"> + <query>select obj from XXServiceDef obj where obj.name = :name</query> + </named-query> + + <!-- XXResourceDef --> + <named-query name="XXResourceDef.findByNameAndDefId"> + <query>select obj from XXResourceDef obj where obj.name = :name and obj.defId = :defId</query> + </named-query> + + <named-query name="XXResourceDef.findByServiceDefId"> + <query>select obj from XXResourceDef obj where obj.defId = :serviceDefId</query> + </named-query> + + <named-query name="XXResourceDef.findByPolicyId"> + <query>select obj from XXResourceDef obj, XXPolicy xPol, XXServiceDef xSvcDef, + XXService xSvc where obj.defId = xSvcDef.id and xSvcDef.id = xSvc.type + and xSvc.id = xPol.service and xPol.id = :policyId</query> + </named-query> + + <named-query name="XXResourceDef.findByNameAndPolicyId"> + <query>select obj from XXResourceDef obj, XXPolicy xPol, XXServiceDef xSvcDef, + XXService xSvc where obj.defId = xSvcDef.id and xSvcDef.id = xSvc.type + and xSvc.id = xPol.service and xPol.id = :policyId and obj.name = :name</query> + </named-query> + + <!-- XXAccessTypeDefGrants --> + <named-query name="XXAccessTypeDefGrants.findImpliedGrantsByATDId"> + <query>select obj.impliedGrant from XXAccessTypeDefGrants obj where obj.atdId = :atdId</query> + </named-query> + + <!-- XXEnumElementDef --> + <named-query name="XXEnumElementDef.findByEnumDefId"> + <query>select obj from XXEnumElementDef obj where obj.enumDefId = :enumDefId</query> + </named-query> + + <!-- XXServiceConfigDef --> + <named-query name="XXServiceConfigDef.findByServiceDefId"> + <query>select obj from XXServiceConfigDef obj where obj.defId = :serviceDefId</query> + </named-query> + + <named-query name="XXServiceConfigDef.findByServiceDefName"> + <query>select obj from XXServiceConfigDef obj, XXServiceDef svcDef + where obj.defId = svcDef.id and svcDef.name = :serviceDef</query> + </named-query> + + + <!-- XXAccessTypeDef --> + <named-query name="XXAccessTypeDef.findByServiceDefId"> + <query>select obj from XXAccessTypeDef obj where obj.defId = :serviceDefId</query> + </named-query> + + <named-query name="XXAccessTypeDef.findByNameAndServiceId"> + <query>select obj from XXAccessTypeDef obj, XXService xSvc where + obj.name = :name and xSvc.id = :serviceId and obj.defId = xSvc.type</query> + </named-query> + + <!-- XXPolicyConditionDef --> + <named-query name="XXPolicyConditionDef.findByServiceDefId"> + <query>select obj from XXPolicyConditionDef obj where obj.defId = :serviceDefId</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</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 + </query> + </named-query> + + + <!-- XXEnumDef --> + <named-query name="XXEnumDef.findByServiceDefId"> + <query>select obj from XXEnumDef obj where obj.defId = :serviceDefId</query> + </named-query> + + <!-- XXServiceConfigMap --> + <named-query name="XXServiceConfigMap.findByServiceId"> + <query>select obj from XXServiceConfigMap obj where obj.serviceId = :serviceId</query> + </named-query> + + <named-query name="XXServiceConfigMap.findByServiceAndConfigKey"> + <query>select obj from XXServiceConfigMap obj where + obj.serviceId = :serviceId and obj.configKey = :configKey</query> + </named-query> + + <!-- XXService --> + <named-query name="XXService.findByName"> + <query>select obj from XXService obj where obj.name = :name</query> + </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 where obj.policyId = :policyId</query> + </named-query> + + <!-- XXPolicyResourceMap --> + <named-query name="XXPolicyResourceMap.findByPolicyResId"> + <query>select obj from XXPolicyResourceMap obj where obj.resourceId = :polResId</query> + </named-query> + + <!-- XXPolicyItemAccess --> + <named-query name="XXPolicyItemAccess.findByPolicyItemId"> + <query>select obj from XXPolicyItemAccess obj where obj.policyItemId = :polItemId</query> + </named-query> + + <!-- XXPolicyItemCondition --> + <named-query name="XXPolicyItemCondition.findByPolicyItemId"> + <query>select obj from XXPolicyItemCondition obj where obj.policyItemId = :polItemId </query> + </named-query> + + <named-query name="XXPolicyItemCondition.findByPolicyItemAndDefId"> + <query>select obj from XXPolicyItemCondition obj where + obj.policyItemId = :polItemId and obj.type = :polCondDefId</query> + </named-query> + + <!-- XXPolicyItemGroupPerm --> + <named-query name="XXPolicyItemGroupPerm.findByPolicyItemId"> + <query>select obj from XXPolicyItemGroupPerm obj where obj.policyItemId = :polItemId</query> + </named-query> + + <!-- XXPolicyItemUserPerm --> + <named-query name="XXPolicyItemUserPerm.findByPolicyItemId"> + <query>select obj from XXPolicyItemUserPerm obj where obj.policyItemId = :polItemId</query> + </named-query> + + <!-- XXDataHist --> + <named-query name="XXDataHist.findLatestByObjectClassTypeAndObjectId"> + <query>select obj from XXDataHist obj where obj.objectId = :objectId + and obj.objectClassType = :classType ORDER BY obj.id</query> + </named-query> + + </entity-mappings> \ No newline at end of file
