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 <mad...@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; + } }