Ranger-684: Modified code to incorporate review comments Signed-off-by: Velmurugan Periasamy <[email protected]>
Project: http://git-wip-us.apache.org/repos/asf/incubator-ranger/repo Commit: http://git-wip-us.apache.org/repos/asf/incubator-ranger/commit/e83d4a70 Tree: http://git-wip-us.apache.org/repos/asf/incubator-ranger/tree/e83d4a70 Diff: http://git-wip-us.apache.org/repos/asf/incubator-ranger/diff/e83d4a70 Branch: refs/heads/master Commit: e83d4a703c533ce1e8b58ac5cf1dd2df83a25240 Parents: 99b97e2 Author: Sailaja Polavarapu <[email protected]> Authored: Thu Oct 29 11:09:19 2015 -0700 Committer: Velmurugan Periasamy <[email protected]> Committed: Fri Oct 30 18:32:07 2015 -0400 ---------------------------------------------------------------------- .../process/LdapUserGroupBuilder.java | 5 ++-- .../config/UserGroupSyncConfig.java | 2 +- .../org/apache/ranger/usergroupsync/RegEx.java | 30 +++++++++++++------- .../apache/ranger/usergroupsync/RegExTest.java | 8 +++--- 4 files changed, 27 insertions(+), 18 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/incubator-ranger/blob/e83d4a70/ugsync/src/main/java/org/apache/ranger/ldapusersync/process/LdapUserGroupBuilder.java ---------------------------------------------------------------------- diff --git a/ugsync/src/main/java/org/apache/ranger/ldapusersync/process/LdapUserGroupBuilder.java b/ugsync/src/main/java/org/apache/ranger/ldapusersync/process/LdapUserGroupBuilder.java index 911c5d5..e13db58 100644 --- a/ugsync/src/main/java/org/apache/ranger/ldapusersync/process/LdapUserGroupBuilder.java +++ b/ugsync/src/main/java/org/apache/ranger/ldapusersync/process/LdapUserGroupBuilder.java @@ -42,6 +42,7 @@ import javax.naming.ldap.PagedResultsResponseControl; import org.apache.log4j.Logger; import org.apache.ranger.unixusersync.config.UserGroupSyncConfig; +import org.apache.ranger.usergroupsync.Mapper; import org.apache.ranger.usergroupsync.AbstractMapper; import org.apache.ranger.usergroupsync.UserGroupSink; import org.apache.ranger.usergroupsync.UserGroupSource; @@ -93,8 +94,8 @@ public class LdapUserGroupBuilder implements UserGroupSource { private boolean groupUserMapSyncEnabled = false; - AbstractMapper userNameRegExInst = null; - AbstractMapper groupNameRegExInst = null; + Mapper userNameRegExInst = null; + Mapper groupNameRegExInst = null; public static void main(String[] args) throws Throwable { LdapUserGroupBuilder ugBuilder = new LdapUserGroupBuilder(); http://git-wip-us.apache.org/repos/asf/incubator-ranger/blob/e83d4a70/ugsync/src/main/java/org/apache/ranger/unixusersync/config/UserGroupSyncConfig.java ---------------------------------------------------------------------- diff --git a/ugsync/src/main/java/org/apache/ranger/unixusersync/config/UserGroupSyncConfig.java b/ugsync/src/main/java/org/apache/ranger/unixusersync/config/UserGroupSyncConfig.java index f43e125..792a05a 100644 --- a/ugsync/src/main/java/org/apache/ranger/unixusersync/config/UserGroupSyncConfig.java +++ b/ugsync/src/main/java/org/apache/ranger/unixusersync/config/UserGroupSyncConfig.java @@ -752,7 +752,7 @@ public class UserGroupSyncConfig { return referral; } - public List<String> getAllRegexPatterns(String baseProperty) { + public List<String> getAllRegexPatterns(String baseProperty) throws Throwable { List<String> regexPatterns = new ArrayList<String>(); if (prop != null) { String baseRegex = prop.getProperty(baseProperty); http://git-wip-us.apache.org/repos/asf/incubator-ranger/blob/e83d4a70/ugsync/src/main/java/org/apache/ranger/usergroupsync/RegEx.java ---------------------------------------------------------------------- diff --git a/ugsync/src/main/java/org/apache/ranger/usergroupsync/RegEx.java b/ugsync/src/main/java/org/apache/ranger/usergroupsync/RegEx.java index 0e9ed99..4bf452a 100644 --- a/ugsync/src/main/java/org/apache/ranger/usergroupsync/RegEx.java +++ b/ugsync/src/main/java/org/apache/ranger/usergroupsync/RegEx.java @@ -37,11 +37,15 @@ public class RegEx extends AbstractMapper { @Override public void init (String baseProperty) { logger.info("Initializing for " + baseProperty); - List<String> regexPatterns = config.getAllRegexPatterns(baseProperty); - populateReplacementPatterns(baseProperty, regexPatterns); + try { + List<String> regexPatterns = config.getAllRegexPatterns(baseProperty); + populateReplacementPatterns(baseProperty, regexPatterns); + } catch (Throwable t) { + logger.error("Failed to initialize " + baseProperty, t.fillInStackTrace()); + } } - protected void populateReplacementPatterns(String baseProperty, List<String> regexPatterns) { + protected void populateReplacementPatterns(String baseProperty, List<String> regexPatterns) throws Throwable{ replacementPattern = new LinkedHashMap<String, String>(); Pattern p = Pattern.compile("s/([^/]*)/([^/]*)/(g)?"); for (String regexPattern : regexPatterns) { @@ -66,17 +70,21 @@ public class RegEx extends AbstractMapper { @Override public String transform (String attrValue) { String result = attrValue; - if (replacementPattern != null && !replacementPattern.isEmpty()) { - for (String matchPattern : replacementPattern.keySet()) { - Pattern p = Pattern.compile(matchPattern); - Matcher m = p.matcher(result); - if (m.find()) { - String replacement = replacementPattern.get(matchPattern); - if (replacement != null) { - result = m.replaceAll(replacement); + try { + if (replacementPattern != null && !replacementPattern.isEmpty()) { + for (String matchPattern : replacementPattern.keySet()) { + Pattern p = Pattern.compile(matchPattern); + Matcher m = p.matcher(result); + if (m.find()) { + String replacement = replacementPattern.get(matchPattern); + if (replacement != null) { + result = m.replaceAll(replacement); + } } } } + } catch (Throwable t) { + logger.error("Failed to transform " + attrValue, t.fillInStackTrace()); } return result; } http://git-wip-us.apache.org/repos/asf/incubator-ranger/blob/e83d4a70/ugsync/src/test/java/org/apache/ranger/usergroupsync/RegExTest.java ---------------------------------------------------------------------- diff --git a/ugsync/src/test/java/org/apache/ranger/usergroupsync/RegExTest.java b/ugsync/src/test/java/org/apache/ranger/usergroupsync/RegExTest.java index 2621862..2c1e023 100644 --- a/ugsync/src/test/java/org/apache/ranger/usergroupsync/RegExTest.java +++ b/ugsync/src/test/java/org/apache/ranger/usergroupsync/RegExTest.java @@ -46,14 +46,14 @@ public class RegExTest { } @Test - public void testUserNameTransform() { + public void testUserNameTransform() throws Throwable { userRegexPatterns.add("s/\\s/_/"); userNameRegEx.populateReplacementPatterns(userNameBaseProperty, userRegexPatterns); assertEquals("test_user", userNameRegEx.transform("test user")); } @Test - public void testGroupNameTransform() { + public void testGroupNameTransform() throws Throwable { groupRegexPatterns.add("s/\\s/_/g"); groupRegexPatterns.add("s/_/\\$/g"); groupNameRegEx.populateReplacementPatterns(userNameBaseProperty, groupRegexPatterns); @@ -67,7 +67,7 @@ public class RegExTest { } @Test - public void testTransform() { + public void testTransform() throws Throwable { userRegexPatterns.add("s/\\s/_/g"); userNameRegEx.populateReplacementPatterns(userNameBaseProperty, userRegexPatterns); assertEquals("test_user", userNameRegEx.transform("test user")); @@ -75,7 +75,7 @@ public class RegExTest { } @Test - public void testTransform1() { + public void testTransform1() throws Throwable { userRegexPatterns.add("s/\\\\/ /g"); userRegexPatterns.add("s//_/g"); userNameRegEx.populateReplacementPatterns(userNameBaseProperty, userRegexPatterns);
