RANGER-346: Service-def files updated to use map for *Options fields, instead 
of a string with custom format


Project: http://git-wip-us.apache.org/repos/asf/incubator-ranger/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-ranger/commit/f88382b6
Tree: http://git-wip-us.apache.org/repos/asf/incubator-ranger/tree/f88382b6
Diff: http://git-wip-us.apache.org/repos/asf/incubator-ranger/diff/f88382b6

Branch: refs/heads/master
Commit: f88382b6f11f4317fcf5cba77025f14e1f647231
Parents: ca40e35
Author: Madhan Neethiraj <[email protected]>
Authored: Fri Mar 27 18:50:11 2015 -0700
Committer: Madhan Neethiraj <[email protected]>
Committed: Fri Mar 27 18:50:11 2015 -0700

----------------------------------------------------------------------
 .../RangerAbstractContextEnricher.java          |  3 ---
 .../RangerSimpleMatcherTest.java                |  2 +-
 .../service/RangerServiceDefServiceBase.java    | 25 ++++++++++++++++++--
 3 files changed, 24 insertions(+), 6 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-ranger/blob/f88382b6/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 af4b560..f14360d 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
@@ -34,9 +34,6 @@ import 
org.apache.ranger.plugin.model.RangerServiceDef.RangerContextEnricherDef;
 public abstract class RangerAbstractContextEnricher implements 
RangerContextEnricher {
        private static final Log LOG = 
LogFactory.getLog(RangerAbstractContextEnricher.class);
 
-       public final static String OPTIONS_SEP        = ";";
-       public final static String OPTION_NV_SEP      = "=";
-
        private Map<String, String> options = null;
 
        @Override

http://git-wip-us.apache.org/repos/asf/incubator-ranger/blob/f88382b6/agents-common/src/test/java/org/apache/ranger/plugin/conditionevaluator/RangerSimpleMatcherTest.java
----------------------------------------------------------------------
diff --git 
a/agents-common/src/test/java/org/apache/ranger/plugin/conditionevaluator/RangerSimpleMatcherTest.java
 
b/agents-common/src/test/java/org/apache/ranger/plugin/conditionevaluator/RangerSimpleMatcherTest.java
index 99c8df0..7ce9cf3 100644
--- 
a/agents-common/src/test/java/org/apache/ranger/plugin/conditionevaluator/RangerSimpleMatcherTest.java
+++ 
b/agents-common/src/test/java/org/apache/ranger/plugin/conditionevaluator/RangerSimpleMatcherTest.java
@@ -39,7 +39,7 @@ import org.junit.Test;
 public class RangerSimpleMatcherTest {
 
        final Map<String, String> _conditionOptions = new HashMap<String, 
String>();
-       
+
        {
                _conditionOptions.put(RangerSimpleMatcher.CONTEXT_NAME, 
RangerSimpleMatcher.CONTEXT_NAME);
        }

http://git-wip-us.apache.org/repos/asf/incubator-ranger/blob/f88382b6/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 7754077..48fd7f8 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
@@ -1,6 +1,7 @@
 package org.apache.ranger.service;
 
 import java.util.ArrayList;
+import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
 
@@ -341,11 +342,31 @@ public abstract class RangerServiceDefServiceBase<T 
extends XXServiceDef, V exte
        private Map<String, String> jsonStringToMap(String jsonStr) {
                Map<String, String> ret = null;
 
-               if(jsonStr != null) {
+               if(!StringUtils.isEmpty(jsonStr)) {
                        try {
                                ret = jsonUtil.jsonToMap(jsonStr);
                        } catch(Exception excp) {
-                               LOG.warn("jsonStringToMap() failed to convert 
string: " + jsonStr, excp);
+                               // fallback to earlier format: 
"name1=value1;name2=value2"
+                               for(String optionString : jsonStr.split(";")) {
+                                       if(StringUtils.isEmpty(optionString)) {
+                                               continue;
+                                       }
+
+                                       String[] nvArr = 
optionString.split("=");
+
+                                       String name  = (nvArr != null && 
nvArr.length > 0) ? nvArr[0].trim() : null;
+                                       String value = (nvArr != null && 
nvArr.length > 1) ? nvArr[1].trim() : null;
+
+                                       if(StringUtils.isEmpty(name)) {
+                                               continue;
+                                       }
+
+                                       if(ret == null) {
+                                               ret = new HashMap<String, 
String>();
+                                       }
+
+                                       ret.put(name, value);
+                               }
                        }
                }
 

Reply via email to