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/10/27 17:36:13 UTC
(ranger) 01/03: RANGER-4035: DB schema update to persist XXAccessTypeDef.category - #2
This is an automated email from the ASF dual-hosted git repository.
madhan pushed a commit to branch RANGER-3923
in repository https://gitbox.apache.org/repos/asf/ranger.git
commit 932f96a91f86a2ade28b2a98e9ecd4406e4f4d81
Author: Madhan Neethiraj <ma...@apache.org>
AuthorDate: Wed Oct 25 23:01:00 2023 -0700
RANGER-4035: DB schema update to persist XXAccessTypeDef.category - #2
---
.../ranger/plugin/store/AbstractServiceStore.java | 1 +
.../optimized/current/ranger_core_db_mysql.sql | 1 +
.../optimized/current/ranger_core_db_postgres.sql | 1 +
.../org/apache/ranger/entity/XXAccessTypeDef.java | 102 ++++++---------------
.../service/RangerServiceDefServiceBase.java | 24 +++++
5 files changed, 57 insertions(+), 72 deletions(-)
diff --git a/agents-common/src/main/java/org/apache/ranger/plugin/store/AbstractServiceStore.java b/agents-common/src/main/java/org/apache/ranger/plugin/store/AbstractServiceStore.java
index dc786a457..5c06cd602 100644
--- a/agents-common/src/main/java/org/apache/ranger/plugin/store/AbstractServiceStore.java
+++ b/agents-common/src/main/java/org/apache/ranger/plugin/store/AbstractServiceStore.java
@@ -223,6 +223,7 @@ public abstract class AbstractServiceStore implements ServiceStore {
tagAccessType.setName(prefix + svcAccessType.getName());
tagAccessType.setLabel(svcAccessType.getLabel());
tagAccessType.setRbKeyLabel(svcAccessType.getRbKeyLabel());
+ tagAccessType.setCategory(svcAccessType.getCategory());
tagAccessType.setImpliedGrants(new HashSet<String>());
if (CollectionUtils.isNotEmpty(svcAccessType.getImpliedGrants())) {
diff --git a/security-admin/db/mysql/optimized/current/ranger_core_db_mysql.sql b/security-admin/db/mysql/optimized/current/ranger_core_db_mysql.sql
index 17092d486..1e0fe8745 100644
--- a/security-admin/db/mysql/optimized/current/ranger_core_db_mysql.sql
+++ b/security-admin/db/mysql/optimized/current/ranger_core_db_mysql.sql
@@ -794,6 +794,7 @@ CREATE TABLE `x_access_type_def` (
`name` varchar(1024) DEFAULT NULL,
`label` varchar(1024) DEFAULT NULL,
`rb_key_label` varchar(1024) DEFAULT NULL,
+`category` smallint DEFAULT NULL,
`sort_order` int DEFAULT 0,
`datamask_options` varchar(1024) NULL DEFAULT NULL,
`rowfilter_options` varchar(1024) NULL DEFAULT NULL,
diff --git a/security-admin/db/postgres/optimized/current/ranger_core_db_postgres.sql b/security-admin/db/postgres/optimized/current/ranger_core_db_postgres.sql
index 7371cd6d0..83286a952 100644
--- a/security-admin/db/postgres/optimized/current/ranger_core_db_postgres.sql
+++ b/security-admin/db/postgres/optimized/current/ranger_core_db_postgres.sql
@@ -731,6 +731,7 @@ item_id BIGINT NOT NULL,
name VARCHAR(1024) DEFAULT NULL NULL,
label VARCHAR(1024) DEFAULT NULL NULL,
rb_key_label VARCHAR(1024) DEFAULT NULL NULL,
+category SMALLINT DEFAULT NULL NULL,
sort_order INT DEFAULT '0' NULL,
datamask_options VARCHAR(1024) DEFAULT NULL NULL,
rowfilter_options VARCHAR(1024) DEFAULT NULL NULL,
diff --git a/security-admin/src/main/java/org/apache/ranger/entity/XXAccessTypeDef.java b/security-admin/src/main/java/org/apache/ranger/entity/XXAccessTypeDef.java
index 200a51d33..846479d89 100644
--- a/security-admin/src/main/java/org/apache/ranger/entity/XXAccessTypeDef.java
+++ b/security-admin/src/main/java/org/apache/ranger/entity/XXAccessTypeDef.java
@@ -19,6 +19,7 @@
package org.apache.ranger.entity;
import javax.persistence.*;
+import java.util.Objects;
@Entity
@Cacheable
@@ -82,6 +83,12 @@ public class XXAccessTypeDef extends XXDBBase implements java.io.Serializable {
@Column(name = "rb_key_label")
protected String rbKeyLabel;
+ /**
+ * category of the XXAccessTypeDef
+ */
+ @Column(name = "category")
+ protected Short category;
+
/**
* order of the XXAccessTypeDef
* <ul>
@@ -229,6 +236,14 @@ public class XXAccessTypeDef extends XXDBBase implements java.io.Serializable {
return this.rbKeyLabel;
}
+ public Short getCategory() {
+ return category;
+ }
+
+ public void setCategory(Short category) {
+ this.category = category;
+ }
+
/**
* This method sets the value to the member attribute <b> order</b> . You
* cannot set null to the attribute.
@@ -268,83 +283,26 @@ public class XXAccessTypeDef extends XXDBBase implements java.io.Serializable {
*/
@Override
public boolean equals(Object obj) {
- if (!super.equals(obj)) {
- return false;
- }
if (this == obj) {
return true;
- }
- if (!super.equals(obj)) {
+ } else if (getClass() != obj.getClass()) {
return false;
- }
- if (getClass() != obj.getClass()) {
+ } else if (!super.equals(obj)) {
return false;
}
+
XXAccessTypeDef other = (XXAccessTypeDef) obj;
- if (defId == null) {
- if (other.defId != null) {
- return false;
- }
- } else if (!defId.equals(other.defId)) {
- return false;
- }
- if (itemId == null) {
- if (other.itemId != null) {
- return false;
- }
- } else if (!itemId.equals(other.itemId)) {
- return false;
- }
- if (id == null) {
- if (other.id != null) {
- return false;
- }
- } else if (!id.equals(other.id)) {
- return false;
- }
- if (label == null) {
- if (other.label != null) {
- return false;
- }
- } else if (!label.equals(other.label)) {
- return false;
- }
- if (name == null) {
- if (other.name != null) {
- return false;
- }
- } else if (!name.equals(other.name)) {
- return false;
- }
- if (order == null) {
- if (other.order != null) {
- return false;
- }
- } else if (!order.equals(other.order)) {
- return false;
- }
- if (rbKeyLabel == null) {
- if (other.rbKeyLabel != null) {
- return false;
- }
- } else if (!rbKeyLabel.equals(other.rbKeyLabel)) {
- return false;
- }
- if (dataMaskOptions == null) {
- if (other.dataMaskOptions != null) {
- return false;
- }
- } else if (!dataMaskOptions.equals(other.dataMaskOptions)) {
- return false;
- }
- if (rowFilterOptions == null) {
- if (other.rowFilterOptions != null) {
- return false;
- }
- } else if (!rowFilterOptions.equals(other.rowFilterOptions)) {
- return false;
- }
- return true;
+
+ return Objects.equals(defId, other.defId) &&
+ Objects.equals(itemId, other.itemId) &&
+ Objects.equals(id, other.id) &&
+ Objects.equals(name, other.name) &&
+ Objects.equals(label, other.label) &&
+ Objects.equals(rbKeyLabel, other.rbKeyLabel) &&
+ Objects.equals(category, other.category) &&
+ Objects.equals(dataMaskOptions, other.dataMaskOptions) &&
+ Objects.equals(rowFilterOptions, other.rowFilterOptions) &&
+ Objects.equals(order, other.order);
}
/*
@@ -356,7 +314,7 @@ public class XXAccessTypeDef extends XXDBBase implements java.io.Serializable {
public String toString() {
return "XXAccessTypeDef [" + super.toString() + " id=" + id
+ ", defId=" + defId + ", itemId=" + itemId + ", name=" + name + ", label=" + label
- + ", rbKeyLabel=" + rbKeyLabel + ", dataMaskOptions=" + dataMaskOptions
+ + ", rbKeyLabel=" + rbKeyLabel + ", category=" + category + ", dataMaskOptions=" + dataMaskOptions
+ ", rowFilterOptions=" + rowFilterOptions + ", order=" + order + "]";
}
diff --git a/security-admin/src/main/java/org/apache/ranger/service/RangerServiceDefServiceBase.java b/security-admin/src/main/java/org/apache/ranger/service/RangerServiceDefServiceBase.java
index 86928193a..a0ba463e4 100644
--- a/security-admin/src/main/java/org/apache/ranger/service/RangerServiceDefServiceBase.java
+++ b/security-admin/src/main/java/org/apache/ranger/service/RangerServiceDefServiceBase.java
@@ -39,6 +39,7 @@ import org.apache.ranger.common.SearchField.SEARCH_TYPE;
import org.apache.ranger.entity.*;
import org.apache.ranger.plugin.model.RangerServiceDef;
import org.apache.ranger.plugin.model.RangerServiceDef.RangerAccessTypeDef;
+import org.apache.ranger.plugin.model.RangerServiceDef.RangerAccessTypeDef.AccessTypeCategory;
import org.apache.ranger.plugin.model.RangerServiceDef.RangerContextEnricherDef;
import org.apache.ranger.plugin.model.RangerServiceDef.RangerDataMaskDef;
import org.apache.ranger.plugin.model.RangerServiceDef.RangerDataMaskTypeDef;
@@ -410,6 +411,11 @@ public abstract class RangerServiceDefServiceBase<T extends XXServiceDefBase, V
xObj.setLabel(vObj.getLabel());
xObj.setRbkeylabel(vObj.getRbKeyLabel());
xObj.setOrder(AppConstants.DEFAULT_SORT_ORDER);
+
+ if (vObj.getCategory() != null) {
+ xObj.setCategory((short) vObj.getCategory().ordinal());
+ }
+
return xObj;
}
@@ -432,6 +438,10 @@ public abstract class RangerServiceDefServiceBase<T extends XXServiceDefBase, V
vObj.setRbKeyLabel(xObj.getRbkeylabel());
vObj.setImpliedGrants(impliedGrants);
+ if (xObj.getCategory() != null) {
+ vObj.setCategory(toAccessTypeCategory(xObj.getCategory()));
+ }
+
return vObj;
}
@@ -756,4 +766,18 @@ public abstract class RangerServiceDefServiceBase<T extends XXServiceDefBase, V
return ret;
}
+
+ private AccessTypeCategory toAccessTypeCategory(short val) {
+ AccessTypeCategory ret = null;
+
+ for (AccessTypeCategory category : AccessTypeCategory.values()) {
+ if (category.ordinal() == val) {
+ ret = category;
+
+ break;
+ }
+ }
+
+ return ret;
+ }
}