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

Reply via email to