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 > :idFrom
+ AND obj.id < :idTo
+ AND obj.objectClassType = :objClassType
+ AND obj.attributeName = :attrName
+ </query>
+ </named-query>
</entity-mappings>