You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ranger.apache.org by ga...@apache.org on 2015/12/07 06:29:35 UTC

incubator-ranger git commit: RANGER-733 : Implement best coding practices to resolve issues found during code scan

Repository: incubator-ranger
Updated Branches:
  refs/heads/ranger-0.5 6d4ea47f7 -> 5be2cdba7


RANGER-733 : Implement best coding practices to resolve issues found during code scan


Project: http://git-wip-us.apache.org/repos/asf/incubator-ranger/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-ranger/commit/5be2cdba
Tree: http://git-wip-us.apache.org/repos/asf/incubator-ranger/tree/5be2cdba
Diff: http://git-wip-us.apache.org/repos/asf/incubator-ranger/diff/5be2cdba

Branch: refs/heads/ranger-0.5
Commit: 5be2cdba7f9246625b12505070ea7764d4dba5dd
Parents: 6d4ea47
Author: Gautam Borad <ga...@apache.org>
Authored: Sun Dec 6 02:04:32 2015 +0530
Committer: Gautam Borad <ga...@apache.org>
Committed: Mon Dec 7 10:59:25 2015 +0530

----------------------------------------------------------------------
 .../java/org/apache/ranger/db/XXTrxLogDao.java  |  36 +++++++
 .../patch/cliutil/XXTrxLogUpdateUtil.java       | 102 +++++++++++++++++++
 .../ranger/service/RangerPolicyService.java     |  14 +--
 .../resources/META-INF/jpa_named_queries.xml    |  11 ++
 4 files changed, 150 insertions(+), 13 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-ranger/blob/5be2cdba/security-admin/src/main/java/org/apache/ranger/db/XXTrxLogDao.java
----------------------------------------------------------------------
diff --git a/security-admin/src/main/java/org/apache/ranger/db/XXTrxLogDao.java b/security-admin/src/main/java/org/apache/ranger/db/XXTrxLogDao.java
index 63e0d63..5344368 100644
--- a/security-admin/src/main/java/org/apache/ranger/db/XXTrxLogDao.java
+++ b/security-admin/src/main/java/org/apache/ranger/db/XXTrxLogDao.java
@@ -63,5 +63,41 @@ public class XXTrxLogDao extends BaseDao<XXTrxLog> {
 			return null;
 		}
 	}
+	public Long getMaxIdOfXXTrxLog(){
+		Long maxXTrxLogID=new Long(0);
+		try {
+			maxXTrxLogID = (Long) getEntityManager()
+					.createNamedQuery("XXTrxLog.getMaxIdOfXXTrxLog", Long.class)
+					.getSingleResult();
+		} catch (NoResultException e) {
+			logger.debug(e.getMessage());
+		}finally{
+			if(maxXTrxLogID==null){
+				maxXTrxLogID=new Long(0);
+			}
+		}
+		return maxXTrxLogID;
+	}
+
+	public int updateXTrxLog(long idFrom,long idTo,int objClassType,String attrName,String newValue){
+		int rowAffected=-1;
+		if(objClassType == 0 ||attrName==null || newValue==null){
+			return rowAffected;
+		}
+		try {
+		//idFrom and idTo both exclusive
+		rowAffected=getEntityManager().createNamedQuery("XXTrxLog.updateLogAttr", tClass)
+	        .setParameter("idFrom", idFrom)
+	        .setParameter("idTo", idTo)
+	        .setParameter("objClassType", objClassType)
+	        .setParameter("attrName", attrName)
+	        .setParameter("newValue", newValue)
+	        .executeUpdate();
+		}catch (NoResultException e) {
+			logger.debug(e.getMessage());
+		}
+		return rowAffected;
+	}
+
 }
 

