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 &gt; :idFrom AND obj.id &lt; :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 &lt;= :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>