Repository: incubator-ranger Updated Branches: refs/heads/stack 0f177a62c -> 121e577ee
RANGER-203: Add deserializer for Map<String,String> Project: http://git-wip-us.apache.org/repos/asf/incubator-ranger/repo Commit: http://git-wip-us.apache.org/repos/asf/incubator-ranger/commit/121e577e Tree: http://git-wip-us.apache.org/repos/asf/incubator-ranger/tree/121e577e Diff: http://git-wip-us.apache.org/repos/asf/incubator-ranger/diff/121e577e Branch: refs/heads/stack Commit: 121e577ee17c34d8ab7a7fa7a2518d2e8038f37b Parents: 0f177a6 Author: Gautam Borad <[email protected]> Authored: Tue Jan 6 10:31:02 2015 -0800 Committer: Madhan Neethiraj <[email protected]> Committed: Tue Jan 6 10:31:02 2015 -0800 ---------------------------------------------------------------------- .../manager/CustomizedMapDeserializer.java | 34 ++++++++++++++++++++ .../ranger/plugin/model/RangerService.java | 3 ++ .../service-defs/ranger-servicedef-hbase.json | 6 ++-- .../service-defs/ranger-servicedef-hdfs.json | 2 +- .../service-defs/ranger-servicedef-hive.json | 8 ++--- .../service-defs/ranger-servicedef-knox.json | 4 +-- .../service-defs/ranger-servicedef-storm.json | 2 +- .../scripts/views/policies/GroupPermList.js | 2 +- .../views/policies/RangerPolicyCreate.js | 4 ++- .../scripts/views/policies/UserPermList.js | 2 +- .../webapp/scripts/views/service/ServiceForm.js | 10 +++--- .../main/webapp/templates/helpers/XAHelpers.js | 6 ++-- 12 files changed, 62 insertions(+), 21 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/incubator-ranger/blob/121e577e/plugin-common/src/main/java/org/apache/ranger/plugin/manager/CustomizedMapDeserializer.java ---------------------------------------------------------------------- diff --git a/plugin-common/src/main/java/org/apache/ranger/plugin/manager/CustomizedMapDeserializer.java b/plugin-common/src/main/java/org/apache/ranger/plugin/manager/CustomizedMapDeserializer.java new file mode 100644 index 0000000..268d70f --- /dev/null +++ b/plugin-common/src/main/java/org/apache/ranger/plugin/manager/CustomizedMapDeserializer.java @@ -0,0 +1,34 @@ +package org.apache.ranger.plugin.manager; + + +import java.io.IOException; +import java.util.HashMap; +import java.util.Map; + +import org.codehaus.jackson.JsonParser; +import org.codehaus.jackson.JsonProcessingException; +import org.codehaus.jackson.JsonToken; +import org.codehaus.jackson.map.DeserializationContext; +import org.codehaus.jackson.map.JsonDeserializer; +import org.codehaus.jackson.map.ObjectMapper; +import org.codehaus.jackson.type.TypeReference; + + +/** + * Created by gautam on 06/01/15. + */ +public class CustomizedMapDeserializer extends JsonDeserializer<Map<Object, Object>> { + + @Override + public Map<Object, Object> deserialize(JsonParser jp, DeserializationContext arg1) throws IOException, + JsonProcessingException { + ObjectMapper mapper = (ObjectMapper) jp.getCodec(); + if (jp.getCurrentToken().equals(JsonToken.START_OBJECT)) { + return mapper.readValue(jp, new TypeReference<Map<Object, Object>>() { }); + } else { + // consume this stream + mapper.readTree(jp); + return new HashMap<Object, Object>(); + } + } +} http://git-wip-us.apache.org/repos/asf/incubator-ranger/blob/121e577e/plugin-common/src/main/java/org/apache/ranger/plugin/model/RangerService.java ---------------------------------------------------------------------- diff --git a/plugin-common/src/main/java/org/apache/ranger/plugin/model/RangerService.java b/plugin-common/src/main/java/org/apache/ranger/plugin/model/RangerService.java index 9bdb086..65de02a 100644 --- a/plugin-common/src/main/java/org/apache/ranger/plugin/model/RangerService.java +++ b/plugin-common/src/main/java/org/apache/ranger/plugin/model/RangerService.java @@ -26,9 +26,11 @@ import javax.xml.bind.annotation.XmlAccessType; import javax.xml.bind.annotation.XmlAccessorType; import javax.xml.bind.annotation.XmlRootElement; +import org.apache.ranger.plugin.manager.CustomizedMapDeserializer; import org.codehaus.jackson.annotate.JsonAutoDetect; import org.codehaus.jackson.annotate.JsonIgnoreProperties; import org.codehaus.jackson.annotate.JsonAutoDetect.Visibility; +import org.codehaus.jackson.map.annotate.JsonDeserialize; import org.codehaus.jackson.map.annotate.JsonSerialize; @@ -44,6 +46,7 @@ public class RangerService extends RangerBaseModelObject implements java.io.Seri private String name = null; private String description = null; private Boolean isEnabled = null; + @JsonDeserialize(using = CustomizedMapDeserializer.class) private Map<String, String> configs = null; http://git-wip-us.apache.org/repos/asf/incubator-ranger/blob/121e577e/plugin-common/src/main/resources/service-defs/ranger-servicedef-hbase.json ---------------------------------------------------------------------- diff --git a/plugin-common/src/main/resources/service-defs/ranger-servicedef-hbase.json b/plugin-common/src/main/resources/service-defs/ranger-servicedef-hbase.json index 070ba2a..04127bb 100644 --- a/plugin-common/src/main/resources/service-defs/ranger-servicedef-hbase.json +++ b/plugin-common/src/main/resources/service-defs/ranger-servicedef-hbase.json @@ -33,9 +33,9 @@ ], "resources": [ - {"name":"table","type":"string","level":1,"parent":"","mandatory":true,"lookupSupported":true,"matcher":"org.apache.ranger.plugin.resourcematcher.RangerDefaultResourceMatcher","matcherOptions":"wildCard=true;ignoreCase=true","label":"HBase Table","description":"HBase Table"}, - {"name":"column-family","type":"string","level":2,"parent":"table","mandatory":true,"lookupSupported":true,"matcher":"org.apache.ranger.plugin.resourcematcher.RangerDefaultResourceMatcher","matcherOptions":"wildCard=true;ignoreCase=true","label":"HBase Column-family","description":"HBase Column-family"}, - {"name":"column","type":"string","level":3,"parent":"column-family","mandatory":true,"lookupSupported":false,"matcher":"org.apache.ranger.plugin.resourcematcher.RangerDefaultResourceMatcher","matcherOptions":"wildCard=true;ignoreCase=true","label":"HBase Column","description":"HBase Column"} + {"name":"table","type":"select2","level":1,"parent":"","mandatory":true,"lookupSupported":true,"matcher":"org.apache.ranger.plugin.resourcematcher.RangerDefaultResourceMatcher","matcherOptions":"wildCard=true;ignoreCase=true","label":"HBase Table","description":"HBase Table"}, + {"name":"column-family","type":"select2","level":2,"parent":"table","mandatory":true,"lookupSupported":true,"matcher":"org.apache.ranger.plugin.resourcematcher.RangerDefaultResourceMatcher","matcherOptions":"wildCard=true;ignoreCase=true","label":"HBase Column-family","description":"HBase Column-family"}, + {"name":"column","type":"select2","level":3,"parent":"column-family","mandatory":true,"lookupSupported":false,"matcher":"org.apache.ranger.plugin.resourcematcher.RangerDefaultResourceMatcher","matcherOptions":"wildCard=true;ignoreCase=true","label":"HBase Column","description":"HBase Column"} ], "accessTypes": [ http://git-wip-us.apache.org/repos/asf/incubator-ranger/blob/121e577e/plugin-common/src/main/resources/service-defs/ranger-servicedef-hdfs.json ---------------------------------------------------------------------- diff --git a/plugin-common/src/main/resources/service-defs/ranger-servicedef-hdfs.json b/plugin-common/src/main/resources/service-defs/ranger-servicedef-hdfs.json index 8387268..20ae6b9 100644 --- a/plugin-common/src/main/resources/service-defs/ranger-servicedef-hdfs.json +++ b/plugin-common/src/main/resources/service-defs/ranger-servicedef-hdfs.json @@ -45,7 +45,7 @@ ], "resources": [ - {"name":"path","type":"string","level":1,"mandatory":true,"lookupSupported":true,"matcher":"org.apache.ranger.plugin.resourcematcher.RangerPathResourceMatcher","matcherOptions":"wildCard=true;ignoreCase=true","label":"Resource Path","description":"HDFS file or directory path"} + {"name":"path","type":"path","level":1,"mandatory":true,"lookupSupported":true,"matcher":"org.apache.ranger.plugin.resourcematcher.RangerPathResourceMatcher","matcherOptions":"wildCard=true;ignoreCase=true","label":"Resource Path","description":"HDFS file or directory path"} ], "accessTypes": [ http://git-wip-us.apache.org/repos/asf/incubator-ranger/blob/121e577e/plugin-common/src/main/resources/service-defs/ranger-servicedef-hive.json ---------------------------------------------------------------------- diff --git a/plugin-common/src/main/resources/service-defs/ranger-servicedef-hive.json b/plugin-common/src/main/resources/service-defs/ranger-servicedef-hive.json index 1831810..c18f0a0 100644 --- a/plugin-common/src/main/resources/service-defs/ranger-servicedef-hive.json +++ b/plugin-common/src/main/resources/service-defs/ranger-servicedef-hive.json @@ -21,10 +21,10 @@ ], "resources": [ - {"name":"database","type":"string","level":1,"mandatory":true,"lookupSupported":true,"matcher":"org.apache.ranger.plugin.resourcematcher.RangerDefaultResourceMatcher","matcherOptions":"wildCard=true;ignoreCase=true","label":"Hive Database","description":"Hive Database"}, - {"name":"table","type":"string","level":2,"parent":"database","mandatory":true,"lookupSupported":true,"matcher":"org.apache.ranger.plugin.resourcematcher.RangerDefaultResourceMatcher","matcherOptions":"wildCard=true;ignoreCase=true","label":"Hive Table","description":"Hive Table"}, - {"name":"udf","type":"string","level":2,"parent":"database","mandatory":true,"lookupSupported":true,"matcher":"org.apache.ranger.plugin.resourcematcher.RangerDefaultResourceMatcher","matcherOptions":"wildCard=true;ignoreCase=true","label":"Hive UDF","description":"Hive UDF"}, - {"name":"column","type":"string","level":3,"parent":"table","mandatory":true,"lookupSupported":true,"matcher":"org.apache.ranger.plugin.resourcematcher.RangerDefaultResourceMatcher","matcherOptions":"wildCard=true;ignoreCase=true","label":"Hive Column","description":"Hive Column"} + {"name":"database","type":"select2","level":1,"mandatory":true,"lookupSupported":true,"matcher":"org.apache.ranger.plugin.resourcematcher.RangerDefaultResourceMatcher","matcherOptions":"wildCard=true;ignoreCase=true","label":"Hive Database","description":"Hive Database"}, + {"name":"table","type":"select2","level":2,"parent":"database","mandatory":true,"lookupSupported":true,"matcher":"org.apache.ranger.plugin.resourcematcher.RangerDefaultResourceMatcher","matcherOptions":"wildCard=true;ignoreCase=true","label":"Hive Table","description":"Hive Table"}, + {"name":"udf","type":"select2","level":2,"parent":"database","mandatory":true,"lookupSupported":true,"matcher":"org.apache.ranger.plugin.resourcematcher.RangerDefaultResourceMatcher","matcherOptions":"wildCard=true;ignoreCase=true","label":"Hive UDF","description":"Hive UDF"}, + {"name":"column","type":"select2","level":3,"parent":"table","mandatory":true,"lookupSupported":true,"matcher":"org.apache.ranger.plugin.resourcematcher.RangerDefaultResourceMatcher","matcherOptions":"wildCard=true;ignoreCase=true","label":"Hive Column","description":"Hive Column"} ], "accessTypes": [ http://git-wip-us.apache.org/repos/asf/incubator-ranger/blob/121e577e/plugin-common/src/main/resources/service-defs/ranger-servicedef-knox.json ---------------------------------------------------------------------- diff --git a/plugin-common/src/main/resources/service-defs/ranger-servicedef-knox.json b/plugin-common/src/main/resources/service-defs/ranger-servicedef-knox.json index 7ce09ff..d12b9c9 100644 --- a/plugin-common/src/main/resources/service-defs/ranger-servicedef-knox.json +++ b/plugin-common/src/main/resources/service-defs/ranger-servicedef-knox.json @@ -20,8 +20,8 @@ ], "resources": [ - {"name":"topology","type":"string","level":1,"mandatory":true,"lookupSupported":true,"matcher":"org.apache.ranger.plugin.resourcematcher.RangerDefaultResourceMatcher","matcherOptions":"wildCard=true;ignoreCase=true","label":"Knox Topology","description":"Knox Topology"}, - {"name":"service","type":"string","level":2,"parent":"topology","mandatory":true,"lookupSupported":true,"matcher":"org.apache.ranger.plugin.resourcematcher.RangerDefaultResourceMatcher","matcherOptions":"wildCard=true;ignoreCase=true","label":"Knox Service","description":"Knox Service"} + {"name":"topology","type":"select2","level":1,"mandatory":true,"lookupSupported":true,"matcher":"org.apache.ranger.plugin.resourcematcher.RangerDefaultResourceMatcher","matcherOptions":"wildCard=true;ignoreCase=true","label":"Knox Topology","description":"Knox Topology"}, + {"name":"service","type":"select2","level":2,"parent":"topology","mandatory":true,"lookupSupported":true,"matcher":"org.apache.ranger.plugin.resourcematcher.RangerDefaultResourceMatcher","matcherOptions":"wildCard=true;ignoreCase=true","label":"Knox Service","description":"Knox Service"} ], "accessTypes": [ http://git-wip-us.apache.org/repos/asf/incubator-ranger/blob/121e577e/plugin-common/src/main/resources/service-defs/ranger-servicedef-storm.json ---------------------------------------------------------------------- diff --git a/plugin-common/src/main/resources/service-defs/ranger-servicedef-storm.json b/plugin-common/src/main/resources/service-defs/ranger-servicedef-storm.json index 6a7d8bb..5475dea 100644 --- a/plugin-common/src/main/resources/service-defs/ranger-servicedef-storm.json +++ b/plugin-common/src/main/resources/service-defs/ranger-servicedef-storm.json @@ -20,7 +20,7 @@ ], "resources": [ - {"name":"topology","type":"string","level":1,"mandatory":true,"lookupSupported":true,"matcher":"org.apache.ranger.plugin.resourcematcher.RangerDefaultResourceMatcher","matcherOptions":"wildCard=true;ignoreCase=true","label":"Storm Topology","description":"Storm Topology"} + {"name":"topology","type":"select2","level":1,"mandatory":true,"lookupSupported":true,"matcher":"org.apache.ranger.plugin.resourcematcher.RangerDefaultResourceMatcher","matcherOptions":"wildCard=true;ignoreCase=true","label":"Storm Topology","description":"Storm Topology"} ], "accessTypes": [ http://git-wip-us.apache.org/repos/asf/incubator-ranger/blob/121e577e/security-admin/src/main/webapp/scripts/views/policies/GroupPermList.js ---------------------------------------------------------------------- diff --git a/security-admin/src/main/webapp/scripts/views/policies/GroupPermList.js b/security-admin/src/main/webapp/scripts/views/policies/GroupPermList.js index c7e876a..dfc9c4a 100644 --- a/security-admin/src/main/webapp/scripts/views/policies/GroupPermList.js +++ b/security-admin/src/main/webapp/scripts/views/policies/GroupPermList.js @@ -94,7 +94,7 @@ define(function(require) { } - this.accessItems = _.map(this.getPerms(), function(perm){ return {'type':perm.label,value : false}}); + this.accessItems = _.map(this.getPerms(), function(perm){ if(!_.isUndefined(perm)) return {'type':perm.label,value : false}}); }, groupDropDownChange : function(){ var that = this; http://git-wip-us.apache.org/repos/asf/incubator-ranger/blob/121e577e/security-admin/src/main/webapp/scripts/views/policies/RangerPolicyCreate.js ---------------------------------------------------------------------- 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 15ddd8e..bd2b71e 100644 --- a/security-admin/src/main/webapp/scripts/views/policies/RangerPolicyCreate.js +++ b/security-admin/src/main/webapp/scripts/views/policies/RangerPolicyCreate.js @@ -101,10 +101,12 @@ define(function(require){ this.params = {}; }, initializeServiceDef : function(){ + var service = _.find(XAEnums.ServiceType,function(service){ return service.label.toUpperCase() == this.rangerService.get('type').toUpperCase(); },this); - this.rangerServiceDefModel = new RangerServiceDef({ id : service.value }); + this.rangerServiceDefModel = new RangerServiceDef(); + this.rangerServiceDefModel.url = "service/plugins/definitions/name/"+this.rangerService.get('type'); this.rangerServiceDefModel.fetch({ cache : false, async : false http://git-wip-us.apache.org/repos/asf/incubator-ranger/blob/121e577e/security-admin/src/main/webapp/scripts/views/policies/UserPermList.js ---------------------------------------------------------------------- diff --git a/security-admin/src/main/webapp/scripts/views/policies/UserPermList.js b/security-admin/src/main/webapp/scripts/views/policies/UserPermList.js index 59b7eed..f7879ad 100644 --- a/security-admin/src/main/webapp/scripts/views/policies/UserPermList.js +++ b/security-admin/src/main/webapp/scripts/views/policies/UserPermList.js @@ -93,7 +93,7 @@ define(function(require) { this.createSelectUserDropDown(); this.userDropDownChange(); - this.accessItems = _.map(this.getPerms(), function(perm){ return {'type':perm.label,'value': false}}); + this.accessItems = _.map(this.getPerms(), function(perm){ if(!_.isUndefined(perm)) return {'type':perm.label,'value': false}}); }, checkDirtyFieldForDropDown : function(e){ //that.model.has('groupId') http://git-wip-us.apache.org/repos/asf/incubator-ranger/blob/121e577e/security-admin/src/main/webapp/scripts/views/service/ServiceForm.js ---------------------------------------------------------------------- diff --git a/security-admin/src/main/webapp/scripts/views/service/ServiceForm.js b/security-admin/src/main/webapp/scripts/views/service/ServiceForm.js index de07088..6027b1e 100644 --- a/security-admin/src/main/webapp/scripts/views/service/ServiceForm.js +++ b/security-admin/src/main/webapp/scripts/views/service/ServiceForm.js @@ -156,13 +156,15 @@ define(function(require){ that.model.unset(obj.name); } }); - this.model.set('configs',JSON.stringify(config)); - + //this.model.set('configs',JSON.stringify(config)); + this.model.set('configs',config); + //Set service type - _.each(XAEnums.AssetType, function(asset){ + this.model.set('type',this.rangerServiceDefModel.get('name')) + /*_.each(XAEnums.AssetType, function(asset){ if(asset.label.toUpperCase() == this.rangerServiceDefModel.get('name').toUpperCase()) this.model.set('type',asset.label) - },this); + },this);*/ // //Set isEnabled if(parseInt(this.model.get('isEnabled')) == XAEnums.ActiveStatus.STATUS_ENABLED.value) http://git-wip-us.apache.org/repos/asf/incubator-ranger/blob/121e577e/security-admin/src/main/webapp/templates/helpers/XAHelpers.js ---------------------------------------------------------------------- diff --git a/security-admin/src/main/webapp/templates/helpers/XAHelpers.js b/security-admin/src/main/webapp/templates/helpers/XAHelpers.js index d9618bb..dff2bfe 100644 --- a/security-admin/src/main/webapp/templates/helpers/XAHelpers.js +++ b/security-admin/src/main/webapp/templates/helpers/XAHelpers.js @@ -484,13 +484,13 @@ Handlebars.registerHelper('getServices', function(services, serviceDef) { var XAEnums = require('utils/XAEnums'); var tr = ''; - var serviceType = serviceDef.get('name').toUpperCase(); - _.each(XAEnums.AssetType, function(asset){ + var serviceType = serviceDef.get('name'); + /*_.each(XAEnums.AssetType, function(asset){ if(asset.label.toUpperCase() == serviceType.toUpperCase()){ serviceType = asset.label; return; } - }); + });*/ if(!_.isUndefined(services[serviceType])){ _.each(services[serviceType],function(serv){
