You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ranger.apache.org by ma...@apache.org on 2023/03/15 06:54:06 UTC

[ranger] branch master updated (fe33f69ae -> 32f8ce52a)

This is an automated email from the ASF dual-hosted git repository.

madhan pushed a change to branch master
in repository https://gitbox.apache.org/repos/asf/ranger.git


    from fe33f69ae RANGER-4129: ArrayIndexOutOfBounds exception may be thrown while processing events
     new 80b7d4899 RANGER-4126: updated BaseDao.getDBVersion() to correctly handle Oracle database
     new 32f8ce52a RANGER-4083: Tag-based policy UI to not show permissions in deny/exception for services that don't support deny/exception

The 2 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.


Summary of changes:
 .../java/org/apache/ranger/common/db/BaseDao.java     | 19 +++++++++++--------
 .../org/apache/ranger/patch/cliutil/MetricUtil.java   |  5 +++--
 .../scripts/views/policies/RangerPolicyCreate.js      | 10 ++++++----
 .../webapp/scripts/views/policies/RangerPolicyForm.js | 19 ++++++++++++++-----
 4 files changed, 34 insertions(+), 19 deletions(-)


[ranger] 01/02: RANGER-4126: updated BaseDao.getDBVersion() to correctly handle Oracle database

Posted by ma...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

madhan pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/ranger.git

commit 80b7d4899b42923639db78407b0c8d4c09803259
Author: Ramachandran Krishnan <ra...@gmail.com>
AuthorDate: Mon Mar 13 20:18:15 2023 +0530

    RANGER-4126: updated BaseDao.getDBVersion() to correctly handle Oracle database
    
    Signed-off-by: Madhan Neethiraj <ma...@apache.org>
---
 .../java/org/apache/ranger/common/db/BaseDao.java     | 19 +++++++++++--------
 .../org/apache/ranger/patch/cliutil/MetricUtil.java   |  5 +++--
 2 files changed, 14 insertions(+), 10 deletions(-)

diff --git a/security-admin/src/main/java/org/apache/ranger/common/db/BaseDao.java b/security-admin/src/main/java/org/apache/ranger/common/db/BaseDao.java
index 418557bcb..0d0697990 100644
--- a/security-admin/src/main/java/org/apache/ranger/common/db/BaseDao.java
+++ b/security-admin/src/main/java/org/apache/ranger/common/db/BaseDao.java
@@ -357,25 +357,28 @@ public abstract class BaseDao<T> {
 
 	public String getDBVersion(){
 		String dbVersion="Not Available";
+		int dbFlavor = RangerBizUtil.getDBFlavor();
 		String query ="SELECT 1";
 		try{
-			if(RangerBizUtil.getDBFlavor() == AppConstants.DB_FLAVOR_MYSQL) {
+			if(dbFlavor == AppConstants.DB_FLAVOR_MYSQL) {
 				query="SELECT version()";
 				dbVersion=(String) getEntityManager().createNativeQuery(query).getSingleResult();
-			}else if(RangerBizUtil.getDBFlavor() == AppConstants.DB_FLAVOR_ORACLE){
-				query="SELECT * from v$version where rownum<2";
-				dbVersion=(String) getEntityManager().createNativeQuery(query).getSingleResult();
-			}else if(RangerBizUtil.getDBFlavor() == AppConstants.DB_FLAVOR_POSTGRES){
+			}else if(dbFlavor == AppConstants.DB_FLAVOR_ORACLE){
+				query="SELECT banner from v$version where rownum<2";
+				dbVersion = (String)getEntityManager().createNativeQuery(query).getSingleResult();
+			}else if(dbFlavor == AppConstants.DB_FLAVOR_POSTGRES){
 				query="SELECT version()";
 				dbVersion=(String) getEntityManager().createNativeQuery(query).getSingleResult();
-			}else if(RangerBizUtil.getDBFlavor() == AppConstants.DB_FLAVOR_SQLSERVER){
+			}else if(dbFlavor == AppConstants.DB_FLAVOR_SQLSERVER){
 				query="SELECT @@version";
 				dbVersion=(String) getEntityManager().createNativeQuery(query).getSingleResult();
-			}else if(RangerBizUtil.getDBFlavor() == AppConstants.DB_FLAVOR_SQLANYWHERE){
+			}else if(dbFlavor == AppConstants.DB_FLAVOR_SQLANYWHERE){
 				query="SELECT @@version";
 				dbVersion=(String) getEntityManager().createNativeQuery(query).getSingleResult();
 			}
-		}catch(Exception ex){}
+		}catch(Exception ex){
+			logger.error("Error occurred while fetching the DB version.", ex);
+		}
 		return dbVersion;
 	}
 }