http://git-wip-us.apache.org/repos/asf/incubator-ranger/blob/5be2cdba/security-admin/src/main/java/org/apache/ranger/patch/cliutil/XXTrxLogUpdateUtil.java
----------------------------------------------------------------------
diff --git a/security-admin/src/main/java/org/apache/ranger/patch/cliutil/XXTrxLogUpdateUtil.java b/security-admin/src/main/java/org/apache/ranger/patch/cliutil/XXTrxLogUpdateUtil.java
new file mode 100644
index 0000000..beafd1c
--- /dev/null
+++ b/security-admin/src/main/java/org/apache/ranger/patch/cliutil/XXTrxLogUpdateUtil.java
@@ -0,0 +1,102 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.ranger.patch.cliutil;
+
+import org.apache.log4j.Logger;
+import org.apache.ranger.common.AppConstants;
+import org.apache.ranger.db.RangerDaoManager;
+import org.apache.ranger.patch.BaseLoader;
+import org.apache.ranger.service.XPortalUserService;
+import org.apache.ranger.biz.XUserMgr;
+import org.apache.ranger.util.CLIUtil;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Component;
+
+@Component
+public class XXTrxLogUpdateUtil extends BaseLoader {
+	private static Logger logger = Logger
+			.getLogger(XXTrxLogUpdateUtil.class);
+
+	@Autowired
+	XUserMgr xUserMgr;
+
+	@Autowired
+	XPortalUserService xPortalUserService;
+
+	@Autowired
+	RangerDaoManager daoManager;
+
+	public static void main(String[] args) {
+		logger.info("main()");
+		try {
+			XXTrxLogUpdateUtil loader = (XXTrxLogUpdateUtil) CLIUtil
+					.getBean(XXTrxLogUpdateUtil.class);
+
+			loader.init();
+			while (loader.isMoreToProcess()) {
+				loader.load();
+			}
+			logger.info("Load complete. Exiting!!!");
+			System.exit(0);
+		} catch (Exception e) {
+			logger.error("Error loading", e);
+			System.exit(1);
+		}
+	}
+
+	@Override
+	public void init() throws Exception {
+		// Do Nothing
+	}
+
+	@Override
+	public void execLoad() {
+		logger.info("==> XTrxLogUpdate.execLoad() Start.");
+		updateXTrxLog();
+		logger.info("<== XTrxLogUpdate.execLoad() End.");
+	}
+
+	public void updateXTrxLog() {
+		long maxXTrxLogID = daoManager.getXXTrxLog().getMaxIdOfXXTrxLog();
+		if(maxXTrxLogID==0){
+			return;
+		}
+		long maxRowsPerBatch=10000;
+		//To ceil the actual division result i.e noOfBatches=maxXTrxLogID/maxRowsPerBatch
+		long noOfBatches=(maxXTrxLogID+maxRowsPerBatch-1)/maxRowsPerBatch;
+		long minRange=0;
+		long maxRange=maxXTrxLogID<=maxRowsPerBatch ? maxXTrxLogID : maxRowsPerBatch;
+		long startTimeInMS=0;
+		long timeTaken=0;
+		for(long index=1;index<=noOfBatches;index++){
+			logger.info("Batch "+ index+" of total "+noOfBatches);
+			startTimeInMS=System.currentTimeMillis();
+			//minRange and maxRange both exclusive, if we add +1 in maxRange
+			int rowsAffected=daoManager.getXXTrxLog().updateXTrxLog(minRange,maxRange+1,AppConstants.CLASS_TYPE_XA_USER,"Password",AppConstants.Masked_String);
+			timeTaken=(System.currentTimeMillis()-startTimeInMS);
+			logger.info(rowsAffected +" rows affected ("+timeTaken+" ms)");
+			minRange=maxRange;
+			maxRange=maxRange+maxRowsPerBatch;
+		}
+	}
+
+	@Override
+	public void printStats() {
+	}
+
+}

http://git-wip-us.apache.org/repos/asf/incubator-ranger/blob/5be2cdba/security-admin/src/main/java/org/apache/ranger/service/RangerPolicyService.java
----------------------------------------------------------------------
diff --git a/security-admin/src/main/java/org/apache/ranger/service/RangerPolicyService.java b/security-admin/src/main/java/org/apache/ranger/service/RangerPolicyService.java
index aaadea7..4a14ab9 100644
--- a/security-admin/src/main/java/org/apache/ranger/service/RangerPolicyService.java
+++ b/security-admin/src/main/java/org/apache/ranger/service/RangerPolicyService.java
@@ -381,19 +381,7 @@ public class RangerPolicyService extends RangerPolicyServiceBase<XXPolicy, Range
 	}
 
 	private boolean compareTwoPolicyName(String value, String oldValue) {
-		if (value==null && oldValue==null) {
-			return org.apache.commons.lang.StringUtils.equals(value, oldValue);
-		}
-		if (value!=null && oldValue!=null && value.trim().isEmpty() && oldValue.trim().isEmpty()) {
-			return true;
-		}
-		if (stringUtil.isEmpty(value) || stringUtil.isEmpty(oldValue)) {
-			return false;
-		}
-		if(!value.equals(oldValue)) {
-			return false;
-		}
-		return true;
+		return org.apache.commons.lang.StringUtils.equals(value, oldValue);
 	}
 
 	private String processPolicyNameForTrxLog(Object value) {

http://git-wip-us.apache.org/repos/asf/incubator-ranger/blob/5be2cdba/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 65dd17f..55c4f1c 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
@@ -656,4 +656,15 @@
 			   xpu.id=:userId and gmp.isAllowed=:isAllowed
 		</query>
 	</named-query>
+	<named-query name="XXTrxLog.getMaxIdOfXXTrxLog">
+		<query>select max(obj.id) from XXTrxLog obj</query>
+	</named-query>
+	<named-query name="XXTrxLog.updateLogAttr">
+        <query>UPDATE XXTrxLog obj SET obj.newValue = :newValue
+                WHERE obj.id &gt; :idFrom
+                  AND obj.id &lt; :idTo
+                  AND obj.objectClassType = :objClassType
+                  AND obj.attributeName = :attrName
+        </query>
+    </named-query>
 </entity-mappings>