You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ranger.apache.org by sp...@apache.org on 2018/03/06 19:06:32 UTC
ranger git commit: RANGER-2006: Fix problems detected by static code
analysis in ranger usersync for ldap sync source
Repository: ranger
Updated Branches:
refs/heads/master 4319dea61 -> a9fbbcafa
RANGER-2006: Fix problems detected by static code analysis in ranger usersync for ldap sync source
Project: http://git-wip-us.apache.org/repos/asf/ranger/repo
Commit: http://git-wip-us.apache.org/repos/asf/ranger/commit/a9fbbcaf
Tree: http://git-wip-us.apache.org/repos/asf/ranger/tree/a9fbbcaf
Diff: http://git-wip-us.apache.org/repos/asf/ranger/diff/a9fbbcaf
Branch: refs/heads/master
Commit: a9fbbcafa75b48ccfac28544c624bdef7b6ae081
Parents: 4319dea
Author: Sailaja Polavarapu <sp...@hortonworks.com>
Authored: Tue Mar 6 11:05:30 2018 -0800
Committer: Sailaja Polavarapu <sp...@hortonworks.com>
Committed: Tue Mar 6 11:05:30 2018 -0800
----------------------------------------------------------------------
.../process/LdapDeltaUserGroupBuilder.java | 2 +-
.../process/LdapUserGroupBuilder.java | 3 +--
.../config/UserGroupSyncConfig.java | 27 ++++++++++++++++++++
3 files changed, 29 insertions(+), 3 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/ranger/blob/a9fbbcaf/ugsync/src/main/java/org/apache/ranger/ldapusersync/process/LdapDeltaUserGroupBuilder.java
----------------------------------------------------------------------
diff --git a/ugsync/src/main/java/org/apache/ranger/ldapusersync/process/LdapDeltaUserGroupBuilder.java b/ugsync/src/main/java/org/apache/ranger/ldapusersync/process/LdapDeltaUserGroupBuilder.java
index 7d85f33..3cf0240 100644
--- a/ugsync/src/main/java/org/apache/ranger/ldapusersync/process/LdapDeltaUserGroupBuilder.java
+++ b/ugsync/src/main/java/org/apache/ranger/ldapusersync/process/LdapDeltaUserGroupBuilder.java
@@ -941,7 +941,7 @@ public class LdapDeltaUserGroupBuilder extends AbstractUserGroupSource {
.append(groupDN).append(")");
}
filter.append("))");
- groupFilter += filter;
+ groupFilter += config.escapeSearchFilter(filter.toString());
LOG.info("extendedAllGroupsSearchFilter = " + groupFilter);
for (int ou=0; ou<groupSearchBase.length; ou++) {
http://git-wip-us.apache.org/repos/asf/ranger/blob/a9fbbcaf/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 85cba3c..ae5b1ab 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
@@ -289,7 +289,6 @@ public class LdapUserGroupBuilder extends AbstractUserGroupSource {
+ ", ldapReferral: " + ldapReferral
);
}
-
}
private void closeLdapContext() throws Throwable {
@@ -840,7 +839,7 @@ public class LdapUserGroupBuilder extends AbstractUserGroupSource {
.append(groupDN).append(")");
}
filter.append("))");
- groupFilter += filter;
+ groupFilter += config.escapeSearchFilter(filter.toString());
LOG.debug("extendedAllGroupsSearchFilter = " + groupFilter);
for (String ou : groupSearchBase) {
http://git-wip-us.apache.org/repos/asf/ranger/blob/a9fbbcaf/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 45eeb1b..ed07696 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
@@ -960,6 +960,33 @@ public class UserGroupSyncConfig {
return deltaSyncEnabled;
}
+ public String escapeSearchFilter(String searchFilter) {
+ StringBuilder sb = new StringBuilder();
+ for (int i = 0; i < searchFilter.length(); i++) {
+ char ch = searchFilter.charAt(i);
+ switch (ch) {
+ case '\\':
+ sb.append("\\5c");
+ break;
+ case '*':
+ sb.append("\\2a");
+ break;
+ case '(':
+ sb.append("\\28");
+ break;
+ case ')':
+ sb.append("\\29");
+ break;
+ case '\u0000':
+ sb.append("\\00");
+ break;
+ default:
+ sb.append(ch);
+ }
+ }
+ return sb.toString();
+ }
+
/* Used only for unit testing */
public void setUserSearchFilter(String filter) {
prop.setProperty(LGSYNC_USER_SEARCH_FILTER, filter);