diff --git a/security-admin/src/main/java/org/apache/ranger/patch/cliutil/MetricUtil.java b/security-admin/src/main/java/org/apache/ranger/patch/cliutil/MetricUtil.java
index 8a13a1712..7d4828ed0 100644
--- a/security-admin/src/main/java/org/apache/ranger/patch/cliutil/MetricUtil.java
+++ b/security-admin/src/main/java/org/apache/ranger/patch/cliutil/MetricUtil.java
@@ -318,7 +318,7 @@ public class MetricUtil extends BaseLoader  {
 				case "database" :
 					try {
 						int dbFlavor = RangerBizUtil.getDBFlavor();
-						String dbFlavourType = "Unknow ";
+						String dbFlavourType = "Unknown";
 						if (dbFlavor == AppConstants.DB_FLAVOR_MYSQL) {
 							dbFlavourType = "MYSQL ";
 						} else if (dbFlavor == AppConstants.DB_FLAVOR_ORACLE) {
@@ -330,10 +330,11 @@ public class MetricUtil extends BaseLoader  {
 						} else if (dbFlavor == AppConstants.DB_FLAVOR_SQLSERVER) {
 							dbFlavourType = "SQLSERVER ";
 						}
+
 						String dbDetail = dbFlavourType + xaBizUtil.getDBVersion();
 						Gson gson = new GsonBuilder().create();
 						final String jsonDBDetail = gson.toJson(dbDetail);
-						System.out.println(jsonDBDetail);
+						logger.info("jsonDBDetail:" + jsonDBDetail);
 					} catch (Exception e) {
 						logger.error("Error calculating Metric for database : " + e.getMessage());
 					}


[ranger] 02/02: RANGER-4083: Tag-based policy UI to not show permissions in deny/exception for services that don't support deny/exception

Posted by ma...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

madhan pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/ranger.git

commit 32f8ce52a1f7ebfa45dce7c50e718250a0adce53
Author: Dhaval Rajpara <dh...@gmail.com>
AuthorDate: Tue Mar 14 18:51:15 2023 +0530

    RANGER-4083: Tag-based policy UI to not show permissions in deny/exception for services that don't support deny/exception
    
    Signed-off-by: Madhan Neethiraj <ma...@apache.org>
---
 .../scripts/views/policies/RangerPolicyCreate.js      | 10 ++++++----
 .../webapp/scripts/views/policies/RangerPolicyForm.js | 19 ++++++++++++++-----
 2 files changed, 20 insertions(+), 9 deletions(-)

diff --git a/security-admin/src/main/webapp/scripts/views/policies/RangerPolicyCreate.js b/security-admin/src/main/webapp/scripts/views/policies/RangerPolicyCreate.js
index b1e7a11a0..e6c262235 100644
--- a/security-admin/src/main/webapp/scripts/views/policies/RangerPolicyCreate.js
+++ b/security-admin/src/main/webapp/scripts/views/policies/RangerPolicyCreate.js
@@ -35,6 +35,7 @@ define(function(require){
 	var RangerPolicycreateTmpl = require('hbs!tmpl/policies/RangerPolicyCreate_tmpl');
 	var RangerPolicyForm = require('views/policies/RangerPolicyForm');
 	var RangerServiceDef	= require('models/RangerServiceDef');
+	var RangerServiceDefList = require('collections/RangerServiceDefList');
 	var Vent			 = require('modules/Vent');
 
 	var RangerPolicyCreate = Backbone.Marionette.Layout.extend(
@@ -130,6 +131,7 @@ define(function(require){
 				model : this.model,
 				rangerServiceDefModel : this.rangerServiceDefModel,
 				rangerService : this.rangerService,
+				rangerServiceDefList: this.RangerServiceDefList
 			});
 
 			this.editPolicy = this.model.has('id') ? true : false;
@@ -137,13 +139,13 @@ define(function(require){
 			this.params = {};
 		},
 		initializeServiceDef : function(){
-			
-			this.rangerServiceDefModel	= new RangerServiceDef();
-			this.rangerServiceDefModel.url = XAUtil.getRangerServiceDef(this.rangerService.get('type'));
-			this.rangerServiceDefModel.fetch({
+			var that = this
+			this.RangerServiceDefList = new RangerServiceDefList();
+			this.RangerServiceDefList.fetch({
 				cache : false,
 				async : false
 			});
+			this.rangerServiceDefModel = this.RangerServiceDefList.findWhere({'name' : that.rangerService.get('type')})
 		},
 
 		/** all events binding here */
diff --git a/security-admin/src/main/webapp/scripts/views/policies/RangerPolicyForm.js b/security-admin/src/main/webapp/scripts/views/policies/RangerPolicyForm.js
index 002621119..118dfe215 100644
--- a/security-admin/src/main/webapp/scripts/views/policies/RangerPolicyForm.js
+++ b/security-admin/src/main/webapp/scripts/views/policies/RangerPolicyForm.js
@@ -72,7 +72,7 @@ define(function(require){
 		},
 		initialize: function(options) {
 			console.log("initialized a RangerPolicyForm Form View");
-			_.extend(this, _.pick(options, 'rangerServiceDefModel', 'rangerService'));
+			_.extend(this, _.pick(options, 'rangerServiceDefModel', 'rangerService', 'rangerServiceDefList'));
     		Backbone.Form.prototype.initialize.call(this, options);
 
 			this.initializeCollection();
@@ -363,7 +363,16 @@ define(function(require){
 			if(enableDenyAndExceptionsInPolicies && this.$el.find(this.ui.isDenyAllElse).find('.toggle-slide').hasClass('active')){
 				this.$el.find(this.ui.denyConditionItems).hide();
 			}
-	
+			var enableDenyAndExceptions = accessType.filter(function(m){
+				if(!_.contains((that.rangerServiceDefList.map(function(m){
+					if(m.get('options').enableDenyAndExceptionsInPolicies == "false"){
+						return m.get("name")
+					}
+				})).filter(Boolean), m.name.substr(0,m.name.indexOf(":")))){
+					return m
+				}
+			})
+
                         that.$('[data-customfields="groupPerms"]').html(new PermissionList({
                                 collection : that.formInputList,
                                 model 	   : that.model,
@@ -377,7 +386,7 @@ define(function(require){
                                 that.$('[data-customfields="groupPermsAllowExclude"]').html(new PermissionList({
                                         collection : that.formInputAllowExceptionList,
                                         model 	   : that.model,
-                                        accessTypes: accessType,
+                                        accessTypes: that.rangerServiceDefModel.get('name') != XAEnums.ServiceType.SERVICE_TAG.label ? accessType : enableDenyAndExceptions,
                                         headerTitle: "",
                                         rangerServiceDefModel : that.rangerServiceDefModel,
                                         rangerPolicyType : that.model.get('policyType')
@@ -386,7 +395,7 @@ define(function(require){
                                 that.$('[data-customfields="groupPermsDeny"]').html(new PermissionList({
                                         collection : that.formInputDenyList,
                                         model 	   : that.model,
-                                        accessTypes: accessType,
+                                        accessTypes: that.rangerServiceDefModel.get('name') != XAEnums.ServiceType.SERVICE_TAG.label ? accessType : enableDenyAndExceptions,
                                         headerTitle: "Deny",
                                         rangerServiceDefModel : that.rangerServiceDefModel,
                                         rangerPolicyType : that.model.get('policyType')
@@ -394,7 +403,7 @@ define(function(require){
                                 that.$('[data-customfields="groupPermsDenyExclude"]').html(new PermissionList({
                                         collection : that.formInputDenyExceptionList,
                                         model 	   : that.model,
-                                        accessTypes: accessType,
+                                        accessTypes: that.rangerServiceDefModel.get('name') != XAEnums.ServiceType.SERVICE_TAG.label ? accessType : enableDenyAndExceptions,
                                         headerTitle: "Deny",
                                         rangerServiceDefModel : that.rangerServiceDefModel,
                                         rangerPolicyType : that.model.get('policyType')