Repository: hadoop Updated Branches: refs/heads/trunk 422c73a86 -> be38e530b
HADOOP-9888. KerberosName static initialization gets default realm, which is unneeded in non-secure deployment. (Dmytro Kabakchei via aw) Project: http://git-wip-us.apache.org/repos/asf/hadoop/repo Commit: http://git-wip-us.apache.org/repos/asf/hadoop/commit/be38e530 Tree: http://git-wip-us.apache.org/repos/asf/hadoop/tree/be38e530 Diff: http://git-wip-us.apache.org/repos/asf/hadoop/diff/be38e530 Branch: refs/heads/trunk Commit: be38e530bb23b134758e29c9101f98cf4e1d2c38 Parents: 422c73a Author: Allen Wittenauer <a...@apache.org> Authored: Tue Jun 28 07:22:51 2016 -0700 Committer: Allen Wittenauer <a...@apache.org> Committed: Tue Jun 28 07:22:51 2016 -0700 ---------------------------------------------------------------------- .../authentication/util/KerberosName.java | 24 ++++++++++---------- 1 file changed, 12 insertions(+), 12 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/hadoop/blob/be38e530/hadoop-common-project/hadoop-auth/src/main/java/org/apache/hadoop/security/authentication/util/KerberosName.java ---------------------------------------------------------------------- diff --git a/hadoop-common-project/hadoop-auth/src/main/java/org/apache/hadoop/security/authentication/util/KerberosName.java b/hadoop-common-project/hadoop-auth/src/main/java/org/apache/hadoop/security/authentication/util/KerberosName.java index 645fbc6..0b668f1 100644 --- a/hadoop-common-project/hadoop-auth/src/main/java/org/apache/hadoop/security/authentication/util/KerberosName.java +++ b/hadoop-common-project/hadoop-auth/src/main/java/org/apache/hadoop/security/authentication/util/KerberosName.java @@ -80,16 +80,7 @@ public class KerberosName { */ private static List<Rule> rules; - private static String defaultRealm; - - static { - try { - defaultRealm = KerberosUtil.getDefaultRealm(); - } catch (Exception ke) { - LOG.debug("Kerberos krb5 configuration not found, setting default realm to empty"); - defaultRealm=""; - } - } + private static String defaultRealm = null; @VisibleForTesting public static void resetDefaultRealm() { @@ -124,9 +115,18 @@ public class KerberosName { /** * Get the configured default realm. + * Used syncronized method here, because double-check locking is overhead. * @return the default realm from the krb5.conf */ - public String getDefaultRealm() { + public static synchronized String getDefaultRealm() { + if (defaultRealm == null) { + try { + defaultRealm = KerberosUtil.getDefaultRealm(); + } catch (Exception ke) { + LOG.debug("Kerberos krb5 configuration not found, setting default realm to empty"); + defaultRealm = ""; + } + } return defaultRealm; } @@ -309,7 +309,7 @@ public class KerberosName { String apply(String[] params) throws IOException { String result = null; if (isDefault) { - if (defaultRealm.equals(params[0])) { + if (getDefaultRealm().equals(params[0])) { result = params[1]; } } else if (params.length - 1 == numOfComponents) { --------------------------------------------------------------------- To unsubscribe, e-mail: common-commits-unsubscr...@hadoop.apache.org For additional commands, e-mail: common-commits-h...@hadoop.apache.org