Repository: incubator-ranger
Updated Branches:
  refs/heads/master ddf9cfa74 -> 405c51853


RANGER-320: Usersync NPE when object does not have userNameAttribute


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

Branch: refs/heads/master
Commit: 405c518531f63dd932791f9e5f0f6214aa7bd0a8
Parents: ddf9cfa
Author: Dilli Dorai Arumugam <[email protected]>
Authored: Thu Mar 19 10:36:43 2015 -0700
Committer: Dilli Dorai Arumugam <[email protected]>
Committed: Mon Mar 23 21:01:13 2015 -0700

----------------------------------------------------------------------
 .../process/LdapUserGroupBuilder.java           | 41 ++++++++++++++++++--
 1 file changed, 37 insertions(+), 4 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-ranger/blob/405c5185/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 b6bb811..011170c 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
@@ -31,6 +31,7 @@ import javax.naming.Context;
 import javax.naming.InvalidNameException;
 import javax.naming.NamingEnumeration;
 import javax.naming.directory.Attribute;
+import javax.naming.directory.Attributes;
 import javax.naming.directory.SearchControls;
 import javax.naming.directory.SearchResult;
 import javax.naming.ldap.Control;
@@ -274,10 +275,42 @@ public class LdapUserGroupBuilder implements 
UserGroupSource {
                                while (userSearchResultEnum.hasMore()) {
                                        // searchResults contains all the user 
entries
                                        final SearchResult userEntry = 
userSearchResultEnum.next();
-                                       String userName = (String) 
userEntry.getAttributes()
-                                               .get(userNameAttribute).get();
-                               
-                               
+
+          if (userEntry == null)  {
+            if (LOG.isInfoEnabled())  {
+              LOG.info("userEntry null, skipping sync for the entry");
+            }
+            continue;
+          }
+
+          Attributes attributes =   userEntry.getAttributes();
+          if (attributes == null)  {
+            if (LOG.isInfoEnabled())  {
+              LOG.info("attributes  missing for entry " + 
userEntry.getNameInNamespace() +
+                ", skipping sync");
+            }
+            continue;
+          }
+
+          Attribute userNameAttr  = attributes.get(userNameAttribute);
+          if (userNameAttr == null)  {
+            if (LOG.isInfoEnabled())  {
+              LOG.info(userNameAttribute + " missing for entry " + 
userEntry.getNameInNamespace() +
+                ", skipping sync");
+            }
+            continue;
+          }
+
+                                       String userName = (String) 
userNameAttr.get();
+
+          if (userName == null || userName.trim().isEmpty())  {
+            if (LOG.isInfoEnabled())  {
+              LOG.info(userNameAttribute + " empty for entry " + 
userEntry.getNameInNamespace() +
+                ", skipping sync");
+            }
+            continue;
+          }
+
                                        if (userNameCaseConversionFlag) {
                                                if (userNameLowerCaseFlag) {
                                                        userName = 
userName.toLowerCase() ;

Reply via email to