From 65117781ec6cd58dc4b20d8720165f435ba774c1 Mon Sep 17 00:00:00 2001 From: Todd Lipcon Date: Wed, 11 May 2011 22:49:26 +0000 Subject: [PATCH] HADOOP-7189. Add ability to enable debug property in JAAS configuration. Contributed by Ted Yu. git-svn-id: https://svn.apache.org/repos/asf/hadoop/common/trunk@1102123 13f79535-47bb-0310-9956-ffa450edef68 --- CHANGES.txt | 3 +++ .../hadoop/security/UserGroupInformation.java | 15 +++++++++++++-- 2 files changed, 16 insertions(+), 2 deletions(-) diff --git a/CHANGES.txt b/CHANGES.txt index a20b378ef84..de6f01c60a3 100644 --- a/CHANGES.txt +++ b/CHANGES.txt @@ -443,6 +443,9 @@ Release 0.22.0 - Unreleased HADOOP-7244. Documentation change for updated configuration keys. (tomwhite via eli) + HADOOP-7189. Add ability to enable 'debug' property in JAAS configuration. + (Ted Yu via todd) + OPTIMIZATIONS HADOOP-6884. Add LOG.isDebugEnabled() guard for each LOG.debug(..). diff --git a/src/java/org/apache/hadoop/security/UserGroupInformation.java b/src/java/org/apache/hadoop/security/UserGroupInformation.java index fc1c87ded98..0b00af7ce43 100644 --- a/src/java/org/apache/hadoop/security/UserGroupInformation.java +++ b/src/java/org/apache/hadoop/security/UserGroupInformation.java @@ -340,15 +340,24 @@ public class UserGroupInformation { "hadoop-user-kerberos"; private static final String KEYTAB_KERBEROS_CONFIG_NAME = "hadoop-keytab-kerberos"; + + private static final Map BASIC_JAAS_OPTIONS = + new HashMap(); + static { + String jaasEnvVar = System.getenv("HADOOP_JAAS_DEBUG"); + if (jaasEnvVar != null && "true".equalsIgnoreCase(jaasEnvVar)) { + BASIC_JAAS_OPTIONS.put("debug", "true"); + } + } private static final AppConfigurationEntry OS_SPECIFIC_LOGIN = new AppConfigurationEntry(OS_LOGIN_MODULE_NAME, LoginModuleControlFlag.REQUIRED, - new HashMap()); + BASIC_JAAS_OPTIONS); private static final AppConfigurationEntry HADOOP_LOGIN = new AppConfigurationEntry(HadoopLoginModule.class.getName(), LoginModuleControlFlag.REQUIRED, - new HashMap()); + BASIC_JAAS_OPTIONS); private static final Map USER_KERBEROS_OPTIONS = new HashMap(); static { @@ -359,6 +368,7 @@ public class UserGroupInformation { if (ticketCache != null) { USER_KERBEROS_OPTIONS.put("ticketCache", ticketCache); } + USER_KERBEROS_OPTIONS.putAll(BASIC_JAAS_OPTIONS); } private static final AppConfigurationEntry USER_KERBEROS_LOGIN = new AppConfigurationEntry(Krb5LoginModule.class.getName(), @@ -371,6 +381,7 @@ public class UserGroupInformation { KEYTAB_KERBEROS_OPTIONS.put("useKeyTab", "true"); KEYTAB_KERBEROS_OPTIONS.put("storeKey", "true"); KEYTAB_KERBEROS_OPTIONS.put("refreshKrb5Config", "true"); + KEYTAB_KERBEROS_OPTIONS.putAll(BASIC_JAAS_OPTIONS); } private static final AppConfigurationEntry KEYTAB_KERBEROS_LOGIN = new AppConfigurationEntry(Krb5LoginModule.class.getName(),