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 2015/05/27 03:22:46 UTC
incubator-ranger git commit: RANGER-274: tag-based-policies: added
RangerServiceDef.options field
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 <ma...@apache.org>
Authored: Tue May 26 16:49:56 2015 -0700
Committer: Madhan Neethiraj <ma...@apache.org>
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)) {