HADOOP-11287. Simplify UGI#reloginFromKeytab for Java 7+. Contributed by Li Lu.
This commit is contained in:
parent
46a7365164
commit
e2c1ef4deb
|
@ -52,6 +52,9 @@ Release 2.7.0 - UNRELEASED
|
|||
HADOOP-11313. Adding a document about NativeLibraryChecker.
|
||||
(Tsuyoshi OZAWA via cnauroth)
|
||||
|
||||
HADOOP-11287. Simplify UGI#reloginFromKeytab for Java 7+.
|
||||
(Li Lu via wheat9)
|
||||
|
||||
OPTIMIZATIONS
|
||||
|
||||
HADOOP-11323. WritableComparator#compare keeps reference to byte array.
|
||||
|
|
|
@ -42,9 +42,9 @@ import java.util.Set;
|
|||
|
||||
import javax.security.auth.Subject;
|
||||
import javax.security.auth.callback.CallbackHandler;
|
||||
import javax.security.auth.kerberos.KerberosKey;
|
||||
import javax.security.auth.kerberos.KerberosPrincipal;
|
||||
import javax.security.auth.kerberos.KerberosTicket;
|
||||
import javax.security.auth.kerberos.KeyTab;
|
||||
import javax.security.auth.login.AppConfigurationEntry;
|
||||
import javax.security.auth.login.AppConfigurationEntry.LoginModuleControlFlag;
|
||||
import javax.security.auth.login.LoginContext;
|
||||
|
@ -598,20 +598,6 @@ public class UserGroupInformation {
|
|||
user.setLogin(login);
|
||||
}
|
||||
|
||||
private static Class<?> KEY_TAB_CLASS = KerberosKey.class;
|
||||
static {
|
||||
try {
|
||||
// We use KEY_TAB_CLASS to determine if the UGI is logged in from
|
||||
// keytab. In JDK6 and JDK7, if useKeyTab and storeKey are specified
|
||||
// in the Krb5LoginModule, then some number of KerberosKey objects
|
||||
// are added to the Subject's private credentials. However, in JDK8,
|
||||
// a KeyTab object is added instead. More details in HADOOP-10786.
|
||||
KEY_TAB_CLASS = Class.forName("javax.security.auth.kerberos.KeyTab");
|
||||
} catch (ClassNotFoundException cnfe) {
|
||||
// Ignore. javax.security.auth.kerberos.KeyTab does not exist in JDK6.
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Create a UserGroupInformation for the given subject.
|
||||
* This does not change the subject or acquire new credentials.
|
||||
|
@ -620,7 +606,7 @@ public class UserGroupInformation {
|
|||
UserGroupInformation(Subject subject) {
|
||||
this.subject = subject;
|
||||
this.user = subject.getPrincipals(User.class).iterator().next();
|
||||
this.isKeytab = !subject.getPrivateCredentials(KEY_TAB_CLASS).isEmpty();
|
||||
this.isKeytab = !subject.getPrivateCredentials(KeyTab.class).isEmpty();
|
||||
this.isKrbTkt = !subject.getPrivateCredentials(KerberosTicket.class).isEmpty();
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue