Repository: incubator-ranger Updated Branches: refs/heads/master 49b816e81 -> da3a3233d
RANGER-921 : Improve implementation of internal SQL calls Signed-off-by: Velmurugan Periasamy <[email protected]> Project: http://git-wip-us.apache.org/repos/asf/incubator-ranger/repo Commit: http://git-wip-us.apache.org/repos/asf/incubator-ranger/commit/da3a3233 Tree: http://git-wip-us.apache.org/repos/asf/incubator-ranger/tree/da3a3233 Diff: http://git-wip-us.apache.org/repos/asf/incubator-ranger/diff/da3a3233 Branch: refs/heads/master Commit: da3a3233d5679284142eb2887c91a754a0da70b9 Parents: 49b816e Author: Pradeep Agrawal <[email protected]> Authored: Tue Apr 12 16:50:24 2016 +0530 Committer: Velmurugan Periasamy <[email protected]> Committed: Wed Apr 13 03:54:23 2016 -0400 ---------------------------------------------------------------------- .../java/org/apache/ranger/common/DateUtil.java | 15 +++++++++ .../org/apache/ranger/db/XXDataHistDao.java | 35 +++++++------------- .../org/apache/ranger/db/XXPortalUserDao.java | 13 -------- .../apache/ranger/db/XXPortalUserRoleDao.java | 14 ++++++++ .../patch/PatchPersmissionModel_J10003.java | 2 +- .../resources/META-INF/jpa_named_queries.xml | 8 +++++ 6 files changed, 50 insertions(+), 37 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/incubator-ranger/blob/da3a3233/security-admin/src/main/java/org/apache/ranger/common/DateUtil.java ---------------------------------------------------------------------- diff --git a/security-admin/src/main/java/org/apache/ranger/common/DateUtil.java b/security-admin/src/main/java/org/apache/ranger/common/DateUtil.java index 92150ee..ac29c07 100644 --- a/security-admin/src/main/java/org/apache/ranger/common/DateUtil.java +++ b/security-admin/src/main/java/org/apache/ranger/common/DateUtil.java @@ -27,6 +27,7 @@ import java.util.Date; import java.util.GregorianCalendar; import java.util.TimeZone; +import org.apache.commons.lang.StringUtils; import org.springframework.stereotype.Component; @@ -113,4 +114,18 @@ public class DateUtil { utc.add(Calendar.MILLISECOND, offset); return utc.getTime(); } + + public static Date stringToDate(String dateString, String dateFromat){ + SimpleDateFormat simpleDateFormat = null; + Date date = null; + if(!StringUtils.isEmpty(dateString) && !StringUtils.isEmpty(dateFromat)){ + try{ + simpleDateFormat = new SimpleDateFormat(dateFromat); + date = simpleDateFormat.parse(dateString); + }catch(Exception ex){ + return null; + } + } + return date; + } } http://git-wip-us.apache.org/repos/asf/incubator-ranger/blob/da3a3233/security-admin/src/main/java/org/apache/ranger/db/XXDataHistDao.java ---------------------------------------------------------------------- diff --git a/security-admin/src/main/java/org/apache/ranger/db/XXDataHistDao.java b/security-admin/src/main/java/org/apache/ranger/db/XXDataHistDao.java index 07db458..b5e7855 100644 --- a/security-admin/src/main/java/org/apache/ranger/db/XXDataHistDao.java +++ b/security-admin/src/main/java/org/apache/ranger/db/XXDataHistDao.java @@ -18,15 +18,13 @@ package org.apache.ranger.db; import java.util.ArrayList; +import java.util.Date; import java.util.List; import javax.persistence.NoResultException; -import javax.persistence.Query; - -import org.apache.ranger.biz.RangerBizUtil; -import org.apache.ranger.common.AppConstants; import org.apache.ranger.common.db.BaseDao; import org.apache.ranger.entity.XXDataHist; +import org.apache.ranger.common.DateUtil; public class XXDataHistDao extends BaseDao<XXDataHist> { @@ -53,26 +51,17 @@ public class XXDataHistDao extends BaseDao<XXDataHist> { if (eventTime == null || objId == null) { return null; } + Date date=DateUtil.stringToDate(eventTime,"yyyy-MM-dd'T'HH:mm:ss'Z'"); + if(date==null){ + return null; + } try { - - int dbFlavor = RangerBizUtil.getDBFlavor(); - - String queryStr = ""; - - if (dbFlavor == AppConstants.DB_FLAVOR_ORACLE) { - queryStr = "select obj.* from x_data_hist obj where obj.obj_class_type = " + classType - + " and obj.obj_id = " + objId - + " and to_date(obj.create_time, 'YYYY-MM-DD\"T\"HH24:MI:SS\"Z\"') <= to_date('" + eventTime - + "', 'YYYY-MM-DD\"T\"HH24:MI:SS\"Z\"') ORDER BY obj.id DESC"; - } else { - queryStr = "select obj.* from x_data_hist obj where obj.obj_class_type = " + classType - + " and obj.obj_id = " + objId + " and obj.create_time <= '" + eventTime - + "' ORDER BY obj.id DESC"; - } - - Query jpaQuery = getEntityManager().createNativeQuery(queryStr, tClass).setMaxResults(1); - - return (XXDataHist) jpaQuery.getSingleResult(); + return getEntityManager() + .createNamedQuery("XXDataHist.findLatestByObjectClassTypeAndObjectIdAndEventTime", tClass) + .setParameter("classType", classType) + .setParameter("objectId", objId) + .setParameter("createTime", date) + .setMaxResults(1).getSingleResult(); } catch (NoResultException e) { return null; } http://git-wip-us.apache.org/repos/asf/incubator-ranger/blob/da3a3233/security-admin/src/main/java/org/apache/ranger/db/XXPortalUserDao.java ---------------------------------------------------------------------- diff --git a/security-admin/src/main/java/org/apache/ranger/db/XXPortalUserDao.java b/security-admin/src/main/java/org/apache/ranger/db/XXPortalUserDao.java index 393252c..fe9b32b 100644 --- a/security-admin/src/main/java/org/apache/ranger/db/XXPortalUserDao.java +++ b/security-admin/src/main/java/org/apache/ranger/db/XXPortalUserDao.java @@ -101,17 +101,4 @@ public class XXPortalUserDao extends BaseDao<XXPortalUser> { } } - @SuppressWarnings("unchecked") - public List<String> findXPortalUserRolebyXPortalUserId(Long userId) - { - try { - return getEntityManager() - .createNativeQuery("select user_role from x_portal_user_role where user_id="+userId+"") - .getResultList(); - - } catch (Exception e) { - return null; - } - - } } http://git-wip-us.apache.org/repos/asf/incubator-ranger/blob/da3a3233/security-admin/src/main/java/org/apache/ranger/db/XXPortalUserRoleDao.java ---------------------------------------------------------------------- diff --git a/security-admin/src/main/java/org/apache/ranger/db/XXPortalUserRoleDao.java b/security-admin/src/main/java/org/apache/ranger/db/XXPortalUserRoleDao.java index 99d0fe2..569814f 100644 --- a/security-admin/src/main/java/org/apache/ranger/db/XXPortalUserRoleDao.java +++ b/security-admin/src/main/java/org/apache/ranger/db/XXPortalUserRoleDao.java @@ -56,4 +56,18 @@ public class XXPortalUserRoleDao extends BaseDao<XXPortalUserRole> { } return null; } + @SuppressWarnings("unchecked") + public List<String> findXPortalUserRolebyXPortalUserId(Long userId) { + if (userId == null) { + return new ArrayList<String>(); + } + try { + List<String> returnList = getEntityManager() + .createNamedQuery("XXPortalUserRole.findXPortalUserRolebyXPortalUserId") + .setParameter("userId", userId).getResultList(); + return returnList; + } catch (NoResultException e) { + return new ArrayList<String>(); + } + } } http://git-wip-us.apache.org/repos/asf/incubator-ranger/blob/da3a3233/security-admin/src/main/java/org/apache/ranger/patch/PatchPersmissionModel_J10003.java ---------------------------------------------------------------------- diff --git a/security-admin/src/main/java/org/apache/ranger/patch/PatchPersmissionModel_J10003.java b/security-admin/src/main/java/org/apache/ranger/patch/PatchPersmissionModel_J10003.java index 804d08e..764bb5d 100644 --- a/security-admin/src/main/java/org/apache/ranger/patch/PatchPersmissionModel_J10003.java +++ b/security-admin/src/main/java/org/apache/ranger/patch/PatchPersmissionModel_J10003.java @@ -81,7 +81,7 @@ public class PatchPersmissionModel_J10003 extends BaseLoader { for (XXPortalUser xPortalUser : allPortalUser) { VXPortalUser vPortalUser = xPortalUserService.populateViewBean(xPortalUser); vPortalUsers.add(vPortalUser); - vPortalUser.setUserRoleList(daoManager.getXXPortalUser().findXPortalUserRolebyXPortalUserId(vPortalUser.getId())); + vPortalUser.setUserRoleList(daoManager.getXXPortalUserRole().findXPortalUserRolebyXPortalUserId(vPortalUser.getId())); xUserMgr.assignPermissionToUser(vPortalUser, false); countUserPermissionUpdated += 1; logger.info("Permissions assigned/updated on base of User's Role, UserId [" + xPortalUser.getId() + "]"); http://git-wip-us.apache.org/repos/asf/incubator-ranger/blob/da3a3233/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 469a400..0f65243 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 @@ -1005,4 +1005,12 @@ <named-query name="XXAccessAudit.getByIdRange"> <query>select obj from XXAccessAudit obj WHERE obj.id > :idFrom AND obj.id < :idTo</query> </named-query> + <named-query name="XXDataHist.findLatestByObjectClassTypeAndObjectIdAndEventTime"> + <query>select obj from XXDataHist obj where obj.objectId = :objectId and + obj.objectClassType = :classType and + obj.createTime <= :createTime ORDER BY obj.id DESC</query> + </named-query> + <named-query name="XXPortalUserRole.findXPortalUserRolebyXPortalUserId"> + <query>select obj.userRole from XXPortalUserRole obj where obj.userId = :userId</query> + </named-query> </entity-mappings>
