You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ranger.apache.org by ve...@apache.org on 2016/04/13 09:54:41 UTC
incubator-ranger git commit: RANGER-921 : Improve implementation of
internal SQL calls
Repository: incubator-ranger
Updated Branches:
refs/heads/master 49b816e81 -> da3a3233d
RANGER-921 : Improve implementation of internal SQL calls
Signed-off-by: Velmurugan Periasamy <ve...@apache.org>
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 <pr...@freestoneinfotech.com>
Authored: Tue Apr 12 16:50:24 2016 +0530
Committer: Velmurugan Periasamy <ve...@apache.org>
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>