From 6cb408a6e5741ee4f52672def084d4eee546948a Mon Sep 17 00:00:00 2001 From: Prabhjyot Singh Date: Wed, 20 Jun 2018 11:43:45 +0530 Subject: [PATCH 1/2] ZEPPELIN-3555: fix NPE in groupRolesMap for ActiveDirectoryGroupRealm Change-Id: Ifb172642cb4b8579eeb71255358b456f378c9143 --- .../zeppelin/realm/ActiveDirectoryGroupRealm.java | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/zeppelin-server/src/main/java/org/apache/zeppelin/realm/ActiveDirectoryGroupRealm.java b/zeppelin-server/src/main/java/org/apache/zeppelin/realm/ActiveDirectoryGroupRealm.java index 624b1ae27c3..7d57ec08260 100644 --- a/zeppelin-server/src/main/java/org/apache/zeppelin/realm/ActiveDirectoryGroupRealm.java +++ b/zeppelin-server/src/main/java/org/apache/zeppelin/realm/ActiveDirectoryGroupRealm.java @@ -16,6 +16,7 @@ */ package org.apache.zeppelin.realm; +import java.util.LinkedHashMap; import org.apache.commons.lang.StringUtils; import org.apache.shiro.authc.AuthenticationException; import org.apache.shiro.authc.AuthenticationInfo; @@ -76,10 +77,14 @@ public void setHadoopSecurityCredentialPath(String hadoopSecurityCredentialPath) * group names (e.g. CN=Group,OU=Company,DC=MyDomain,DC=local) * as returned by the active directory LDAP server to role names. */ - private Map groupRolesMap; + private Map groupRolesMap = new LinkedHashMap<>(); public void setGroupRolesMap(Map groupRolesMap) { - this.groupRolesMap = groupRolesMap; + this.groupRolesMap.putAll(groupRolesMap); + } + + public Map getGroupRolesMap() { + return groupRolesMap; } LdapContextFactory ldapContextFactory; @@ -273,7 +278,7 @@ public List searchForUserName(String containString, LdapContext ldapCont public Map getListRoles() { Map roles = new HashMap<>(); - Iterator it = this.groupRolesMap.entrySet().iterator(); + Iterator it = getGroupRolesMap().entrySet().iterator(); while (it.hasNext()) { Map.Entry pair = (Map.Entry) it.next(); roles.put((String) pair.getValue(), "*"); From 25196d3eb0b94f8bb509ee8503595988ba28fb44 Mon Sep 17 00:00:00 2001 From: Prabhjyot Singh Date: Fri, 22 Jun 2018 10:38:13 +0530 Subject: [PATCH 2/2] revert `getGroupRolesMap()` method Change-Id: Ica9088fc60829e76d42daa63d0a40b0d2117c862 --- .../apache/zeppelin/realm/ActiveDirectoryGroupRealm.java | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/zeppelin-server/src/main/java/org/apache/zeppelin/realm/ActiveDirectoryGroupRealm.java b/zeppelin-server/src/main/java/org/apache/zeppelin/realm/ActiveDirectoryGroupRealm.java index 7d57ec08260..40d28fe69c3 100644 --- a/zeppelin-server/src/main/java/org/apache/zeppelin/realm/ActiveDirectoryGroupRealm.java +++ b/zeppelin-server/src/main/java/org/apache/zeppelin/realm/ActiveDirectoryGroupRealm.java @@ -83,10 +83,6 @@ public void setGroupRolesMap(Map groupRolesMap) { this.groupRolesMap.putAll(groupRolesMap); } - public Map getGroupRolesMap() { - return groupRolesMap; - } - LdapContextFactory ldapContextFactory; protected void onInit() { @@ -278,7 +274,7 @@ public List searchForUserName(String containString, LdapContext ldapCont public Map getListRoles() { Map roles = new HashMap<>(); - Iterator it = getGroupRolesMap().entrySet().iterator(); + Iterator it = this.groupRolesMap.entrySet().iterator(); while (it.hasNext()) { Map.Entry pair = (Map.Entry) it.next(); roles.put((String) pair.getValue(), "*");