Repository: incubator-ranger Updated Branches: refs/heads/tag-policy d61bce5c4 -> d8f7a9605
RANGER-274: tag-based-policies: added RangerServiceDef.options field Project: http://git-wip-us.apache.org/repos/asf/incubator-ranger/repo Commit: http://git-wip-us.apache.org/repos/asf/incubator-ranger/commit/d8f7a960 Tree: http://git-wip-us.apache.org/repos/asf/incubator-ranger/tree/d8f7a960 Diff: http://git-wip-us.apache.org/repos/asf/incubator-ranger/diff/d8f7a960 Branch: refs/heads/tag-policy Commit: d8f7a960540860137656ace18dd668f1465fd556 Parents: d61bce5 Author: Madhan Neethiraj <[email protected]> Authored: Tue May 26 16:49:56 2015 -0700 Committer: Madhan Neethiraj <[email protected]> Committed: Tue May 26 16:49:56 2015 -0700 ---------------------------------------------------------------------- .../RangerAbstractContextEnricher.java | 34 ++++++++-------- .../ranger/plugin/model/RangerServiceDef.java | 41 +++++++++++++++++++- .../RangerAbstractResourceMatcher.java | 37 +++++++++--------- .../service-defs/ranger-servicedef-_tag_.json | 4 ++ .../service-defs/ranger-servicedef-kms.json | 5 +++ .../ranger/plugin/store/TestServiceStore.java | 2 +- .../services/hbase/TestRangerServiceHBase.java | 2 +- .../services/hdfs/TestRangerServiceHdfs.java | 2 +- .../hive/client/TestRangerServiceHive.java | 2 +- .../knox/client/TestRangerServiceKnox.java | 2 +- .../db/mysql/patches/009-updated_schema.sql | 1 + .../db/oracle/patches/009-updated_schema.sql | 1 + .../db/postgres/xa_core_db_postgres.sql | 1 + .../db/sqlserver/xa_core_db_sqlserver.sql | 1 + .../org/apache/ranger/entity/XXServiceDef.java | 35 +++++++++++++++++ .../ranger/service/RangerServiceDefService.java | 2 + .../service/RangerServiceDefServiceBase.java | 6 ++- 17 files changed, 132 insertions(+), 46 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/incubator-ranger/blob/d8f7a960/agents-common/src/main/java/org/apache/ranger/plugin/contextenricher/RangerAbstractContextEnricher.java ---------------------------------------------------------------------- diff --git a/agents-common/src/main/java/org/apache/ranger/plugin/contextenricher/RangerAbstractContextEnricher.java b/agents-common/src/main/java/org/apache/ranger/plugin/contextenricher/RangerAbstractContextEnricher.java index 922cfea..72affda 100644 --- a/agents-common/src/main/java/org/apache/ranger/plugin/contextenricher/RangerAbstractContextEnricher.java +++ b/agents-common/src/main/java/org/apache/ranger/plugin/contextenricher/RangerAbstractContextEnricher.java @@ -41,7 +41,6 @@ public abstract class RangerAbstractContextEnricher implements RangerContextEnri protected String componentServiceName; protected RangerServiceDef componentServiceDef; - private Map<String, String> options = null; @Override public void setContextEnricherDef(RangerContextEnricherDef enricherDef) { @@ -54,8 +53,6 @@ public abstract class RangerAbstractContextEnricher implements RangerContextEnri LOG.debug("==> RangerAbstractContextEnricher.init(" + enricherDef + ")"); } - options = enricherDef.getEnricherOptions(); - if(LOG.isDebugEnabled()) { LOG.debug("<== RangerAbstractContextEnricher.init(" + enricherDef + ")"); } @@ -84,6 +81,8 @@ public abstract class RangerAbstractContextEnricher implements RangerContextEnri public String getOption(String name) { String ret = null; + Map<String, String> options = enricherDef != null ? enricherDef.getEnricherOptions() : null; + if(options != null && name != null) { ret = options.get(name); } @@ -92,35 +91,34 @@ public abstract class RangerAbstractContextEnricher implements RangerContextEnri } public String getOption(String name, String defaultValue) { - String ret = getOption(name); - - if(StringUtils.isEmpty(ret)) { - ret = defaultValue; - } - - return ret; - } - - public boolean getBooleanOption(String name) { + String ret = defaultValue; String val = getOption(name); - boolean ret = StringUtils.isEmpty(val) ? false : Boolean.parseBoolean(val); + if(val != null) { + ret = val; + } return ret; } public boolean getBooleanOption(String name, boolean defaultValue) { - String strVal = getOption(name); + boolean ret = defaultValue; + String val = getOption(name); - boolean ret = StringUtils.isEmpty(strVal) ? defaultValue : Boolean.parseBoolean(strVal); + if(val != null) { + ret = Boolean.parseBoolean(val); + } return ret; } public char getCharOption(String name, char defaultValue) { - String strVal = getOption(name); + char ret = defaultValue; + String val = getOption(name); - char ret = StringUtils.isEmpty(strVal) ? defaultValue : strVal.charAt(0); + if(! StringUtils.isEmpty(val)) { + ret = val.charAt(0); + } return ret; } http://git-wip-us.apache.org/repos/asf/incubator-ranger/blob/d8f7a960/agents-common/src/main/java/org/apache/ranger/plugin/model/RangerServiceDef.java ---------------------------------------------------------------------- diff --git a/agents-common/src/main/java/org/apache/ranger/plugin/model/RangerServiceDef.java b/agents-common/src/main/java/org/apache/ranger/plugin/model/RangerServiceDef.java index 49ee3a1..cd69320 100644 --- a/agents-common/src/main/java/org/apache/ranger/plugin/model/RangerServiceDef.java +++ b/agents-common/src/main/java/org/apache/ranger/plugin/model/RangerServiceDef.java @@ -49,6 +49,7 @@ public class RangerServiceDef extends RangerBaseModelObject implements java.io.S private String description = null; private String rbKeyLabel = null; private String rbKeyDescription = null; + private Map<String, String> options = null; private List<RangerServiceConfigDef> configs = null; private List<RangerResourceDef> resources = null; private List<RangerAccessTypeDef> accessTypes = null; @@ -58,7 +59,7 @@ public class RangerServiceDef extends RangerBaseModelObject implements java.io.S public RangerServiceDef() { - this(null, null, null, null, null, null, null, null, null, null); + this(null, null, null, null, null, null, null, null, null, null, null); } /** @@ -66,6 +67,7 @@ public class RangerServiceDef extends RangerBaseModelObject implements java.io.S * @param implClass * @param label * @param description + * @param options * @param configs * @param resources * @param accessTypes @@ -73,7 +75,7 @@ public class RangerServiceDef extends RangerBaseModelObject implements java.io.S * @param contextEnrichers * @param enums */ - public RangerServiceDef(String name, String implClass, String label, String description, List<RangerServiceConfigDef> configs, List<RangerResourceDef> resources, List<RangerAccessTypeDef> accessTypes, List<RangerPolicyConditionDef> policyConditions, List<RangerContextEnricherDef> contextEnrichers, List<RangerEnumDef> enums) { + public RangerServiceDef(String name, String implClass, String label, String description, Map<String, String> options, List<RangerServiceConfigDef> configs, List<RangerResourceDef> resources, List<RangerAccessTypeDef> accessTypes, List<RangerPolicyConditionDef> policyConditions, List<RangerContextEnricherDef> contextEnrichers, List<RangerEnumDef> enums) { super(); setName(name); @@ -81,6 +83,7 @@ public class RangerServiceDef extends RangerBaseModelObject implements java.io.S setLabel(label); setDescription(description); setConfigs(configs); + setOptions(options); setResources(resources); setAccessTypes(accessTypes); setPolicyConditions(policyConditions); @@ -218,6 +221,32 @@ public class RangerServiceDef extends RangerBaseModelObject implements java.io.S } /** + * @return the options + */ + public Map<String, String> getOptions() { + return options; + } + + /** + * @param options the options to set + */ + public void setOptions(Map<String, String> options) { + if(this.options == null) { + this.options = new HashMap<String, String>(); + } else if(this.options == options) { + return; + } + + this.options.clear(); + + if(options != null) { + for(Map.Entry<String, String> entry : options.entrySet()) { + this.options.put(entry.getKey(), entry.getValue()); + } + } + } + + /** * @return the resources */ public List<RangerResourceDef> getResources() { @@ -378,6 +407,14 @@ public class RangerServiceDef extends RangerBaseModelObject implements java.io.S sb.append("rbKeyLabel={").append(rbKeyLabel).append("} "); sb.append("rbKeyDescription={").append(rbKeyDescription).append("} "); + sb.append("options={"); + if(options != null) { + for(Map.Entry<String, String> entry : options.entrySet()) { + sb.append(entry.getKey()).append("=").append(entry.getValue()).append(" "); + } + } + sb.append("} "); + sb.append("configs={"); if(configs != null) { for(RangerServiceConfigDef config : configs) { http://git-wip-us.apache.org/repos/asf/incubator-ranger/blob/d8f7a960/agents-common/src/main/java/org/apache/ranger/plugin/resourcematcher/RangerAbstractResourceMatcher.java ---------------------------------------------------------------------- diff --git a/agents-common/src/main/java/org/apache/ranger/plugin/resourcematcher/RangerAbstractResourceMatcher.java b/agents-common/src/main/java/org/apache/ranger/plugin/resourcematcher/RangerAbstractResourceMatcher.java index 9e547f1..56c4cfb 100644 --- a/agents-common/src/main/java/org/apache/ranger/plugin/resourcematcher/RangerAbstractResourceMatcher.java +++ b/agents-common/src/main/java/org/apache/ranger/plugin/resourcematcher/RangerAbstractResourceMatcher.java @@ -43,7 +43,6 @@ public abstract class RangerAbstractResourceMatcher implements RangerResourceMat protected RangerResourceDef resourceDef = null; protected RangerPolicyResource policyResource = null; - protected Map<String, String> options = null; protected boolean optIgnoreCase = false; protected boolean optWildCard = false; @@ -55,7 +54,6 @@ public abstract class RangerAbstractResourceMatcher implements RangerResourceMat @Override public void setResourceDef(RangerResourceDef resourceDef) { this.resourceDef = resourceDef; - this.options = resourceDef != null ? resourceDef.getMatcherOptions() : null; } @Override @@ -133,6 +131,8 @@ public abstract class RangerAbstractResourceMatcher implements RangerResourceMat public String getOption(String name) { String ret = null; + Map<String, String> options = resourceDef != null ? resourceDef.getMatcherOptions() : null; + if(options != null && name != null) { ret = options.get(name); } @@ -141,35 +141,34 @@ public abstract class RangerAbstractResourceMatcher implements RangerResourceMat } public String getOption(String name, String defaultValue) { - String ret = getOption(name); - - if(StringUtils.isEmpty(ret)) { - ret = defaultValue; - } - - return ret; - } - - public boolean getBooleanOption(String name) { + String ret = defaultValue; String val = getOption(name); - boolean ret = StringUtils.isEmpty(val) ? false : Boolean.parseBoolean(val); + if(val != null) { + ret = val; + } return ret; } public boolean getBooleanOption(String name, boolean defaultValue) { - String strVal = getOption(name); + boolean ret = defaultValue; + String val = getOption(name); - boolean ret = StringUtils.isEmpty(strVal) ? defaultValue : Boolean.parseBoolean(strVal); + if(val != null) { + ret = Boolean.parseBoolean(val); + } return ret; } public char getCharOption(String name, char defaultValue) { - String strVal = getOption(name); + char ret = defaultValue; + String val = getOption(name); - char ret = StringUtils.isEmpty(strVal) ? defaultValue : strVal.charAt(0); + if(! StringUtils.isEmpty(val)) { + ret = val.charAt(0); + } return ret; } @@ -211,8 +210,8 @@ public abstract class RangerAbstractResourceMatcher implements RangerResourceMat sb.append("isMatchAny={").append(isMatchAny).append("} "); sb.append("options={"); - if(options != null) { - for(Map.Entry<String, String> e : options.entrySet()) { + if(resourceDef != null && resourceDef.getMatcherOptions() != null) { + for(Map.Entry<String, String> e : resourceDef.getMatcherOptions().entrySet()) { sb.append(e.getKey()).append("=").append(e.getValue()).append(OPTIONS_SEP); } } http://git-wip-us.apache.org/repos/asf/incubator-ranger/blob/d8f7a960/agents-common/src/main/resources/service-defs/ranger-servicedef-_tag_.json ---------------------------------------------------------------------- diff --git a/agents-common/src/main/resources/service-defs/ranger-servicedef-_tag_.json b/agents-common/src/main/resources/service-defs/ranger-servicedef-_tag_.json index a20d467..e0ae0bc 100644 --- a/agents-common/src/main/resources/service-defs/ranger-servicedef-_tag_.json +++ b/agents-common/src/main/resources/service-defs/ranger-servicedef-_tag_.json @@ -4,6 +4,10 @@ "label": "TAG", "description": "TAG Service Definition", "guid": "0d047248-baff-4cf9-8e9e-d5d377284b2e", + "options": + { + "ui.pages":"tag-based-policies" + }, "resources": [ { http://git-wip-us.apache.org/repos/asf/incubator-ranger/blob/d8f7a960/agents-common/src/main/resources/service-defs/ranger-servicedef-kms.json ---------------------------------------------------------------------- diff --git a/agents-common/src/main/resources/service-defs/ranger-servicedef-kms.json b/agents-common/src/main/resources/service-defs/ranger-servicedef-kms.json index 35d36e5..491cd17 100755 --- a/agents-common/src/main/resources/service-defs/ranger-servicedef-kms.json +++ b/agents-common/src/main/resources/service-defs/ranger-servicedef-kms.json @@ -3,6 +3,11 @@ "implClass": "org.apache.ranger.services.kms.RangerServiceKMS", "label": "KMS", "description": "KMS", + "options": + { + "ui.pages":"encryption", + "security.allowed.roles":"keyadmin" + }, "resources": [ { http://git-wip-us.apache.org/repos/asf/incubator-ranger/blob/d8f7a960/agents-common/src/test/java/org/apache/ranger/plugin/store/TestServiceStore.java ---------------------------------------------------------------------- diff --git a/agents-common/src/test/java/org/apache/ranger/plugin/store/TestServiceStore.java b/agents-common/src/test/java/org/apache/ranger/plugin/store/TestServiceStore.java index 59bbb25..6a759a3 100644 --- a/agents-common/src/test/java/org/apache/ranger/plugin/store/TestServiceStore.java +++ b/agents-common/src/test/java/org/apache/ranger/plugin/store/TestServiceStore.java @@ -91,7 +91,7 @@ public class TestServiceStore { int initSdCount = sds == null ? 0 : sds.size(); - RangerServiceDef sd = new RangerServiceDef(sdName, "org.apache.ranger.services.TestService", "TestService", "test servicedef description", null, null, null, null, null, null); + RangerServiceDef sd = new RangerServiceDef(sdName, "org.apache.ranger.services.TestService", "TestService", "test servicedef description", null, null, null, null, null, null, null); RangerServiceDef createdSd = svcStore.createServiceDef(sd); assertNotNull("createServiceDef() failed", createdSd != null); http://git-wip-us.apache.org/repos/asf/incubator-ranger/blob/d8f7a960/hbase-agent/src/test/java/org/apache/ranger/services/hbase/TestRangerServiceHBase.java ---------------------------------------------------------------------- diff --git a/hbase-agent/src/test/java/org/apache/ranger/services/hbase/TestRangerServiceHBase.java b/hbase-agent/src/test/java/org/apache/ranger/services/hbase/TestRangerServiceHBase.java index 6340204..e723392 100644 --- a/hbase-agent/src/test/java/org/apache/ranger/services/hbase/TestRangerServiceHBase.java +++ b/hbase-agent/src/test/java/org/apache/ranger/services/hbase/TestRangerServiceHBase.java @@ -57,7 +57,7 @@ public class TestRangerServiceHBase { buildHbaseConnectionConfig(); buildLookupContext(); - sd = new RangerServiceDef(sdName, "org.apache.ranger.services.hbase.RangerServiceHBase", "TestService", "test servicedef description", null, null, null, null, null, null); + sd = new RangerServiceDef(sdName, "org.apache.ranger.services.hbase.RangerServiceHBase", "TestService", "test servicedef description", null, null, null, null, null, null, null); svc = new RangerService(sdName, serviceName, "unit test hbase resource lookup and validateConfig", null, configs); svcHBase = new RangerServiceHBase(); svcHBase.init(sd, svc); http://git-wip-us.apache.org/repos/asf/incubator-ranger/blob/d8f7a960/hdfs-agent/src/test/java/org/apache/ranger/services/hdfs/TestRangerServiceHdfs.java ---------------------------------------------------------------------- diff --git a/hdfs-agent/src/test/java/org/apache/ranger/services/hdfs/TestRangerServiceHdfs.java b/hdfs-agent/src/test/java/org/apache/ranger/services/hdfs/TestRangerServiceHdfs.java index 0af6a3f..377b7e5 100644 --- a/hdfs-agent/src/test/java/org/apache/ranger/services/hdfs/TestRangerServiceHdfs.java +++ b/hdfs-agent/src/test/java/org/apache/ranger/services/hdfs/TestRangerServiceHdfs.java @@ -55,7 +55,7 @@ public class TestRangerServiceHdfs { buildHdfsConnectionConfig(); buildLookupContext(); - sd = new RangerServiceDef(sdName, "org.apache.ranger.service.hdfs.RangerServiceHdfs", "TestService", "test servicedef description", null, null, null, null, null, null); + sd = new RangerServiceDef(sdName, "org.apache.ranger.service.hdfs.RangerServiceHdfs", "TestService", "test servicedef description", null, null, null, null, null, null, null); svc = new RangerService(sdName, serviceName, "unit test hdfs resource lookup and validateConfig", null, configs); svcHdfs = new RangerServiceHdfs(); svcHdfs.init(sd, svc); http://git-wip-us.apache.org/repos/asf/incubator-ranger/blob/d8f7a960/hive-agent/src/test/java/org/apache/ranger/services/hive/client/TestRangerServiceHive.java ---------------------------------------------------------------------- diff --git a/hive-agent/src/test/java/org/apache/ranger/services/hive/client/TestRangerServiceHive.java b/hive-agent/src/test/java/org/apache/ranger/services/hive/client/TestRangerServiceHive.java index d65d3b7..a676b13 100644 --- a/hive-agent/src/test/java/org/apache/ranger/services/hive/client/TestRangerServiceHive.java +++ b/hive-agent/src/test/java/org/apache/ranger/services/hive/client/TestRangerServiceHive.java @@ -56,7 +56,7 @@ public class TestRangerServiceHive { buildHbaseConnectionConfig(); buildLookupContext(); - sd = new RangerServiceDef(sdName, "org.apache.ranger.services.hive.RangerServiceHive", "TestHiveService", "test servicedef description", null, null, null, null, null, null); + sd = new RangerServiceDef(sdName, "org.apache.ranger.services.hive.RangerServiceHive", "TestHiveService", "test servicedef description", null, null, null, null, null, null, null); svc = new RangerService(sdName, serviceName, "unit test hive resource lookup and validateConfig", null, configs); svcHive = new RangerServiceHive(); svcHive.init(sd, svc); http://git-wip-us.apache.org/repos/asf/incubator-ranger/blob/d8f7a960/knox-agent/src/test/java/org/apache/ranger/services/knox/client/TestRangerServiceKnox.java ---------------------------------------------------------------------- diff --git a/knox-agent/src/test/java/org/apache/ranger/services/knox/client/TestRangerServiceKnox.java b/knox-agent/src/test/java/org/apache/ranger/services/knox/client/TestRangerServiceKnox.java index e931aea..3e04cf3 100644 --- a/knox-agent/src/test/java/org/apache/ranger/services/knox/client/TestRangerServiceKnox.java +++ b/knox-agent/src/test/java/org/apache/ranger/services/knox/client/TestRangerServiceKnox.java @@ -58,7 +58,7 @@ public class TestRangerServiceKnox { buildHbaseConnectionConfig(); buildLookupContext(); - sd = new RangerServiceDef(sdName, " org.apache.ranger.services.knox.RangerServiceKnox", "TestKnoxService", "test Knox servicedef description", null, null, null, null, null, null); + sd = new RangerServiceDef(sdName, " org.apache.ranger.services.knox.RangerServiceKnox", "TestKnoxService", "test Knox servicedef description", null, null, null, null, null, null, null); svc = new RangerService(sdName, serviceName, "unit test Knox resource lookup and validateConfig", null, configs); svcKnox = new RangerServiceKnox(); svcKnox.init(sd, svc); http://git-wip-us.apache.org/repos/asf/incubator-ranger/blob/d8f7a960/security-admin/db/mysql/patches/009-updated_schema.sql ---------------------------------------------------------------------- diff --git a/security-admin/db/mysql/patches/009-updated_schema.sql b/security-admin/db/mysql/patches/009-updated_schema.sql index 2c14bc9..b0f8432 100644 --- a/security-admin/db/mysql/patches/009-updated_schema.sql +++ b/security-admin/db/mysql/patches/009-updated_schema.sql @@ -29,6 +29,7 @@ CREATE TABLE `x_service_def` ( `impl_class_name` varchar(1024) DEFAULT NULL, `label` varchar(1024) DEFAULT NULL, `description` varchar(1024) DEFAULT NULL, +`options` varchar(1024) DEFAULT NULL, `rb_key_label` varchar(1024) DEFAULT NULL, `rb_key_description` varchar(1024) DEFAULT NULL, `is_enabled` tinyint DEFAULT 1, http://git-wip-us.apache.org/repos/asf/incubator-ranger/blob/d8f7a960/security-admin/db/oracle/patches/009-updated_schema.sql ---------------------------------------------------------------------- diff --git a/security-admin/db/oracle/patches/009-updated_schema.sql b/security-admin/db/oracle/patches/009-updated_schema.sql index 11946bf..ed47237 100644 --- a/security-admin/db/oracle/patches/009-updated_schema.sql +++ b/security-admin/db/oracle/patches/009-updated_schema.sql @@ -46,6 +46,7 @@ name VARCHAR(1024) DEFAULT NULL NULL, impl_class_name VARCHAR(1024) DEFAULT NULL NULL, label VARCHAR(1024) DEFAULT NULL NULL, description VARCHAR(1024) DEFAULT NULL NULL, +options VARCHAR(1024) DEFAULT NULL NULL, rb_key_label VARCHAR(1024) DEFAULT NULL NULL, rb_key_description VARCHAR(1024) DEFAULT NULL NULL, is_enabled NUMBER(1) DEFAULT '1' NULL, http://git-wip-us.apache.org/repos/asf/incubator-ranger/blob/d8f7a960/security-admin/db/postgres/xa_core_db_postgres.sql ---------------------------------------------------------------------- diff --git a/security-admin/db/postgres/xa_core_db_postgres.sql b/security-admin/db/postgres/xa_core_db_postgres.sql index 3530490..f995d56 100644 --- a/security-admin/db/postgres/xa_core_db_postgres.sql +++ b/security-admin/db/postgres/xa_core_db_postgres.sql @@ -473,6 +473,7 @@ name VARCHAR(1024) DEFAULT NULL NULL, impl_class_name VARCHAR(1024) DEFAULT NULL NULL, label VARCHAR(1024) DEFAULT NULL NULL, description VARCHAR(1024) DEFAULT NULL NULL, +options VARCHAR(1024) DEFAULT NULL NULL, rb_key_label VARCHAR(1024) DEFAULT NULL NULL, rb_key_description VARCHAR(1024) DEFAULT NULL NULL, is_enabled BOOLEAN DEFAULT '1' NULL, http://git-wip-us.apache.org/repos/asf/incubator-ranger/blob/d8f7a960/security-admin/db/sqlserver/xa_core_db_sqlserver.sql ---------------------------------------------------------------------- diff --git a/security-admin/db/sqlserver/xa_core_db_sqlserver.sql b/security-admin/db/sqlserver/xa_core_db_sqlserver.sql index 6553085..7bf5b04 100644 --- a/security-admin/db/sqlserver/xa_core_db_sqlserver.sql +++ b/security-admin/db/sqlserver/xa_core_db_sqlserver.sql @@ -1759,6 +1759,7 @@ CREATE TABLE [dbo].[x_service_def]( [impl_class_name] [varchar](1024) DEFAULT NULL NULL, [label] [varchar](1024) DEFAULT NULL NULL, [description] [varchar](1024) DEFAULT NULL NULL, + [options] [varchar](1024) DEFAULT NULL NULL, [rb_key_label] [varchar](1024) DEFAULT NULL NULL, [rb_key_description] [varchar](1024) DEFAULT NULL NULL, [is_enabled] [tinyint] DEFAULT 1 NULL, http://git-wip-us.apache.org/repos/asf/incubator-ranger/blob/d8f7a960/security-admin/src/main/java/org/apache/ranger/entity/XXServiceDef.java ---------------------------------------------------------------------- diff --git a/security-admin/src/main/java/org/apache/ranger/entity/XXServiceDef.java b/security-admin/src/main/java/org/apache/ranger/entity/XXServiceDef.java index 4e52eb9..6f79432 100644 --- a/security-admin/src/main/java/org/apache/ranger/entity/XXServiceDef.java +++ b/security-admin/src/main/java/org/apache/ranger/entity/XXServiceDef.java @@ -94,6 +94,15 @@ public class XXServiceDef extends XXDBBase implements java.io.Serializable { protected String description; /** + * options of the XXServiceDef + * <ul> + * </ul> + * + */ + @Column(name = "options") + protected String options; + + /** * rbKeyLabel of the XXServiceDef * <ul> * </ul> @@ -255,6 +264,25 @@ public class XXServiceDef extends XXDBBase implements java.io.Serializable { } /** + * This method sets the value to the member attribute <b> options</b> . + * + * @param options + * Value to set member attribute <b> options</b> + */ + public void setOptions(String options) { + this.options = options; + } + + /** + * Returns the value for the member attribute <b>options</b> + * + * @return String - value of member attribute <b>options</b> . + */ + public String getOptions() { + return this.options; + } + + /** * This method sets the value to the member attribute <b> rbKeyLabel</b> . * You cannot set null to the attribute. * @@ -373,6 +401,13 @@ public class XXServiceDef extends XXDBBase implements java.io.Serializable { } else if (!name.equals(other.name)) { return false; } + if (options == null) { + if (other.options != null) { + return false; + } + } else if (!options.equals(other.options)) { + return false; + } if (rbKeyDescription == null) { if (other.rbKeyDescription != null) { return false; http://git-wip-us.apache.org/repos/asf/incubator-ranger/blob/d8f7a960/security-admin/src/main/java/org/apache/ranger/service/RangerServiceDefService.java ---------------------------------------------------------------------- diff --git a/security-admin/src/main/java/org/apache/ranger/service/RangerServiceDefService.java b/security-admin/src/main/java/org/apache/ranger/service/RangerServiceDefService.java index f1a1034..591b245 100644 --- a/security-admin/src/main/java/org/apache/ranger/service/RangerServiceDefService.java +++ b/security-admin/src/main/java/org/apache/ranger/service/RangerServiceDefService.java @@ -77,6 +77,8 @@ public class RangerServiceDefService extends RangerServiceDefServiceBase<XXServi protected RangerServiceDef populateViewBean(XXServiceDef xServiceDef) { RangerServiceDef serviceDef = super.populateViewBean(xServiceDef); Long serviceDefId = xServiceDef.getId(); + + serviceDef.setOptions(jsonStringToMap(xServiceDef.getOptions())); List<XXServiceConfigDef> xConfigs = daoMgr.getXXServiceConfigDef().findByServiceDefId(serviceDefId); if (!stringUtil.isEmpty(xConfigs)) { http://git-wip-us.apache.org/repos/asf/incubator-ranger/blob/d8f7a960/security-admin/src/main/java/org/apache/ranger/service/RangerServiceDefServiceBase.java ---------------------------------------------------------------------- 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 f6a24aa..8df8c44 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 @@ -75,6 +75,7 @@ public abstract class RangerServiceDefServiceBase<T extends XXServiceDef, V exte xObj.setImplclassname(vObj.getImplClass()); xObj.setLabel(vObj.getLabel()); xObj.setDescription(vObj.getDescription()); + xObj.setOptions(mapToJsonString(vObj.getOptions())); xObj.setRbkeylabel(vObj.getRbKeyLabel()); xObj.setRbkeydescription(vObj.getRbKeyDescription()); xObj.setIsEnabled(vObj.getIsEnabled()); @@ -90,6 +91,7 @@ public abstract class RangerServiceDefServiceBase<T extends XXServiceDef, V exte vObj.setImplClass(xObj.getImplclassname()); vObj.setLabel(xObj.getLabel()); vObj.setDescription(xObj.getDescription()); + vObj.setOptions(jsonStringToMap(xObj.getOptions())); vObj.setRbKeyLabel(xObj.getRbkeylabel()); vObj.setRbKeyDescription(xObj.getRbkeydescription()); vObj.setIsEnabled(xObj.getIsEnabled()); @@ -372,7 +374,7 @@ public abstract class RangerServiceDefServiceBase<T extends XXServiceDef, V exte return retList; } - private String mapToJsonString(Map<String, String> map) { + protected String mapToJsonString(Map<String, String> map) { String ret = null; if(map != null) { @@ -386,7 +388,7 @@ public abstract class RangerServiceDefServiceBase<T extends XXServiceDef, V exte return ret; } - private Map<String, String> jsonStringToMap(String jsonStr) { + protected Map<String, String> jsonStringToMap(String jsonStr) { Map<String, String> ret = null; if(!StringUtils.isEmpty(jsonStr)) {
