HADOOP-15123. KDiag tries to load krb5.conf from KRB5CCNAME instead of KRB5_CONFIG.

Contributed by Vipin Rathor.

(cherry picked from commit 1ef906e29e0989aafcb35c51ad2acbb262b3c8e7)
(cherry picked from commit f61edab1d0ea08b6d752ecdfb6068103822012ec)
This commit is contained in:
Steve Loughran 2018-01-18 12:29:36 +00:00
parent f274fe33ea
commit de630708d1

View File

@ -81,6 +81,11 @@ public class KDiag extends Configured implements Tool, Closeable {
* variable. This is what kinit will use by default: {@value} * variable. This is what kinit will use by default: {@value}
*/ */
public static final String KRB5_CCNAME = "KRB5CCNAME"; public static final String KRB5_CCNAME = "KRB5CCNAME";
/**
* Location of main kerberos configuration file as passed down via an
* environment variable.
*/
public static final String KRB5_CONFIG = "KRB5_CONFIG";
public static final String JAVA_SECURITY_KRB5_CONF public static final String JAVA_SECURITY_KRB5_CONF
= "java.security.krb5.conf"; = "java.security.krb5.conf";
public static final String JAVA_SECURITY_KRB5_REALM public static final String JAVA_SECURITY_KRB5_REALM
@ -323,6 +328,7 @@ public boolean execute() throws Exception {
for (String env : new String[]{ for (String env : new String[]{
HADOOP_JAAS_DEBUG, HADOOP_JAAS_DEBUG,
KRB5_CCNAME, KRB5_CCNAME,
KRB5_CONFIG,
HADOOP_USER_NAME, HADOOP_USER_NAME,
HADOOP_PROXY_USER, HADOOP_PROXY_USER,
HADOOP_TOKEN_FILE_LOCATION, HADOOP_TOKEN_FILE_LOCATION,
@ -562,14 +568,14 @@ private void validateKrb5File() throws IOException {
krbPath = jvmKrbPath; krbPath = jvmKrbPath;
} }
String krb5name = System.getenv(KRB5_CCNAME); String krb5name = System.getenv(KRB5_CONFIG);
if (krb5name != null) { if (krb5name != null) {
println("Setting kerberos path from environment variable %s: \"%s\"", println("Setting kerberos path from environment variable %s: \"%s\"",
KRB5_CCNAME, krb5name); KRB5_CONFIG, krb5name);
krbPath = krb5name; krbPath = krb5name;
if (jvmKrbPath != null) { if (jvmKrbPath != null) {
println("Warning - both %s and %s were set - %s takes priority", println("Warning - both %s and %s were set - %s takes priority",
JAVA_SECURITY_KRB5_CONF, KRB5_CCNAME, KRB5_CCNAME); JAVA_SECURITY_KRB5_CONF, KRB5_CONFIG, KRB5_CONFIG);
} }
} }
@ -919,7 +925,7 @@ private void printEnv(String variable) {
private void dump(File file) throws IOException { private void dump(File file) throws IOException {
try (FileInputStream in = new FileInputStream(file)) { try (FileInputStream in = new FileInputStream(file)) {
for (String line : IOUtils.readLines(in)) { for (String line : IOUtils.readLines(in)) {
println(line); println("%s", line);
} }
} }
} }