public class oadd.org.apache.hadoop.security.UserGroupInformation extends java.lang.Object
{
static final org.slf4j.Logger LOG;
private static final float TICKET_RENEW_WINDOW;
private static boolean shouldRenewImmediatelyForTests;
static final java.lang.String HADOOP_USER_NAME;
static final java.lang.String HADOOP_PROXY_USER;
static oadd.org.apache.hadoop.security.UserGroupInformation$UgiMetrics metrics;
private static oadd.org.apache.hadoop.security.UserGroupInformation$AuthenticationMethod authenticationMethod;
private static oadd.org.apache.hadoop.security.Groups groups;
private static long kerberosMinSecondsBeforeRelogin;
private static oadd.org.apache.hadoop.conf.Configuration conf;
public static final java.lang.String HADOOP_TOKEN_FILE_LOCATION;
private static final java.util.concurrent.atomic.AtomicReference loginUserRef;
private final javax.security.auth.Subject subject;
private final oadd.org.apache.hadoop.security.User user;
private static java.lang.String OS_LOGIN_MODULE_NAME;
private static java.lang.Class OS_PRINCIPAL_CLASS;
private static final boolean windows;
private static final boolean is64Bit;
private static final boolean aix;
static final boolean $assertionsDisabled;
public static void setShouldRenewImmediatelyForTests(boolean)
{
boolean v;
v := @parameter: boolean;
<oadd.org.apache.hadoop.security.UserGroupInformation: boolean shouldRenewImmediatelyForTests> = v;
return;
}
public static void reattachMetrics()
{
staticinvoke <oadd.org.apache.hadoop.security.UserGroupInformation$UgiMetrics: void reattach()>();
return;
}
public static boolean isInitialized()
{
oadd.org.apache.hadoop.conf.Configuration v;
boolean v;
v = <oadd.org.apache.hadoop.security.UserGroupInformation: oadd.org.apache.hadoop.conf.Configuration conf>;
if v == null goto label;
v = 1;
goto label;
label:
v = 0;
label:
return v;
}
private static void ensureInitialized()
{
java.lang.Throwable v;
oadd.org.apache.hadoop.conf.Configuration v;
boolean v, v;
v = staticinvoke <oadd.org.apache.hadoop.security.UserGroupInformation: boolean isInitialized()>();
if v != 0 goto label;
entermonitor class "Loadd/org/apache/hadoop/security/UserGroupInformation;";
label:
v = staticinvoke <oadd.org.apache.hadoop.security.UserGroupInformation: boolean isInitialized()>();
if v != 0 goto label;
v = new oadd.org.apache.hadoop.conf.Configuration;
specialinvoke v.<oadd.org.apache.hadoop.conf.Configuration: void <init>()>();
staticinvoke <oadd.org.apache.hadoop.security.UserGroupInformation: void initialize(oadd.org.apache.hadoop.conf.Configuration,boolean)>(v, 0);
label:
exitmonitor class "Loadd/org/apache/hadoop/security/UserGroupInformation;";
label:
goto label;
label:
v := @caughtexception;
exitmonitor class "Loadd/org/apache/hadoop/security/UserGroupInformation;";
throw v;
label:
return;
catch java.lang.Throwable from label to label with label;
}
private static synchronized void initialize(oadd.org.apache.hadoop.conf.Configuration, boolean)
{
oadd.org.apache.hadoop.security.Groups v, v;
long v, v;
oadd.org.apache.hadoop.security.UserGroupInformation$AuthenticationMethod v;
int[] v;
int v, v, v, v, v;
oadd.org.apache.hadoop.conf.Configuration v;
java.lang.String v, v, v;
boolean v, v, v;
oadd.org.apache.hadoop.metrics.lib.MutableQuantiles[] v, v;
java.io.IOException v;
java.lang.NumberFormatException v;
java.lang.RuntimeException v;
oadd.org.apache.hadoop.metrics.lib.MetricsRegistry v;
java.lang.IllegalArgumentException v;
oadd.org.apache.hadoop.security.UserGroupInformation$UgiMetrics v, v, v;
oadd.org.apache.hadoop.metrics.lib.MutableQuantiles v;
v := @parameter: oadd.org.apache.hadoop.conf.Configuration;
v := @parameter: boolean;
v = staticinvoke <oadd.org.apache.hadoop.security.SecurityUtil: oadd.org.apache.hadoop.security.UserGroupInformation$AuthenticationMethod getAuthenticationMethod(oadd.org.apache.hadoop.conf.Configuration)>(v);
<oadd.org.apache.hadoop.security.UserGroupInformation: oadd.org.apache.hadoop.security.UserGroupInformation$AuthenticationMethod authenticationMethod> = v;
if v != 0 goto label;
v = staticinvoke <oadd.org.apache.hadoop.security.HadoopKerberosName: boolean hasRulesBeenSet()>();
if v != 0 goto label;
label:
staticinvoke <oadd.org.apache.hadoop.security.HadoopKerberosName: void setConfiguration(oadd.org.apache.hadoop.conf.Configuration)>(v);
label:
goto label;
label:
v := @caughtexception;
v = new java.lang.RuntimeException;
specialinvoke v.<java.lang.RuntimeException: void <init>(java.lang.String,java.lang.Throwable)>("Problem with Kerberos auth_to_local name configuration", v);
throw v;
label:
v = virtualinvoke v.<oadd.org.apache.hadoop.conf.Configuration: long getLong(java.lang.String,long)>("hadoop.kerberos.min.seconds.before.relogin", 60L);
v = 1000L * v;
<oadd.org.apache.hadoop.security.UserGroupInformation: long kerberosMinSecondsBeforeRelogin> = v;
label:
goto label;
label:
v := @caughtexception;
v = new java.lang.IllegalArgumentException;
v = virtualinvoke v.<oadd.org.apache.hadoop.conf.Configuration: java.lang.String get(java.lang.String)>("hadoop.kerberos.min.seconds.before.relogin");
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.lang.String)>(v) <java.lang.invoke.StringConcatFactory: java.lang.invoke.CallSite makeConcatWithConstants(java.lang.invoke.MethodHandles$Lookup,java.lang.String,java.lang.invoke.MethodType,java.lang.String,java.lang.Object[])>("Invalid attribute value for hadoop.kerberos.min.seconds.before.relogin of \u0001");
specialinvoke v.<java.lang.IllegalArgumentException: void <init>(java.lang.String)>(v);
throw v;
label:
v = <oadd.org.apache.hadoop.security.UserGroupInformation: oadd.org.apache.hadoop.security.Groups groups>;
v = v instanceof oadd.org.apache.hadoop.security.UserGroupInformation$TestingGroups;
if v != 0 goto label;
v = staticinvoke <oadd.org.apache.hadoop.security.Groups: oadd.org.apache.hadoop.security.Groups getUserToGroupsMappingService(oadd.org.apache.hadoop.conf.Configuration)>(v);
<oadd.org.apache.hadoop.security.UserGroupInformation: oadd.org.apache.hadoop.security.Groups groups> = v;
label:
<oadd.org.apache.hadoop.security.UserGroupInformation: oadd.org.apache.hadoop.conf.Configuration conf> = v;
v = <oadd.org.apache.hadoop.security.UserGroupInformation: oadd.org.apache.hadoop.security.UserGroupInformation$UgiMetrics metrics>;
v = v.<oadd.org.apache.hadoop.security.UserGroupInformation$UgiMetrics: oadd.org.apache.hadoop.metrics.lib.MutableQuantiles[] getGroupsQuantiles>;
if v != null goto label;
v = virtualinvoke v.<oadd.org.apache.hadoop.conf.Configuration: int[] getInts(java.lang.String)>("hadoop.user.group.metrics.percentiles.intervals");
if v == null goto label;
v = lengthof v;
if v <= 0 goto label;
v = lengthof v;
v = newarray (oadd.org.apache.hadoop.metrics.lib.MutableQuantiles)[v];
v = 0;
label:
if v >= v goto label;
v = <oadd.org.apache.hadoop.security.UserGroupInformation: oadd.org.apache.hadoop.security.UserGroupInformation$UgiMetrics metrics>;
v = v.<oadd.org.apache.hadoop.security.UserGroupInformation$UgiMetrics: oadd.org.apache.hadoop.metrics.lib.MetricsRegistry registry>;
v = v[v];
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (int)>(v) <java.lang.invoke.StringConcatFactory: java.lang.invoke.CallSite makeConcatWithConstants(java.lang.invoke.MethodHandles$Lookup,java.lang.String,java.lang.invoke.MethodType,java.lang.String,java.lang.Object[])>("getGroups\u0001s");
v = v[v];
v = virtualinvoke v.<oadd.org.apache.hadoop.metrics.lib.MetricsRegistry: oadd.org.apache.hadoop.metrics.lib.MutableQuantiles newQuantiles(java.lang.String,java.lang.String,java.lang.String,java.lang.String,int)>(v, "Get groups", "ops", "latency", v);
v[v] = v;
v = v + 1;
goto label;
label:
v = <oadd.org.apache.hadoop.security.UserGroupInformation: oadd.org.apache.hadoop.security.UserGroupInformation$UgiMetrics metrics>;
v.<oadd.org.apache.hadoop.security.UserGroupInformation$UgiMetrics: oadd.org.apache.hadoop.metrics.lib.MutableQuantiles[] getGroupsQuantiles> = v;
label:
return;
catch java.io.IOException from label to label with label;
catch java.lang.NumberFormatException from label to label with label;
}
public static void setConfiguration(oadd.org.apache.hadoop.conf.Configuration)
{
oadd.org.apache.hadoop.conf.Configuration v;
v := @parameter: oadd.org.apache.hadoop.conf.Configuration;
staticinvoke <oadd.org.apache.hadoop.security.UserGroupInformation: void initialize(oadd.org.apache.hadoop.conf.Configuration,boolean)>(v, 1);
return;
}
public static void reset()
{
<oadd.org.apache.hadoop.security.UserGroupInformation: oadd.org.apache.hadoop.security.UserGroupInformation$AuthenticationMethod authenticationMethod> = null;
<oadd.org.apache.hadoop.security.UserGroupInformation: oadd.org.apache.hadoop.conf.Configuration conf> = null;
<oadd.org.apache.hadoop.security.UserGroupInformation: oadd.org.apache.hadoop.security.Groups groups> = null;
<oadd.org.apache.hadoop.security.UserGroupInformation: long kerberosMinSecondsBeforeRelogin> = 0L;
staticinvoke <oadd.org.apache.hadoop.security.UserGroupInformation: void setLoginUser(oadd.org.apache.hadoop.security.UserGroupInformation)>(null);
staticinvoke <oadd.org.apache.hadoop.security.HadoopKerberosName: void setRules(java.lang.String)>(null);
return;
}
public static boolean isSecurityEnabled()
{
oadd.org.apache.hadoop.security.UserGroupInformation$AuthenticationMethod v;
boolean v, v;
v = <oadd.org.apache.hadoop.security.UserGroupInformation$AuthenticationMethod: oadd.org.apache.hadoop.security.UserGroupInformation$AuthenticationMethod SIMPLE>;
v = staticinvoke <oadd.org.apache.hadoop.security.UserGroupInformation: boolean isAuthenticationMethodEnabled(oadd.org.apache.hadoop.security.UserGroupInformation$AuthenticationMethod)>(v);
if v != 0 goto label;
v = 1;
goto label;
label:
v = 0;
label:
return v;
}
private static boolean isAuthenticationMethodEnabled(oadd.org.apache.hadoop.security.UserGroupInformation$AuthenticationMethod)
{
oadd.org.apache.hadoop.security.UserGroupInformation$AuthenticationMethod v, v;
boolean v;
v := @parameter: oadd.org.apache.hadoop.security.UserGroupInformation$AuthenticationMethod;
staticinvoke <oadd.org.apache.hadoop.security.UserGroupInformation: void ensureInitialized()>();
v = <oadd.org.apache.hadoop.security.UserGroupInformation: oadd.org.apache.hadoop.security.UserGroupInformation$AuthenticationMethod authenticationMethod>;
if v != v goto label;
v = 1;
goto label;
label:
v = 0;
label:
return v;
}
private static java.lang.String getOSLoginModuleName()
{
java.lang.String v, v, v;
boolean v, v, v, v, v, v;
v = <oadd.org.apache.hadoop.util.PlatformName: boolean IBM_JAVA>;
if v == 0 goto label;
v = <oadd.org.apache.hadoop.security.UserGroupInformation: boolean windows>;
if v == 0 goto label;
v = <oadd.org.apache.hadoop.security.UserGroupInformation: boolean is64Bit>;
if v == 0 goto label;
v = "com.ibm.security.auth.module.Win64LoginModule";
goto label;
label:
v = "com.ibm.security.auth.module.NTLoginModule";
label:
return v;
label:
v = <oadd.org.apache.hadoop.security.UserGroupInformation: boolean aix>;
if v == 0 goto label;
v = <oadd.org.apache.hadoop.security.UserGroupInformation: boolean is64Bit>;
if v == 0 goto label;
v = "com.ibm.security.auth.module.AIX64LoginModule";
goto label;
label:
v = "com.ibm.security.auth.module.AIXLoginModule";
label:
return v;
label:
return "com.ibm.security.auth.module.LinuxLoginModule";
label:
v = <oadd.org.apache.hadoop.security.UserGroupInformation: boolean windows>;
if v == 0 goto label;
v = "com.sun.security.auth.module.NTLoginModule";
goto label;
label:
v = "com.sun.security.auth.module.UnixLoginModule";
label:
return v;
}
private static java.lang.Class getOsPrincipalClass()
{
org.slf4j.Logger v;
java.lang.Class v;
java.lang.ClassNotFoundException v;
java.lang.ClassLoader v;
java.lang.String v, v, v, v;
boolean v, v, v, v, v;
v = staticinvoke <java.lang.ClassLoader: java.lang.ClassLoader getSystemClassLoader()>();
label:
v = <oadd.org.apache.hadoop.util.PlatformName: boolean IBM_JAVA>;
if v == 0 goto label;
v = <oadd.org.apache.hadoop.security.UserGroupInformation: boolean is64Bit>;
if v == 0 goto label;
v = "com.ibm.security.auth.UsernamePrincipal";
goto label;
label:
v = <oadd.org.apache.hadoop.security.UserGroupInformation: boolean windows>;
if v == 0 goto label;
v = "com.ibm.security.auth.NTUserPrincipal";
goto label;
label:
v = <oadd.org.apache.hadoop.security.UserGroupInformation: boolean aix>;
if v == 0 goto label;
v = "com.ibm.security.auth.AIXPrincipal";
goto label;
label:
v = "com.ibm.security.auth.LinuxPrincipal";
goto label;
label:
v = <oadd.org.apache.hadoop.security.UserGroupInformation: boolean windows>;
if v == 0 goto label;
v = "com.sun.security.auth.NTUserPrincipal";
goto label;
label:
v = "com.sun.security.auth.UnixPrincipal";
label:
v = v;
label:
v = virtualinvoke v.<java.lang.ClassLoader: java.lang.Class loadClass(java.lang.String)>(v);
label:
return v;
label:
v := @caughtexception;
v = <oadd.org.apache.hadoop.security.UserGroupInformation: org.slf4j.Logger LOG>;
v = virtualinvoke v.<java.lang.ClassNotFoundException: java.lang.String getMessage()>();
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.lang.String)>(v) <java.lang.invoke.StringConcatFactory: java.lang.invoke.CallSite makeConcatWithConstants(java.lang.invoke.MethodHandles$Lookup,java.lang.String,java.lang.invoke.MethodType,java.lang.String,java.lang.Object[])>("Unable to find JAAS classes:\u0001");
interfaceinvoke v.<org.slf4j.Logger: void error(java.lang.String)>(v);
return null;
catch java.lang.ClassNotFoundException from label to label with label;
}
private static oadd.org.apache.hadoop.security.UserGroupInformation$HadoopLoginContext newLoginContext(java.lang.String, javax.security.auth.Subject, oadd.org.apache.hadoop.security.UserGroupInformation$HadoopConfiguration) throws javax.security.auth.login.LoginException
{
java.lang.Throwable v;
oadd.org.apache.hadoop.security.UserGroupInformation$HadoopConfiguration v;
javax.security.auth.Subject v;
java.lang.Thread v;
java.lang.Class v;
java.lang.ClassLoader v, v;
java.lang.String v;
oadd.org.apache.hadoop.security.UserGroupInformation$HadoopLoginContext v;
v := @parameter: java.lang.String;
v := @parameter: javax.security.auth.Subject;
v := @parameter: oadd.org.apache.hadoop.security.UserGroupInformation$HadoopConfiguration;
v = staticinvoke <java.lang.Thread: java.lang.Thread currentThread()>();
v = virtualinvoke v.<java.lang.Thread: java.lang.ClassLoader getContextClassLoader()>();
v = class "Loadd/org/apache/hadoop/security/UserGroupInformation$HadoopLoginModule;";
v = virtualinvoke v.<java.lang.Class: java.lang.ClassLoader getClassLoader()>();
virtualinvoke v.<java.lang.Thread: void setContextClassLoader(java.lang.ClassLoader)>(v);
label:
v = new oadd.org.apache.hadoop.security.UserGroupInformation$HadoopLoginContext;
specialinvoke v.<oadd.org.apache.hadoop.security.UserGroupInformation$HadoopLoginContext: void <init>(java.lang.String,javax.security.auth.Subject,oadd.org.apache.hadoop.security.UserGroupInformation$HadoopConfiguration)>(v, v, v);
label:
virtualinvoke v.<java.lang.Thread: void setContextClassLoader(java.lang.ClassLoader)>(v);
return v;
label:
v := @caughtexception;
virtualinvoke v.<java.lang.Thread: void setContextClassLoader(java.lang.ClassLoader)>(v);
throw v;
catch java.lang.Throwable from label to label with label;
}
private oadd.org.apache.hadoop.security.UserGroupInformation$HadoopLoginContext getLogin()
{
oadd.org.apache.hadoop.security.UserGroupInformation v;
oadd.org.apache.hadoop.security.User v;
javax.security.auth.login.LoginContext v;
boolean v;
v := @this: oadd.org.apache.hadoop.security.UserGroupInformation;
v = v.<oadd.org.apache.hadoop.security.UserGroupInformation: oadd.org.apache.hadoop.security.User user>;
v = virtualinvoke v.<oadd.org.apache.hadoop.security.User: javax.security.auth.login.LoginContext getLogin()>();
v = v instanceof oadd.org.apache.hadoop.security.UserGroupInformation$HadoopLoginContext;
if v != 0 goto label;
v = null;
label:
return v;
}
private void setLogin(javax.security.auth.login.LoginContext)
{
oadd.org.apache.hadoop.security.User v;
oadd.org.apache.hadoop.security.UserGroupInformation v;
javax.security.auth.login.LoginContext v;
v := @this: oadd.org.apache.hadoop.security.UserGroupInformation;
v := @parameter: javax.security.auth.login.LoginContext;
v = v.<oadd.org.apache.hadoop.security.UserGroupInformation: oadd.org.apache.hadoop.security.User user>;
virtualinvoke v.<oadd.org.apache.hadoop.security.User: void setLogin(javax.security.auth.login.LoginContext)>(v);
return;
}
private void setLastLogin(long)
{
oadd.org.apache.hadoop.security.User v;
long v;
oadd.org.apache.hadoop.security.UserGroupInformation v;
v := @this: oadd.org.apache.hadoop.security.UserGroupInformation;
v := @parameter: long;
v = v.<oadd.org.apache.hadoop.security.UserGroupInformation: oadd.org.apache.hadoop.security.User user>;
virtualinvoke v.<oadd.org.apache.hadoop.security.User: void setLastLogin(long)>(v);
return;
}
void <init>(javax.security.auth.Subject)
{
java.lang.IllegalStateException v;
oadd.org.apache.hadoop.security.UserGroupInformation v;
java.util.Iterator v;
java.util.Set v;
javax.security.auth.Subject v;
oadd.org.apache.hadoop.security.User v, v;
java.lang.Object v;
java.lang.String v;
v := @this: oadd.org.apache.hadoop.security.UserGroupInformation;
v := @parameter: javax.security.auth.Subject;
specialinvoke v.<java.lang.Object: void <init>()>();
v.<oadd.org.apache.hadoop.security.UserGroupInformation: javax.security.auth.Subject subject> = v;
v = virtualinvoke v.<javax.security.auth.Subject: java.util.Set getPrincipals(java.lang.Class)>(class "Loadd/org/apache/hadoop/security/User;");
v = interfaceinvoke v.<java.util.Set: java.util.Iterator iterator()>();
v = interfaceinvoke v.<java.util.Iterator: java.lang.Object next()>();
v.<oadd.org.apache.hadoop.security.UserGroupInformation: oadd.org.apache.hadoop.security.User user> = v;
v = v.<oadd.org.apache.hadoop.security.UserGroupInformation: oadd.org.apache.hadoop.security.User user>;
if v == null goto label;
v = v.<oadd.org.apache.hadoop.security.UserGroupInformation: oadd.org.apache.hadoop.security.User user>;
v = virtualinvoke v.<oadd.org.apache.hadoop.security.User: java.lang.String getName()>();
if v != null goto label;
label:
v = new java.lang.IllegalStateException;
specialinvoke v.<java.lang.IllegalStateException: void <init>(java.lang.String)>("Subject does not contain a valid User");
throw v;
label:
return;
}
public boolean hasKerberosCredentials()
{
oadd.org.apache.hadoop.security.UserGroupInformation v;
oadd.org.apache.hadoop.security.User v;
oadd.org.apache.hadoop.security.UserGroupInformation$AuthenticationMethod v, v;
boolean v;
v := @this: oadd.org.apache.hadoop.security.UserGroupInformation;
v = v.<oadd.org.apache.hadoop.security.UserGroupInformation: oadd.org.apache.hadoop.security.User user>;
v = virtualinvoke v.<oadd.org.apache.hadoop.security.User: oadd.org.apache.hadoop.security.UserGroupInformation$AuthenticationMethod getAuthenticationMethod()>();
v = <oadd.org.apache.hadoop.security.UserGroupInformation$AuthenticationMethod: oadd.org.apache.hadoop.security.UserGroupInformation$AuthenticationMethod KERBEROS>;
if v != v goto label;
v = 1;
goto label;
label:
v = 0;
label:
return v;
}
public static oadd.org.apache.hadoop.security.UserGroupInformation getCurrentUser() throws java.io.IOException
{
java.security.AccessControlContext v;
oadd.org.apache.hadoop.security.UserGroupInformation v, v;
java.util.Set v;
javax.security.auth.Subject v;
boolean v;
v = staticinvoke <java.security.AccessController: java.security.AccessControlContext getContext()>();
v = staticinvoke <javax.security.auth.Subject: javax.security.auth.Subject getSubject(java.security.AccessControlContext)>(v);
if v == null goto label;
v = virtualinvoke v.<javax.security.auth.Subject: java.util.Set getPrincipals(java.lang.Class)>(class "Loadd/org/apache/hadoop/security/User;");
v = interfaceinvoke v.<java.util.Set: boolean isEmpty()>();
if v == 0 goto label;
label:
v = staticinvoke <oadd.org.apache.hadoop.security.UserGroupInformation: oadd.org.apache.hadoop.security.UserGroupInformation getLoginUser()>();
return v;
label:
v = new oadd.org.apache.hadoop.security.UserGroupInformation;
specialinvoke v.<oadd.org.apache.hadoop.security.UserGroupInformation: void <init>(javax.security.auth.Subject)>(v);
return v;
}
public static oadd.org.apache.hadoop.security.UserGroupInformation getBestUGI(java.lang.String, java.lang.String) throws java.io.IOException
{
oadd.org.apache.hadoop.security.UserGroupInformation v, v, v;
java.lang.String v, v;
v := @parameter: java.lang.String;
v := @parameter: java.lang.String;
if v == null goto label;
v = staticinvoke <oadd.org.apache.hadoop.security.UserGroupInformation: oadd.org.apache.hadoop.security.UserGroupInformation getUGIFromTicketCache(java.lang.String,java.lang.String)>(v, v);
return v;
label:
if v != null goto label;
v = staticinvoke <oadd.org.apache.hadoop.security.UserGroupInformation: oadd.org.apache.hadoop.security.UserGroupInformation getCurrentUser()>();
return v;
label:
v = staticinvoke <oadd.org.apache.hadoop.security.UserGroupInformation: oadd.org.apache.hadoop.security.UserGroupInformation createRemoteUser(java.lang.String)>(v);
return v;
}
public static oadd.org.apache.hadoop.security.UserGroupInformation getUGIFromTicketCache(java.lang.String, java.lang.String) throws java.io.IOException
{
oadd.org.apache.hadoop.security.UserGroupInformation v, v;
oadd.org.apache.hadoop.security.UserGroupInformation$AuthenticationMethod v;
oadd.org.apache.hadoop.security.UserGroupInformation$LoginParam v, v;
oadd.org.apache.hadoop.security.UserGroupInformation$LoginParams v;
java.lang.String v, v;
boolean v;
v := @parameter: java.lang.String;
v := @parameter: java.lang.String;
v = <oadd.org.apache.hadoop.security.UserGroupInformation$AuthenticationMethod: oadd.org.apache.hadoop.security.UserGroupInformation$AuthenticationMethod KERBEROS>;
v = staticinvoke <oadd.org.apache.hadoop.security.UserGroupInformation: boolean isAuthenticationMethodEnabled(oadd.org.apache.hadoop.security.UserGroupInformation$AuthenticationMethod)>(v);
if v != 0 goto label;
v = staticinvoke <oadd.org.apache.hadoop.security.UserGroupInformation: oadd.org.apache.hadoop.security.UserGroupInformation getBestUGI(java.lang.String,java.lang.String)>(null, v);
return v;
label:
v = new oadd.org.apache.hadoop.security.UserGroupInformation$LoginParams;
specialinvoke v.<oadd.org.apache.hadoop.security.UserGroupInformation$LoginParams: void <init>()>();
v = <oadd.org.apache.hadoop.security.UserGroupInformation$LoginParam: oadd.org.apache.hadoop.security.UserGroupInformation$LoginParam PRINCIPAL>;
virtualinvoke v.<oadd.org.apache.hadoop.security.UserGroupInformation$LoginParams: java.lang.String put(oadd.org.apache.hadoop.security.UserGroupInformation$LoginParam,java.lang.String)>(v, v);
v = <oadd.org.apache.hadoop.security.UserGroupInformation$LoginParam: oadd.org.apache.hadoop.security.UserGroupInformation$LoginParam CCACHE>;
virtualinvoke v.<oadd.org.apache.hadoop.security.UserGroupInformation$LoginParams: java.lang.String put(oadd.org.apache.hadoop.security.UserGroupInformation$LoginParam,java.lang.String)>(v, v);
v = staticinvoke <oadd.org.apache.hadoop.security.UserGroupInformation: oadd.org.apache.hadoop.security.UserGroupInformation doSubjectLogin(javax.security.auth.Subject,oadd.org.apache.hadoop.security.UserGroupInformation$LoginParams)>(null, v);
return v;
}
public static oadd.org.apache.hadoop.security.UserGroupInformation getUGIFromSubject(javax.security.auth.Subject) throws java.io.IOException
{
oadd.org.apache.hadoop.security.UserGroupInformation v;
java.util.Set v;
javax.security.auth.Subject v;
oadd.org.apache.hadoop.security.KerberosAuthException v, v;
boolean v;
v := @parameter: javax.security.auth.Subject;
if v != null goto label;
v = new oadd.org.apache.hadoop.security.KerberosAuthException;
specialinvoke v.<oadd.org.apache.hadoop.security.KerberosAuthException: void <init>(java.lang.String)>("Subject must not be null");
throw v;
label:
v = virtualinvoke v.<javax.security.auth.Subject: java.util.Set getPrincipals(java.lang.Class)>(class "Ljavax/security/auth/kerberos/KerberosPrincipal;");
v = interfaceinvoke v.<java.util.Set: boolean isEmpty()>();
if v == 0 goto label;
v = new oadd.org.apache.hadoop.security.KerberosAuthException;
specialinvoke v.<oadd.org.apache.hadoop.security.KerberosAuthException: void <init>(java.lang.String)>("Provided Subject must contain a KerberosPrincipal");
throw v;
label:
v = staticinvoke <oadd.org.apache.hadoop.security.UserGroupInformation: oadd.org.apache.hadoop.security.UserGroupInformation doSubjectLogin(javax.security.auth.Subject,oadd.org.apache.hadoop.security.UserGroupInformation$LoginParams)>(v, null);
return v;
}
public static oadd.org.apache.hadoop.security.UserGroupInformation getLoginUser() throws java.io.IOException
{
oadd.org.apache.hadoop.security.UserGroupInformation v;
java.lang.Object v;
java.util.concurrent.atomic.AtomicReference v, v, v;
boolean v;
v = <oadd.org.apache.hadoop.security.UserGroupInformation: java.util.concurrent.atomic.AtomicReference loginUserRef>;
v = virtualinvoke v.<java.util.concurrent.atomic.AtomicReference: java.lang.Object get()>();
if v != null goto label;
v = staticinvoke <oadd.org.apache.hadoop.security.UserGroupInformation: oadd.org.apache.hadoop.security.UserGroupInformation createLoginUser(javax.security.auth.Subject)>(null);
label:
v = <oadd.org.apache.hadoop.security.UserGroupInformation: java.util.concurrent.atomic.AtomicReference loginUserRef>;
v = virtualinvoke v.<java.util.concurrent.atomic.AtomicReference: boolean compareAndSet(java.lang.Object,java.lang.Object)>(null, v);
if v == 0 goto label;
v = v;
virtualinvoke v.<oadd.org.apache.hadoop.security.UserGroupInformation: void spawnAutoRenewalThreadForUserCreds(boolean)>(0);
goto label;
label:
v = <oadd.org.apache.hadoop.security.UserGroupInformation: java.util.concurrent.atomic.AtomicReference loginUserRef>;
virtualinvoke v.<java.util.concurrent.atomic.AtomicReference: java.lang.Object get()>();
label:
if v == null goto label;
label:
return v;
}
public static java.lang.String trimLoginMethod(java.lang.String)
{
int v;
java.lang.String v;
v := @parameter: java.lang.String;
v = virtualinvoke v.<java.lang.String: int indexOf(int)>(32);
if v < 0 goto label;
v = virtualinvoke v.<java.lang.String: java.lang.String substring(int,int)>(0, v);
label:
return v;
}
public static void loginUserFromSubject(javax.security.auth.Subject) throws java.io.IOException
{
oadd.org.apache.hadoop.security.UserGroupInformation v;
javax.security.auth.Subject v;
v := @parameter: javax.security.auth.Subject;
v = staticinvoke <oadd.org.apache.hadoop.security.UserGroupInformation: oadd.org.apache.hadoop.security.UserGroupInformation createLoginUser(javax.security.auth.Subject)>(v);
staticinvoke <oadd.org.apache.hadoop.security.UserGroupInformation: void setLoginUser(oadd.org.apache.hadoop.security.UserGroupInformation)>(v);
return;
}
private static oadd.org.apache.hadoop.security.UserGroupInformation createLoginUser(javax.security.auth.Subject) throws java.io.IOException
{
java.lang.Integer v;
oadd.org.apache.hadoop.conf.Configuration v, v, v;
boolean v, v, v, v;
java.io.FileNotFoundException v;
java.lang.String[] v;
int v, v, v, v;
oadd.org.apache.hadoop.security.Credentials v, v;
java.lang.String v, v, v, v, v, v, v, v, v;
oadd.org.apache.hadoop.security.UserGroupInformation v, v, v;
org.slf4j.Logger v, v, v, v, v, v;
java.io.IOException v;
java.io.File v, v;
javax.security.auth.Subject v;
v := @parameter: javax.security.auth.Subject;
v = staticinvoke <oadd.org.apache.hadoop.security.UserGroupInformation: oadd.org.apache.hadoop.security.UserGroupInformation doSubjectLogin(javax.security.auth.Subject,oadd.org.apache.hadoop.security.UserGroupInformation$LoginParams)>(v, null);
label:
v = staticinvoke <java.lang.System: java.lang.String getenv(java.lang.String)>("HADOOP_PROXY_USER");
if v != null goto label;
v = staticinvoke <java.lang.System: java.lang.String getProperty(java.lang.String)>("HADOOP_PROXY_USER");
if v != null goto label;
v = v;
goto label;
label:
v = staticinvoke <oadd.org.apache.hadoop.security.UserGroupInformation: oadd.org.apache.hadoop.security.UserGroupInformation createProxyUser(java.lang.String,oadd.org.apache.hadoop.security.UserGroupInformation)>(v, v);
label:
v = v;
v = staticinvoke <java.lang.System: java.lang.String getProperty(java.lang.String)>("hadoop.token.files");
if v != null goto label;
v = <oadd.org.apache.hadoop.security.UserGroupInformation: oadd.org.apache.hadoop.conf.Configuration conf>;
v = virtualinvoke v.<oadd.org.apache.hadoop.conf.Configuration: java.lang.String get(java.lang.String)>("hadoop.token.files");
label:
if v == null goto label;
v = staticinvoke <oadd.org.apache.hadoop.util.StringUtils: java.lang.String[] getTrimmedStrings(java.lang.String)>(v);
v = lengthof v;
v = 0;
label:
if v >= v goto label;
v = v[v];
v = virtualinvoke v.<java.lang.String: int length()>();
if v <= 0 goto label;
v = new java.io.File;
specialinvoke v.<java.io.File: void <init>(java.lang.String)>(v);
v = virtualinvoke v.<java.io.File: boolean exists()>();
if v == 0 goto label;
v = virtualinvoke v.<java.io.File: boolean isFile()>();
if v == 0 goto label;
v = <oadd.org.apache.hadoop.security.UserGroupInformation: oadd.org.apache.hadoop.conf.Configuration conf>;
v = staticinvoke <oadd.org.apache.hadoop.security.Credentials: oadd.org.apache.hadoop.security.Credentials readTokenStorageFile(java.io.File,oadd.org.apache.hadoop.conf.Configuration)>(v, v);
virtualinvoke v.<oadd.org.apache.hadoop.security.UserGroupInformation: void addCredentials(oadd.org.apache.hadoop.security.Credentials)>(v);
goto label;
label:
v = <oadd.org.apache.hadoop.security.UserGroupInformation: org.slf4j.Logger LOG>;
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.lang.String)>(v) <java.lang.invoke.StringConcatFactory: java.lang.invoke.CallSite makeConcatWithConstants(java.lang.invoke.MethodHandles$Lookup,java.lang.String,java.lang.invoke.MethodType,java.lang.String,java.lang.Object[])>("tokenFile(\u) does not exist");
interfaceinvoke v.<org.slf4j.Logger: void info(java.lang.String)>(v);
label:
v = v + 1;
goto label;
label:
v = staticinvoke <java.lang.System: java.lang.String getenv(java.lang.String)>("HADOOP_TOKEN_FILE_LOCATION");
if v == null goto label;
v = new java.io.File;
specialinvoke v.<java.io.File: void <init>(java.lang.String)>(v);
v = <oadd.org.apache.hadoop.security.UserGroupInformation: org.slf4j.Logger LOG>;
v = virtualinvoke v.<java.io.File: java.lang.String getCanonicalPath()>();
interfaceinvoke v.<org.slf4j.Logger: void debug(java.lang.String,java.lang.Object,java.lang.Object)>("Reading credentials from location set in {}: {}", "HADOOP_TOKEN_FILE_LOCATION", v);
v = virtualinvoke v.<java.io.File: boolean isFile()>();
if v != 0 goto label;
v = new java.io.FileNotFoundException;
v = virtualinvoke v.<java.io.File: java.lang.String getCanonicalPath()>();
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.lang.String)>(v) <java.lang.invoke.StringConcatFactory: java.lang.invoke.CallSite makeConcatWithConstants(java.lang.invoke.MethodHandles$Lookup,java.lang.String,java.lang.invoke.MethodType,java.lang.String,java.lang.Object[])>("Source file \u from HADOOP_TOKEN_FILE_LOCATION not found");
specialinvoke v.<java.io.FileNotFoundException: void <init>(java.lang.String)>(v);
throw v;
label:
v = <oadd.org.apache.hadoop.security.UserGroupInformation: oadd.org.apache.hadoop.conf.Configuration conf>;
v = staticinvoke <oadd.org.apache.hadoop.security.Credentials: oadd.org.apache.hadoop.security.Credentials readTokenStorageFile(java.io.File,oadd.org.apache.hadoop.conf.Configuration)>(v, v);
v = <oadd.org.apache.hadoop.security.UserGroupInformation: org.slf4j.Logger LOG>;
v = virtualinvoke v.<oadd.org.apache.hadoop.security.Credentials: int numberOfTokens()>();
v = staticinvoke <java.lang.Integer: java.lang.Integer valueOf(int)>(v);
interfaceinvoke v.<org.slf4j.Logger: void debug(java.lang.String,java.lang.Object)>("Loaded {} tokens", v);
virtualinvoke v.<oadd.org.apache.hadoop.security.UserGroupInformation: void addCredentials(oadd.org.apache.hadoop.security.Credentials)>(v);
label:
goto label;
label:
v := @caughtexception;
v = <oadd.org.apache.hadoop.security.UserGroupInformation: org.slf4j.Logger LOG>;
interfaceinvoke v.<org.slf4j.Logger: void debug(java.lang.String,java.lang.Throwable)>("failure to load login credentials", v);
throw v;
label:
v = <oadd.org.apache.hadoop.security.UserGroupInformation: org.slf4j.Logger LOG>;
v = interfaceinvoke v.<org.slf4j.Logger: boolean isDebugEnabled()>();
if v == 0 goto label;
v = <oadd.org.apache.hadoop.security.UserGroupInformation: org.slf4j.Logger LOG>;
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (oadd.org.apache.hadoop.security.UserGroupInformation)>(v) <java.lang.invoke.StringConcatFactory: java.lang.invoke.CallSite makeConcatWithConstants(java.lang.invoke.MethodHandles$Lookup,java.lang.String,java.lang.invoke.MethodType,java.lang.String,java.lang.Object[])>("UGI loginUser:\u0001");
interfaceinvoke v.<org.slf4j.Logger: void debug(java.lang.String)>(v);
label:
return v;
catch java.io.IOException from label to label with label;
}
public static void setLoginUser(oadd.org.apache.hadoop.security.UserGroupInformation)
{
oadd.org.apache.hadoop.security.UserGroupInformation v;
java.util.concurrent.atomic.AtomicReference v;
v := @parameter: oadd.org.apache.hadoop.security.UserGroupInformation;
v = <oadd.org.apache.hadoop.security.UserGroupInformation: java.util.concurrent.atomic.AtomicReference loginUserRef>;
virtualinvoke v.<java.util.concurrent.atomic.AtomicReference: void set(java.lang.Object)>(v);
return;
}
private java.lang.String getKeytab()
{
oadd.org.apache.hadoop.security.UserGroupInformation v;
oadd.org.apache.hadoop.security.UserGroupInformation$HadoopConfiguration v;
java.lang.Object v;
oadd.org.apache.hadoop.security.UserGroupInformation$LoginParam v;
oadd.org.apache.hadoop.security.UserGroupInformation$LoginParams v;
oadd.org.apache.hadoop.security.UserGroupInformation$HadoopLoginContext v;
v := @this: oadd.org.apache.hadoop.security.UserGroupInformation;
v = specialinvoke v.<oadd.org.apache.hadoop.security.UserGroupInformation: oadd.org.apache.hadoop.security.UserGroupInformation$HadoopLoginContext getLogin()>();
if v == null goto label;
v = virtualinvoke v.<oadd.org.apache.hadoop.security.UserGroupInformation$HadoopLoginContext: oadd.org.apache.hadoop.security.UserGroupInformation$HadoopConfiguration getConfiguration()>();
v = virtualinvoke v.<oadd.org.apache.hadoop.security.UserGroupInformation$HadoopConfiguration: oadd.org.apache.hadoop.security.UserGroupInformation$LoginParams getParameters()>();
v = <oadd.org.apache.hadoop.security.UserGroupInformation$LoginParam: oadd.org.apache.hadoop.security.UserGroupInformation$LoginParam KEYTAB>;
v = virtualinvoke v.<oadd.org.apache.hadoop.security.UserGroupInformation$LoginParams: java.lang.Object get(java.lang.Object)>(v);
goto label;
label:
v = null;
label:
return v;
}
private boolean isHadoopLogin()
{
oadd.org.apache.hadoop.security.UserGroupInformation v;
oadd.org.apache.hadoop.security.UserGroupInformation$HadoopLoginContext v;
boolean v;
v := @this: oadd.org.apache.hadoop.security.UserGroupInformation;
v = specialinvoke v.<oadd.org.apache.hadoop.security.UserGroupInformation: oadd.org.apache.hadoop.security.UserGroupInformation$HadoopLoginContext getLogin()>();
if v == null goto label;
v = 1;
goto label;
label:
v = 0;
label:
return v;
}
public boolean isFromKeytab()
{
oadd.org.apache.hadoop.security.UserGroupInformation v;
java.lang.String v;
boolean v, v, v;
v := @this: oadd.org.apache.hadoop.security.UserGroupInformation;
v = virtualinvoke v.<oadd.org.apache.hadoop.security.UserGroupInformation: boolean hasKerberosCredentials()>();
if v == 0 goto label;
v = specialinvoke v.<oadd.org.apache.hadoop.security.UserGroupInformation: boolean isHadoopLogin()>();
if v == 0 goto label;
v = specialinvoke v.<oadd.org.apache.hadoop.security.UserGroupInformation: java.lang.String getKeytab()>();
if v == null goto label;
v = 1;
goto label;
label:
v = 0;
label:
return v;
}
private boolean isFromTicket()
{
oadd.org.apache.hadoop.security.UserGroupInformation v;
java.lang.String v;
boolean v, v, v;
v := @this: oadd.org.apache.hadoop.security.UserGroupInformation;
v = virtualinvoke v.<oadd.org.apache.hadoop.security.UserGroupInformation: boolean hasKerberosCredentials()>();
if v == 0 goto label;
v = specialinvoke v.<oadd.org.apache.hadoop.security.UserGroupInformation: boolean isHadoopLogin()>();
if v == 0 goto label;
v = specialinvoke v.<oadd.org.apache.hadoop.security.UserGroupInformation: java.lang.String getKeytab()>();
if v != null goto label;
v = 1;
goto label;
label:
v = 0;
label:
return v;
}
private javax.security.auth.kerberos.KerberosTicket getTGT()
{
oadd.org.apache.hadoop.security.UserGroupInformation v;
java.util.Iterator v;
java.util.Set v;
java.lang.Object v;
javax.security.auth.Subject v;
boolean v, v;
v := @this: oadd.org.apache.hadoop.security.UserGroupInformation;
v = v.<oadd.org.apache.hadoop.security.UserGroupInformation: javax.security.auth.Subject subject>;
v = virtualinvoke v.<javax.security.auth.Subject: java.util.Set getPrivateCredentials(java.lang.Class)>(class "Ljavax/security/auth/kerberos/KerberosTicket;");
v = interfaceinvoke v.<java.util.Set: java.util.Iterator iterator()>();
label:
v = interfaceinvoke v.<java.util.Iterator: boolean hasNext()>();
if v == 0 goto label;
v = interfaceinvoke v.<java.util.Iterator: java.lang.Object next()>();
v = staticinvoke <oadd.org.apache.hadoop.security.SecurityUtil: boolean isOriginalTGT(javax.security.auth.kerberos.KerberosTicket)>(v);
if v == 0 goto label;
return v;
label:
return null;
}
private long getRefreshTime(javax.security.auth.kerberos.KerberosTicket)
{
oadd.org.apache.hadoop.security.UserGroupInformation v;
java.util.Date v, v;
long v, v, v, v;
javax.security.auth.kerberos.KerberosTicket v;
float v;
v := @this: oadd.org.apache.hadoop.security.UserGroupInformation;
v := @parameter: javax.security.auth.kerberos.KerberosTicket;
v = virtualinvoke v.<javax.security.auth.kerberos.KerberosTicket: java.util.Date getStartTime()>();
v = virtualinvoke v.<java.util.Date: long getTime()>();
v = virtualinvoke v.<javax.security.auth.kerberos.KerberosTicket: java.util.Date getEndTime()>();
v = virtualinvoke v.<java.util.Date: long getTime()>();
v = v - v;
v = v * 0.8F;
v = v + v;
return v;
}
public boolean shouldRelogin()
{
oadd.org.apache.hadoop.security.UserGroupInformation v;
boolean v, v, v;
v := @this: oadd.org.apache.hadoop.security.UserGroupInformation;
v = virtualinvoke v.<oadd.org.apache.hadoop.security.UserGroupInformation: boolean hasKerberosCredentials()>();
if v == 0 goto label;
v = specialinvoke v.<oadd.org.apache.hadoop.security.UserGroupInformation: boolean isHadoopLogin()>();
if v == 0 goto label;
v = 1;
goto label;
label:
v = 0;
label:
return v;
}
void spawnAutoRenewalThreadForUserCreds(boolean)
{
oadd.org.apache.hadoop.security.UserGroupInformation v;
oadd.org.apache.hadoop.security.UserGroupInformation$AutoRenewalForUserCredsRunnable v;
long v;
javax.security.auth.kerberos.KerberosTicket v;
java.lang.Thread v;
oadd.org.apache.hadoop.conf.Configuration v;
java.lang.String v, v, v;
boolean v, v, v;
v := @this: oadd.org.apache.hadoop.security.UserGroupInformation;
v := @parameter: boolean;
if v != 0 goto label;
v = virtualinvoke v.<oadd.org.apache.hadoop.security.UserGroupInformation: boolean shouldRelogin()>();
if v == 0 goto label;
v = virtualinvoke v.<oadd.org.apache.hadoop.security.UserGroupInformation: boolean isFromKeytab()>();
if v == 0 goto label;
label:
return;
label:
v = specialinvoke v.<oadd.org.apache.hadoop.security.UserGroupInformation: javax.security.auth.kerberos.KerberosTicket getTGT()>();
if v != null goto label;
return;
label:
v = <oadd.org.apache.hadoop.security.UserGroupInformation: oadd.org.apache.hadoop.conf.Configuration conf>;
v = virtualinvoke v.<oadd.org.apache.hadoop.conf.Configuration: java.lang.String get(java.lang.String,java.lang.String)>("hadoop.kerberos.kinit.command", "kinit");
v = specialinvoke v.<oadd.org.apache.hadoop.security.UserGroupInformation: long getRefreshTime(javax.security.auth.kerberos.KerberosTicket)>(v);
v = new java.lang.Thread;
v = new oadd.org.apache.hadoop.security.UserGroupInformation$AutoRenewalForUserCredsRunnable;
specialinvoke v.<oadd.org.apache.hadoop.security.UserGroupInformation$AutoRenewalForUserCredsRunnable: void <init>(oadd.org.apache.hadoop.security.UserGroupInformation,javax.security.auth.kerberos.KerberosTicket,java.lang.String,long)>(v, v, v, v);
specialinvoke v.<java.lang.Thread: void <init>(java.lang.Runnable)>(v);
virtualinvoke v.<java.lang.Thread: void setDaemon(boolean)>(1);
v = virtualinvoke v.<oadd.org.apache.hadoop.security.UserGroupInformation: java.lang.String getUserName()>();
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.lang.String)>(v) <java.lang.invoke.StringConcatFactory: java.lang.invoke.CallSite makeConcatWithConstants(java.lang.invoke.MethodHandles$Lookup,java.lang.String,java.lang.invoke.MethodType,java.lang.String,java.lang.Object[])>("TGT Renewer for \u0001");
virtualinvoke v.<java.lang.Thread: void setName(java.lang.String)>(v);
virtualinvoke v.<java.lang.Thread: void start()>();
return;
}
static long getNextTgtRenewalTime(long, long, oadd.org.apache.hadoop.io.retry.RetryPolicy) throws java.lang.Exception
{
long v, v, v, v, v, v, v;
oadd.org.apache.hadoop.io.retry.RetryPolicy v;
oadd.org.apache.hadoop.metrics.lib.MutableGaugeInt v;
oadd.org.apache.hadoop.security.UserGroupInformation$UgiMetrics v;
int v;
oadd.org.apache.hadoop.io.retry.RetryPolicy$RetryAction v;
v := @parameter: long;
v := @parameter: long;
v := @parameter: oadd.org.apache.hadoop.io.retry.RetryPolicy;
v = <oadd.org.apache.hadoop.security.UserGroupInformation: long kerberosMinSecondsBeforeRelogin>;
v = v - v;
v = <oadd.org.apache.hadoop.security.UserGroupInformation: oadd.org.apache.hadoop.security.UserGroupInformation$UgiMetrics metrics>;
v = v.<oadd.org.apache.hadoop.security.UserGroupInformation$UgiMetrics: oadd.org.apache.hadoop.metrics.lib.MutableGaugeInt renewalFailures>;
v = virtualinvoke v.<oadd.org.apache.hadoop.metrics.lib.MutableGaugeInt: int value()>();
v = interfaceinvoke v.<oadd.org.apache.hadoop.io.retry.RetryPolicy: oadd.org.apache.hadoop.io.retry.RetryPolicy$RetryAction shouldRetry(java.lang.Exception,int,int,boolean)>(null, v, 0, 0);
v = v.<oadd.org.apache.hadoop.io.retry.RetryPolicy$RetryAction: long delayMillis>;
v = v + v;
v = staticinvoke <java.lang.Math: long min(long,long)>(v, v);
return v;
}
public static void loginUserFromKeytab(java.lang.String, java.lang.String) throws java.io.IOException
{
oadd.org.apache.hadoop.security.UserGroupInformation v;
org.slf4j.Logger v;
java.lang.String v, v, v;
boolean v;
v := @parameter: java.lang.String;
v := @parameter: java.lang.String;
v = staticinvoke <oadd.org.apache.hadoop.security.UserGroupInformation: boolean isSecurityEnabled()>();
if v != 0 goto label;
return;
label:
v = staticinvoke <oadd.org.apache.hadoop.security.UserGroupInformation: oadd.org.apache.hadoop.security.UserGroupInformation loginUserFromKeytabAndReturnUGI(java.lang.String,java.lang.String)>(v, v);
staticinvoke <oadd.org.apache.hadoop.security.UserGroupInformation: void setLoginUser(oadd.org.apache.hadoop.security.UserGroupInformation)>(v);
v = <oadd.org.apache.hadoop.security.UserGroupInformation: org.slf4j.Logger LOG>;
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.lang.String,java.lang.String)>(v, v) <java.lang.invoke.StringConcatFactory: java.lang.invoke.CallSite makeConcatWithConstants(java.lang.invoke.MethodHandles$Lookup,java.lang.String,java.lang.invoke.MethodType,java.lang.String,java.lang.Object[])>("Login successful for user \u using keytab file \u0001");
interfaceinvoke v.<org.slf4j.Logger: void info(java.lang.String)>(v);
return;
}
public void logoutUserFromKeytab() throws java.io.IOException
{
javax.security.auth.login.LoginException v;
oadd.org.apache.hadoop.security.User v;
java.lang.String v, v, v, v, v, v;
oadd.org.apache.hadoop.security.KerberosAuthException v, v;
boolean v, v;
oadd.org.apache.hadoop.security.UserGroupInformation v;
org.slf4j.Logger v, v, v;
oadd.org.apache.hadoop.security.UserGroupInformation$HadoopLoginContext v;
v := @this: oadd.org.apache.hadoop.security.UserGroupInformation;
v = virtualinvoke v.<oadd.org.apache.hadoop.security.UserGroupInformation: boolean hasKerberosCredentials()>();
if v != 0 goto label;
return;
label:
v = specialinvoke v.<oadd.org.apache.hadoop.security.UserGroupInformation: oadd.org.apache.hadoop.security.UserGroupInformation$HadoopLoginContext getLogin()>();
v = specialinvoke v.<oadd.org.apache.hadoop.security.UserGroupInformation: java.lang.String getKeytab()>();
if v == null goto label;
if v != null goto label;
label:
v = new oadd.org.apache.hadoop.security.KerberosAuthException;
specialinvoke v.<oadd.org.apache.hadoop.security.KerberosAuthException: void <init>(java.lang.String)>("loginUserFromKeyTab must be done first");
throw v;
label:
v = <oadd.org.apache.hadoop.security.UserGroupInformation: org.slf4j.Logger LOG>;
v = interfaceinvoke v.<org.slf4j.Logger: boolean isDebugEnabled()>();
if v == 0 goto label;
v = <oadd.org.apache.hadoop.security.UserGroupInformation: org.slf4j.Logger LOG>;
v = virtualinvoke v.<oadd.org.apache.hadoop.security.UserGroupInformation: java.lang.String getUserName()>();
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.lang.String)>(v) <java.lang.invoke.StringConcatFactory: java.lang.invoke.CallSite makeConcatWithConstants(java.lang.invoke.MethodHandles$Lookup,java.lang.String,java.lang.invoke.MethodType,java.lang.String,java.lang.Object[])>("Initiating logout for \u0001");
interfaceinvoke v.<org.slf4j.Logger: void debug(java.lang.String)>(v);
label:
virtualinvoke v.<oadd.org.apache.hadoop.security.UserGroupInformation$HadoopLoginContext: void logout()>();
label:
goto label;
label:
v := @caughtexception;
v = new oadd.org.apache.hadoop.security.KerberosAuthException;
specialinvoke v.<oadd.org.apache.hadoop.security.KerberosAuthException: void <init>(java.lang.String,java.lang.Throwable)>("Logout failure", v);
v = v.<oadd.org.apache.hadoop.security.UserGroupInformation: oadd.org.apache.hadoop.security.User user>;
v = virtualinvoke v.<oadd.org.apache.hadoop.security.User: java.lang.String toString()>();
virtualinvoke v.<oadd.org.apache.hadoop.security.KerberosAuthException: void setUser(java.lang.String)>(v);
virtualinvoke v.<oadd.org.apache.hadoop.security.KerberosAuthException: void setKeytabFile(java.lang.String)>(v);
throw v;
label:
v = <oadd.org.apache.hadoop.security.UserGroupInformation: org.slf4j.Logger LOG>;
v = virtualinvoke v.<oadd.org.apache.hadoop.security.UserGroupInformation: java.lang.String getUserName()>();
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.lang.String,java.lang.String)>(v, v) <java.lang.invoke.StringConcatFactory: java.lang.invoke.CallSite makeConcatWithConstants(java.lang.invoke.MethodHandles$Lookup,java.lang.String,java.lang.invoke.MethodType,java.lang.String,java.lang.Object[])>("Logout successful for user \u using keytab file \u0001");
interfaceinvoke v.<org.slf4j.Logger: void info(java.lang.String)>(v);
return;
catch javax.security.auth.login.LoginException from label to label with label;
}
public void checkTGTAndReloginFromKeytab() throws java.io.IOException
{
oadd.org.apache.hadoop.security.UserGroupInformation v;
v := @this: oadd.org.apache.hadoop.security.UserGroupInformation;
specialinvoke v.<oadd.org.apache.hadoop.security.UserGroupInformation: void reloginFromKeytab(boolean)>(1);
return;
}
void fixKerberosTicketOrder()
{
java.lang.Throwable v;
java.lang.String v;
boolean v, v, v, v;
javax.security.auth.DestroyFailedException v;
oadd.org.apache.hadoop.security.UserGroupInformation v;
org.slf4j.Logger v, v, v, v;
java.util.Iterator v;
javax.security.auth.kerberos.KerberosPrincipal v, v, v;
java.util.Set v;
javax.security.auth.Subject v;
java.lang.Object v;
v := @this: oadd.org.apache.hadoop.security.UserGroupInformation;
v = virtualinvoke v.<oadd.org.apache.hadoop.security.UserGroupInformation: javax.security.auth.Subject getSubject()>();
v = virtualinvoke v.<javax.security.auth.Subject: java.util.Set getPrivateCredentials()>();
entermonitor v;
label:
v = interfaceinvoke v.<java.util.Set: java.util.Iterator iterator()>();
label:
v = interfaceinvoke v.<java.util.Iterator: boolean hasNext()>();
if v == 0 goto label;
v = interfaceinvoke v.<java.util.Iterator: java.lang.Object next()>();
v = v instanceof javax.security.auth.kerberos.KerberosTicket;
if v == 0 goto label;
v = virtualinvoke v.<javax.security.auth.kerberos.KerberosTicket: boolean isDestroyed()>();
if v != 0 goto label;
v = virtualinvoke v.<javax.security.auth.kerberos.KerberosTicket: javax.security.auth.kerberos.KerberosPrincipal getServer()>();
if v != null goto label;
label:
v = <oadd.org.apache.hadoop.security.UserGroupInformation: org.slf4j.Logger LOG>;
interfaceinvoke v.<org.slf4j.Logger: void warn(java.lang.String)>("Ticket is already destroyed, remove it.");
interfaceinvoke v.<java.util.Iterator: void remove()>();
goto label;
label:
v = virtualinvoke v.<javax.security.auth.kerberos.KerberosTicket: javax.security.auth.kerberos.KerberosPrincipal getServer()>();
v = virtualinvoke v.<javax.security.auth.kerberos.KerberosPrincipal: java.lang.String getName()>();
v = virtualinvoke v.<java.lang.String: boolean startsWith(java.lang.String)>("krbtgt");
if v != 0 goto label;
v = <oadd.org.apache.hadoop.security.UserGroupInformation: org.slf4j.Logger LOG>;
v = virtualinvoke v.<javax.security.auth.kerberos.KerberosTicket: javax.security.auth.kerberos.KerberosPrincipal getServer()>();
interfaceinvoke v.<org.slf4j.Logger: void warn(java.lang.String,java.lang.Object)>("The first kerberos ticket is not TGT(the server principal is {}), remove and destroy it.", v);
interfaceinvoke v.<java.util.Iterator: void remove()>();
label:
virtualinvoke v.<javax.security.auth.kerberos.KerberosTicket: void destroy()>();
label:
goto label;
label:
v := @caughtexception;
v = <oadd.org.apache.hadoop.security.UserGroupInformation: org.slf4j.Logger LOG>;
interfaceinvoke v.<org.slf4j.Logger: void warn(java.lang.String,java.lang.Throwable)>("destroy ticket failed", v);
goto label;
label:
exitmonitor v;
label:
return;
label:
exitmonitor v;
label:
goto label;
label:
v := @caughtexception;
exitmonitor v;
throw v;
label:
v = <oadd.org.apache.hadoop.security.UserGroupInformation: org.slf4j.Logger LOG>;
interfaceinvoke v.<org.slf4j.Logger: void warn(java.lang.String)>("Warning, no kerberos ticket found while attempting to renew ticket");
return;
catch javax.security.auth.DestroyFailedException from label to label with label;
catch java.lang.Throwable from label to label with label;
catch java.lang.Throwable from label to label with label;
}
public void reloginFromKeytab() throws java.io.IOException
{
oadd.org.apache.hadoop.security.UserGroupInformation v;
v := @this: oadd.org.apache.hadoop.security.UserGroupInformation;
specialinvoke v.<oadd.org.apache.hadoop.security.UserGroupInformation: void reloginFromKeytab(boolean)>(0);
return;
}
public void forceReloginFromKeytab() throws java.io.IOException
{
oadd.org.apache.hadoop.security.UserGroupInformation v;
v := @this: oadd.org.apache.hadoop.security.UserGroupInformation;
specialinvoke v.<oadd.org.apache.hadoop.security.UserGroupInformation: void reloginFromKeytab(boolean,boolean)>(0, 1);
return;
}
private void reloginFromKeytab(boolean) throws java.io.IOException
{
oadd.org.apache.hadoop.security.UserGroupInformation v;
boolean v;
v := @this: oadd.org.apache.hadoop.security.UserGroupInformation;
v := @parameter: boolean;
specialinvoke v.<oadd.org.apache.hadoop.security.UserGroupInformation: void reloginFromKeytab(boolean,boolean)>(v, 0);
return;
}
private void reloginFromKeytab(boolean, boolean) throws java.io.IOException
{
oadd.org.apache.hadoop.security.UserGroupInformation v;
long v, v;
javax.security.auth.kerberos.KerberosTicket v;
byte v;
oadd.org.apache.hadoop.security.KerberosAuthException v;
oadd.org.apache.hadoop.security.UserGroupInformation$HadoopLoginContext v;
boolean v, v, v, v, v;
v := @this: oadd.org.apache.hadoop.security.UserGroupInformation;
v := @parameter: boolean;
v := @parameter: boolean;
v = virtualinvoke v.<oadd.org.apache.hadoop.security.UserGroupInformation: boolean shouldRelogin()>();
if v == 0 goto label;
v = virtualinvoke v.<oadd.org.apache.hadoop.security.UserGroupInformation: boolean isFromKeytab()>();
if v != 0 goto label;
label:
return;
label:
v = specialinvoke v.<oadd.org.apache.hadoop.security.UserGroupInformation: oadd.org.apache.hadoop.security.UserGroupInformation$HadoopLoginContext getLogin()>();
if v != null goto label;
v = new oadd.org.apache.hadoop.security.KerberosAuthException;
specialinvoke v.<oadd.org.apache.hadoop.security.KerberosAuthException: void <init>(java.lang.String)>("loginUserFromKeyTab must be done first");
throw v;
label:
if v == 0 goto label;
v = specialinvoke v.<oadd.org.apache.hadoop.security.UserGroupInformation: javax.security.auth.kerberos.KerberosTicket getTGT()>();
if v == null goto label;
v = <oadd.org.apache.hadoop.security.UserGroupInformation: boolean shouldRenewImmediatelyForTests>;
if v != 0 goto label;
v = staticinvoke <oadd.org.apache.hadoop.util.Time: long now()>();
v = specialinvoke v.<oadd.org.apache.hadoop.security.UserGroupInformation: long getRefreshTime(javax.security.auth.kerberos.KerberosTicket)>(v);
v = v cmp v;
if v >= 0 goto label;
return;
label:
specialinvoke v.<oadd.org.apache.hadoop.security.UserGroupInformation: void relogin(oadd.org.apache.hadoop.security.UserGroupInformation$HadoopLoginContext,boolean)>(v, v);
return;
}
public void reloginFromTicketCache() throws java.io.IOException
{
oadd.org.apache.hadoop.security.UserGroupInformation v;
oadd.org.apache.hadoop.security.KerberosAuthException v;
oadd.org.apache.hadoop.security.UserGroupInformation$HadoopLoginContext v;
boolean v, v;
v := @this: oadd.org.apache.hadoop.security.UserGroupInformation;
v = virtualinvoke v.<oadd.org.apache.hadoop.security.UserGroupInformation: boolean shouldRelogin()>();
if v == 0 goto label;
v = specialinvoke v.<oadd.org.apache.hadoop.security.UserGroupInformation: boolean isFromTicket()>();
if v != 0 goto label;
label:
return;
label:
v = specialinvoke v.<oadd.org.apache.hadoop.security.UserGroupInformation: oadd.org.apache.hadoop.security.UserGroupInformation$HadoopLoginContext getLogin()>();
if v != null goto label;
v = new oadd.org.apache.hadoop.security.KerberosAuthException;
specialinvoke v.<oadd.org.apache.hadoop.security.KerberosAuthException: void <init>(java.lang.String)>("login must be done first");
throw v;
label:
specialinvoke v.<oadd.org.apache.hadoop.security.UserGroupInformation: void relogin(oadd.org.apache.hadoop.security.UserGroupInformation$HadoopLoginContext,boolean)>(v, 0);
return;
}
private void relogin(oadd.org.apache.hadoop.security.UserGroupInformation$HadoopLoginContext, boolean) throws java.io.IOException
{
java.lang.Throwable v;
oadd.org.apache.hadoop.security.UserGroupInformation v;
java.lang.Object v;
oadd.org.apache.hadoop.security.UserGroupInformation$HadoopLoginContext v, v;
boolean v;
v := @this: oadd.org.apache.hadoop.security.UserGroupInformation;
v := @parameter: oadd.org.apache.hadoop.security.UserGroupInformation$HadoopLoginContext;
v := @parameter: boolean;
v = virtualinvoke v.<oadd.org.apache.hadoop.security.UserGroupInformation$HadoopLoginContext: java.lang.Object getSubjectLock()>();
entermonitor v;
label:
v = specialinvoke v.<oadd.org.apache.hadoop.security.UserGroupInformation: oadd.org.apache.hadoop.security.UserGroupInformation$HadoopLoginContext getLogin()>();
if v != v goto label;
specialinvoke v.<oadd.org.apache.hadoop.security.UserGroupInformation: void unprotectedRelogin(oadd.org.apache.hadoop.security.UserGroupInformation$HadoopLoginContext,boolean)>(v, v);
label:
exitmonitor v;
label:
goto label;
label:
v := @caughtexception;
exitmonitor v;
throw v;
label:
return;
catch java.lang.Throwable from label to label with label;
}
private void unprotectedRelogin(oadd.org.apache.hadoop.security.UserGroupInformation$HadoopLoginContext, boolean) throws java.io.IOException
{
javax.security.auth.login.LoginException v;
oadd.org.apache.hadoop.security.UserGroupInformation$HadoopConfiguration v;
long v;
java.lang.AssertionError v;
oadd.org.apache.hadoop.security.User v;
java.lang.String v, v, v, v, v, v;
oadd.org.apache.hadoop.security.KerberosAuthException v;
boolean v, v, v, v, v, v;
oadd.org.apache.hadoop.security.UserGroupInformation v;
org.slf4j.Logger v, v, v, v;
javax.security.auth.Subject v;
java.lang.Object v;
oadd.org.apache.hadoop.security.UserGroupInformation$HadoopLoginContext v, v;
v := @this: oadd.org.apache.hadoop.security.UserGroupInformation;
v := @parameter: oadd.org.apache.hadoop.security.UserGroupInformation$HadoopLoginContext;
v := @parameter: boolean;
v = <oadd.org.apache.hadoop.security.UserGroupInformation: boolean $assertionsDisabled>;
if v != 0 goto label;
v = virtualinvoke v.<oadd.org.apache.hadoop.security.UserGroupInformation$HadoopLoginContext: java.lang.Object getSubjectLock()>();
v = staticinvoke <java.lang.Thread: boolean holdsLock(java.lang.Object)>(v);
if v != 0 goto label;
v = new java.lang.AssertionError;
specialinvoke v.<java.lang.AssertionError: void <init>()>();
throw v;
label:
v = staticinvoke <oadd.org.apache.hadoop.util.Time: long now()>();
v = specialinvoke v.<oadd.org.apache.hadoop.security.UserGroupInformation: boolean hasSufficientTimeElapsed(long)>(v);
if v != 0 goto label;
if v != 0 goto label;
return;
label:
v = v.<oadd.org.apache.hadoop.security.UserGroupInformation: oadd.org.apache.hadoop.security.User user>;
virtualinvoke v.<oadd.org.apache.hadoop.security.User: void setLastLogin(long)>(v);
label:
v = <oadd.org.apache.hadoop.security.UserGroupInformation: org.slf4j.Logger LOG>;
v = interfaceinvoke v.<org.slf4j.Logger: boolean isDebugEnabled()>();
if v == 0 goto label;
v = <oadd.org.apache.hadoop.security.UserGroupInformation: org.slf4j.Logger LOG>;
v = virtualinvoke v.<oadd.org.apache.hadoop.security.UserGroupInformation: java.lang.String getUserName()>();
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.lang.String)>(v) <java.lang.invoke.StringConcatFactory: java.lang.invoke.CallSite makeConcatWithConstants(java.lang.invoke.MethodHandles$Lookup,java.lang.String,java.lang.invoke.MethodType,java.lang.String,java.lang.Object[])>("Initiating logout for \u0001");
interfaceinvoke v.<org.slf4j.Logger: void debug(java.lang.String)>(v);
label:
virtualinvoke v.<oadd.org.apache.hadoop.security.UserGroupInformation$HadoopLoginContext: void logout()>();
v = virtualinvoke v.<oadd.org.apache.hadoop.security.UserGroupInformation$HadoopLoginContext: java.lang.String getAppName()>();
v = virtualinvoke v.<oadd.org.apache.hadoop.security.UserGroupInformation$HadoopLoginContext: javax.security.auth.Subject getSubject()>();
v = virtualinvoke v.<oadd.org.apache.hadoop.security.UserGroupInformation$HadoopLoginContext: oadd.org.apache.hadoop.security.UserGroupInformation$HadoopConfiguration getConfiguration()>();
v = staticinvoke <oadd.org.apache.hadoop.security.UserGroupInformation: oadd.org.apache.hadoop.security.UserGroupInformation$HadoopLoginContext newLoginContext(java.lang.String,javax.security.auth.Subject,oadd.org.apache.hadoop.security.UserGroupInformation$HadoopConfiguration)>(v, v, v);
v = <oadd.org.apache.hadoop.security.UserGroupInformation: org.slf4j.Logger LOG>;
v = interfaceinvoke v.<org.slf4j.Logger: boolean isDebugEnabled()>();
if v == 0 goto label;
v = <oadd.org.apache.hadoop.security.UserGroupInformation: org.slf4j.Logger LOG>;
v = virtualinvoke v.<oadd.org.apache.hadoop.security.UserGroupInformation: java.lang.String getUserName()>();
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.lang.String)>(v) <java.lang.invoke.StringConcatFactory: java.lang.invoke.CallSite makeConcatWithConstants(java.lang.invoke.MethodHandles$Lookup,java.lang.String,java.lang.invoke.MethodType,java.lang.String,java.lang.Object[])>("Initiating re-login for \u0001");
interfaceinvoke v.<org.slf4j.Logger: void debug(java.lang.String)>(v);
label:
virtualinvoke v.<oadd.org.apache.hadoop.security.UserGroupInformation$HadoopLoginContext: void login()>();
virtualinvoke v.<oadd.org.apache.hadoop.security.UserGroupInformation: void fixKerberosTicketOrder()>();
specialinvoke v.<oadd.org.apache.hadoop.security.UserGroupInformation: void setLogin(javax.security.auth.login.LoginContext)>(v);
label:
goto label;
label:
v := @caughtexception;
v = new oadd.org.apache.hadoop.security.KerberosAuthException;
specialinvoke v.<oadd.org.apache.hadoop.security.KerberosAuthException: void <init>(java.lang.String,java.lang.Throwable)>("Login failure", v);
v = virtualinvoke v.<oadd.org.apache.hadoop.security.UserGroupInformation: java.lang.String getUserName()>();
virtualinvoke v.<oadd.org.apache.hadoop.security.KerberosAuthException: void setUser(java.lang.String)>(v);
throw v;
label:
return;
catch javax.security.auth.login.LoginException from label to label with label;
}
public static oadd.org.apache.hadoop.security.UserGroupInformation loginUserFromKeytabAndReturnUGI(java.lang.String, java.lang.String) throws java.io.IOException
{
oadd.org.apache.hadoop.security.UserGroupInformation v, v;
oadd.org.apache.hadoop.security.UserGroupInformation$LoginParam v, v;
oadd.org.apache.hadoop.security.UserGroupInformation$LoginParams v;
java.lang.String v, v;
boolean v;
v := @parameter: java.lang.String;
v := @parameter: java.lang.String;
v = staticinvoke <oadd.org.apache.hadoop.security.UserGroupInformation: boolean isSecurityEnabled()>();
if v != 0 goto label;
v = staticinvoke <oadd.org.apache.hadoop.security.UserGroupInformation: oadd.org.apache.hadoop.security.UserGroupInformation getCurrentUser()>();
return v;
label:
v = new oadd.org.apache.hadoop.security.UserGroupInformation$LoginParams;
specialinvoke v.<oadd.org.apache.hadoop.security.UserGroupInformation$LoginParams: void <init>()>();
v = <oadd.org.apache.hadoop.security.UserGroupInformation$LoginParam: oadd.org.apache.hadoop.security.UserGroupInformation$LoginParam PRINCIPAL>;
virtualinvoke v.<oadd.org.apache.hadoop.security.UserGroupInformation$LoginParams: java.lang.String put(oadd.org.apache.hadoop.security.UserGroupInformation$LoginParam,java.lang.String)>(v, v);
v = <oadd.org.apache.hadoop.security.UserGroupInformation$LoginParam: oadd.org.apache.hadoop.security.UserGroupInformation$LoginParam KEYTAB>;
virtualinvoke v.<oadd.org.apache.hadoop.security.UserGroupInformation$LoginParams: java.lang.String put(oadd.org.apache.hadoop.security.UserGroupInformation$LoginParam,java.lang.String)>(v, v);
v = staticinvoke <oadd.org.apache.hadoop.security.UserGroupInformation: oadd.org.apache.hadoop.security.UserGroupInformation doSubjectLogin(javax.security.auth.Subject,oadd.org.apache.hadoop.security.UserGroupInformation$LoginParams)>(null, v);
return v;
}
private boolean hasSufficientTimeElapsed(long)
{
oadd.org.apache.hadoop.security.UserGroupInformation v;
org.slf4j.Logger v;
long v, v, v, v, v, v, v;
byte v;
oadd.org.apache.hadoop.security.User v, v;
java.lang.String v;
boolean v;
v := @this: oadd.org.apache.hadoop.security.UserGroupInformation;
v := @parameter: long;
v = <oadd.org.apache.hadoop.security.UserGroupInformation: boolean shouldRenewImmediatelyForTests>;
if v != 0 goto label;
v = v.<oadd.org.apache.hadoop.security.UserGroupInformation: oadd.org.apache.hadoop.security.User user>;
v = virtualinvoke v.<oadd.org.apache.hadoop.security.User: long getLastLogin()>();
v = v - v;
v = <oadd.org.apache.hadoop.security.UserGroupInformation: long kerberosMinSecondsBeforeRelogin>;
v = v cmp v;
if v >= 0 goto label;
v = <oadd.org.apache.hadoop.security.UserGroupInformation: org.slf4j.Logger LOG>;
v = <oadd.org.apache.hadoop.security.UserGroupInformation: long kerberosMinSecondsBeforeRelogin>;
v = v / 1000L;
v = v.<oadd.org.apache.hadoop.security.UserGroupInformation: oadd.org.apache.hadoop.security.User user>;
v = virtualinvoke v.<oadd.org.apache.hadoop.security.User: long getLastLogin()>();
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (long,long)>(v, v) <java.lang.invoke.StringConcatFactory: java.lang.invoke.CallSite makeConcatWithConstants(java.lang.invoke.MethodHandles$Lookup,java.lang.String,java.lang.invoke.MethodType,java.lang.String,java.lang.Object[])>("Not attempting to re-login since the last re-login was attempted less than \u seconds before. Last Login=\u0001");
interfaceinvoke v.<org.slf4j.Logger: void warn(java.lang.String)>(v);
return 0;
label:
return 1;
}
public static boolean isLoginKeytabBased() throws java.io.IOException
{
oadd.org.apache.hadoop.security.UserGroupInformation v;
boolean v;
v = staticinvoke <oadd.org.apache.hadoop.security.UserGroupInformation: oadd.org.apache.hadoop.security.UserGroupInformation getLoginUser()>();
v = virtualinvoke v.<oadd.org.apache.hadoop.security.UserGroupInformation: boolean isFromKeytab()>();
return v;
}
public static boolean isLoginTicketBased() throws java.io.IOException
{
oadd.org.apache.hadoop.security.UserGroupInformation v;
boolean v;
v = staticinvoke <oadd.org.apache.hadoop.security.UserGroupInformation: oadd.org.apache.hadoop.security.UserGroupInformation getLoginUser()>();
v = specialinvoke v.<oadd.org.apache.hadoop.security.UserGroupInformation: boolean isFromTicket()>();
return v;
}
public static oadd.org.apache.hadoop.security.UserGroupInformation createRemoteUser(java.lang.String)
{
java.lang.String v;
oadd.org.apache.hadoop.security.UserGroupInformation v;
oadd.org.apache.hadoop.security.SaslRpcServer$AuthMethod v;
v := @parameter: java.lang.String;
v = <oadd.org.apache.hadoop.security.SaslRpcServer$AuthMethod: oadd.org.apache.hadoop.security.SaslRpcServer$AuthMethod SIMPLE>;
v = staticinvoke <oadd.org.apache.hadoop.security.UserGroupInformation: oadd.org.apache.hadoop.security.UserGroupInformation createRemoteUser(java.lang.String,oadd.org.apache.hadoop.security.SaslRpcServer$AuthMethod)>(v, v);
return v;
}
public static oadd.org.apache.hadoop.security.UserGroupInformation createRemoteUser(java.lang.String, oadd.org.apache.hadoop.security.SaslRpcServer$AuthMethod)
{
oadd.org.apache.hadoop.security.UserGroupInformation v;
oadd.org.apache.hadoop.security.SaslRpcServer$AuthMethod v;
java.util.Set v;
java.lang.IllegalArgumentException v;
javax.security.auth.Subject v;
oadd.org.apache.hadoop.security.User v;
java.lang.String v;
boolean v;
v := @parameter: java.lang.String;
v := @parameter: oadd.org.apache.hadoop.security.SaslRpcServer$AuthMethod;
if v == null goto label;
v = virtualinvoke v.<java.lang.String: boolean isEmpty()>();
if v == 0 goto label;
label:
v = new java.lang.IllegalArgumentException;
specialinvoke v.<java.lang.IllegalArgumentException: void <init>(java.lang.String)>("Null user");
throw v;
label:
v = new javax.security.auth.Subject;
specialinvoke v.<javax.security.auth.Subject: void <init>()>();
v = virtualinvoke v.<javax.security.auth.Subject: java.util.Set getPrincipals()>();
v = new oadd.org.apache.hadoop.security.User;
specialinvoke v.<oadd.org.apache.hadoop.security.User: void <init>(java.lang.String)>(v);
interfaceinvoke v.<java.util.Set: boolean add(java.lang.Object)>(v);
v = new oadd.org.apache.hadoop.security.UserGroupInformation;
specialinvoke v.<oadd.org.apache.hadoop.security.UserGroupInformation: void <init>(javax.security.auth.Subject)>(v);
virtualinvoke v.<oadd.org.apache.hadoop.security.UserGroupInformation: void setAuthenticationMethod(oadd.org.apache.hadoop.security.SaslRpcServer$AuthMethod)>(v);
return v;
}
public static oadd.org.apache.hadoop.security.UserGroupInformation createProxyUser(java.lang.String, oadd.org.apache.hadoop.security.UserGroupInformation)
{
oadd.org.apache.hadoop.security.UserGroupInformation v, v;
java.util.Set v;
oadd.org.apache.hadoop.security.UserGroupInformation$AuthenticationMethod v;
java.lang.IllegalArgumentException v, v;
javax.security.auth.Subject v;
oadd.org.apache.hadoop.security.UserGroupInformation$RealUser v;
oadd.org.apache.hadoop.security.User v;
java.lang.String v;
boolean v;
v := @parameter: java.lang.String;
v := @parameter: oadd.org.apache.hadoop.security.UserGroupInformation;
if v == null goto label;
v = virtualinvoke v.<java.lang.String: boolean isEmpty()>();
if v == 0 goto label;
label:
v = new java.lang.IllegalArgumentException;
specialinvoke v.<java.lang.IllegalArgumentException: void <init>(java.lang.String)>("Null user");
throw v;
label:
if v != null goto label;
v = new java.lang.IllegalArgumentException;
specialinvoke v.<java.lang.IllegalArgumentException: void <init>(java.lang.String)>("Null real user");
throw v;
label:
v = new javax.security.auth.Subject;
specialinvoke v.<javax.security.auth.Subject: void <init>()>();
v = virtualinvoke v.<javax.security.auth.Subject: java.util.Set getPrincipals()>();
v = new oadd.org.apache.hadoop.security.User;
v = <oadd.org.apache.hadoop.security.UserGroupInformation$AuthenticationMethod: oadd.org.apache.hadoop.security.UserGroupInformation$AuthenticationMethod PROXY>;
specialinvoke v.<oadd.org.apache.hadoop.security.User: void <init>(java.lang.String,oadd.org.apache.hadoop.security.UserGroupInformation$AuthenticationMethod,javax.security.auth.login.LoginContext)>(v, v, null);
interfaceinvoke v.<java.util.Set: boolean add(java.lang.Object)>(v);
v = new oadd.org.apache.hadoop.security.UserGroupInformation$RealUser;
specialinvoke v.<oadd.org.apache.hadoop.security.UserGroupInformation$RealUser: void <init>(oadd.org.apache.hadoop.security.UserGroupInformation)>(v);
interfaceinvoke v.<java.util.Set: boolean add(java.lang.Object)>(v);
v = new oadd.org.apache.hadoop.security.UserGroupInformation;
specialinvoke v.<oadd.org.apache.hadoop.security.UserGroupInformation: void <init>(javax.security.auth.Subject)>(v);
return v;
}
public oadd.org.apache.hadoop.security.UserGroupInformation getRealUser()
{
oadd.org.apache.hadoop.security.UserGroupInformation v, v;
java.util.Iterator v;
java.util.Set v;
java.lang.Object v;
javax.security.auth.Subject v;
boolean v;
v := @this: oadd.org.apache.hadoop.security.UserGroupInformation;
v = v.<oadd.org.apache.hadoop.security.UserGroupInformation: javax.security.auth.Subject subject>;
v = virtualinvoke v.<javax.security.auth.Subject: java.util.Set getPrincipals(java.lang.Class)>(class "Loadd/org/apache/hadoop/security/UserGroupInformation$RealUser;");
v = interfaceinvoke v.<java.util.Set: java.util.Iterator iterator()>();
v = interfaceinvoke v.<java.util.Iterator: boolean hasNext()>();
if v == 0 goto label;
v = interfaceinvoke v.<java.util.Iterator: java.lang.Object next()>();
v = virtualinvoke v.<oadd.org.apache.hadoop.security.UserGroupInformation$RealUser: oadd.org.apache.hadoop.security.UserGroupInformation getRealUser()>();
return v;
label:
return null;
}
public static oadd.org.apache.hadoop.security.UserGroupInformation createUserForTesting(java.lang.String, java.lang.String[])
{
oadd.org.apache.hadoop.security.Groups v, v, v;
oadd.org.apache.hadoop.security.UserGroupInformation v;
java.lang.String[] v;
oadd.org.apache.hadoop.security.UserGroupInformation$TestingGroups v;
java.lang.String v, v;
boolean v;
v := @parameter: java.lang.String;
v := @parameter: java.lang.String[];
staticinvoke <oadd.org.apache.hadoop.security.UserGroupInformation: void ensureInitialized()>();
v = staticinvoke <oadd.org.apache.hadoop.security.UserGroupInformation: oadd.org.apache.hadoop.security.UserGroupInformation createRemoteUser(java.lang.String)>(v);
v = <oadd.org.apache.hadoop.security.UserGroupInformation: oadd.org.apache.hadoop.security.Groups groups>;
v = v instanceof oadd.org.apache.hadoop.security.UserGroupInformation$TestingGroups;
if v != 0 goto label;
v = new oadd.org.apache.hadoop.security.UserGroupInformation$TestingGroups;
v = <oadd.org.apache.hadoop.security.UserGroupInformation: oadd.org.apache.hadoop.security.Groups groups>;
specialinvoke v.<oadd.org.apache.hadoop.security.UserGroupInformation$TestingGroups: void <init>(oadd.org.apache.hadoop.security.Groups)>(v);
<oadd.org.apache.hadoop.security.UserGroupInformation: oadd.org.apache.hadoop.security.Groups groups> = v;
label:
v = <oadd.org.apache.hadoop.security.UserGroupInformation: oadd.org.apache.hadoop.security.Groups groups>;
v = virtualinvoke v.<oadd.org.apache.hadoop.security.UserGroupInformation: java.lang.String getShortUserName()>();
specialinvoke v.<oadd.org.apache.hadoop.security.UserGroupInformation$TestingGroups: void setUserGroups(java.lang.String,java.lang.String[])>(v, v);
return v;
}
public static oadd.org.apache.hadoop.security.UserGroupInformation createProxyUserForTesting(java.lang.String, oadd.org.apache.hadoop.security.UserGroupInformation, java.lang.String[])
{
oadd.org.apache.hadoop.security.Groups v, v, v;
oadd.org.apache.hadoop.security.UserGroupInformation v, v;
java.lang.String[] v;
oadd.org.apache.hadoop.security.UserGroupInformation$TestingGroups v;
java.lang.String v, v;
boolean v;
v := @parameter: java.lang.String;
v := @parameter: oadd.org.apache.hadoop.security.UserGroupInformation;
v := @parameter: java.lang.String[];
staticinvoke <oadd.org.apache.hadoop.security.UserGroupInformation: void ensureInitialized()>();
v = staticinvoke <oadd.org.apache.hadoop.security.UserGroupInformation: oadd.org.apache.hadoop.security.UserGroupInformation createProxyUser(java.lang.String,oadd.org.apache.hadoop.security.UserGroupInformation)>(v, v);
v = <oadd.org.apache.hadoop.security.UserGroupInformation: oadd.org.apache.hadoop.security.Groups groups>;
v = v instanceof oadd.org.apache.hadoop.security.UserGroupInformation$TestingGroups;
if v != 0 goto label;
v = new oadd.org.apache.hadoop.security.UserGroupInformation$TestingGroups;
v = <oadd.org.apache.hadoop.security.UserGroupInformation: oadd.org.apache.hadoop.security.Groups groups>;
specialinvoke v.<oadd.org.apache.hadoop.security.UserGroupInformation$TestingGroups: void <init>(oadd.org.apache.hadoop.security.Groups)>(v);
<oadd.org.apache.hadoop.security.UserGroupInformation: oadd.org.apache.hadoop.security.Groups groups> = v;
label:
v = <oadd.org.apache.hadoop.security.UserGroupInformation: oadd.org.apache.hadoop.security.Groups groups>;
v = virtualinvoke v.<oadd.org.apache.hadoop.security.UserGroupInformation: java.lang.String getShortUserName()>();
specialinvoke v.<oadd.org.apache.hadoop.security.UserGroupInformation$TestingGroups: void setUserGroups(java.lang.String,java.lang.String[])>(v, v);
return v;
}
public java.lang.String getShortUserName()
{
oadd.org.apache.hadoop.security.User v;
java.lang.String v;
oadd.org.apache.hadoop.security.UserGroupInformation v;
v := @this: oadd.org.apache.hadoop.security.UserGroupInformation;
v = v.<oadd.org.apache.hadoop.security.UserGroupInformation: oadd.org.apache.hadoop.security.User user>;
v = virtualinvoke v.<oadd.org.apache.hadoop.security.User: java.lang.String getShortName()>();
return v;
}
public java.lang.String getPrimaryGroupName() throws java.io.IOException
{
java.util.List v;
oadd.org.apache.hadoop.security.UserGroupInformation v;
java.io.IOException v;
java.lang.Object v;
java.lang.String v;
boolean v;
v := @this: oadd.org.apache.hadoop.security.UserGroupInformation;
v = virtualinvoke v.<oadd.org.apache.hadoop.security.UserGroupInformation: java.util.List getGroups()>();
v = interfaceinvoke v.<java.util.List: boolean isEmpty()>();
if v == 0 goto label;
v = new java.io.IOException;
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (oadd.org.apache.hadoop.security.UserGroupInformation)>(v) <java.lang.invoke.StringConcatFactory: java.lang.invoke.CallSite makeConcatWithConstants(java.lang.invoke.MethodHandles$Lookup,java.lang.String,java.lang.invoke.MethodType,java.lang.String,java.lang.Object[])>("There is no primary group for UGI \u0001");
specialinvoke v.<java.io.IOException: void <init>(java.lang.String)>(v);
throw v;
label:
v = interfaceinvoke v.<java.util.List: java.lang.Object get(int)>(0);
return v;
}
public java.lang.String getUserName()
{
oadd.org.apache.hadoop.security.User v;
java.lang.String v;
oadd.org.apache.hadoop.security.UserGroupInformation v;
v := @this: oadd.org.apache.hadoop.security.UserGroupInformation;
v = v.<oadd.org.apache.hadoop.security.UserGroupInformation: oadd.org.apache.hadoop.security.User user>;
v = virtualinvoke v.<oadd.org.apache.hadoop.security.User: java.lang.String getName()>();
return v;
}
public synchronized boolean addTokenIdentifier(oadd.org.apache.hadoop.security.token.TokenIdentifier)
{
oadd.org.apache.hadoop.security.token.TokenIdentifier v;
oadd.org.apache.hadoop.security.UserGroupInformation v;
java.util.Set v;
javax.security.auth.Subject v;
boolean v;
v := @this: oadd.org.apache.hadoop.security.UserGroupInformation;
v := @parameter: oadd.org.apache.hadoop.security.token.TokenIdentifier;
v = v.<oadd.org.apache.hadoop.security.UserGroupInformation: javax.security.auth.Subject subject>;
v = virtualinvoke v.<javax.security.auth.Subject: java.util.Set getPublicCredentials()>();
v = interfaceinvoke v.<java.util.Set: boolean add(java.lang.Object)>(v);
return v;
}
public synchronized java.util.Set getTokenIdentifiers()
{
java.util.Set v;
oadd.org.apache.hadoop.security.UserGroupInformation v;
javax.security.auth.Subject v;
v := @this: oadd.org.apache.hadoop.security.UserGroupInformation;
v = v.<oadd.org.apache.hadoop.security.UserGroupInformation: javax.security.auth.Subject subject>;
v = virtualinvoke v.<javax.security.auth.Subject: java.util.Set getPublicCredentials(java.lang.Class)>(class "Loadd/org/apache/hadoop/security/token/TokenIdentifier;");
return v;
}
public boolean addToken(oadd.org.apache.hadoop.security.token.Token)
{
oadd.org.apache.hadoop.security.UserGroupInformation v;
oadd.org.apache.hadoop.io.Text v;
oadd.org.apache.hadoop.security.token.Token v;
boolean v;
v := @this: oadd.org.apache.hadoop.security.UserGroupInformation;
v := @parameter: oadd.org.apache.hadoop.security.token.Token;
if v == null goto label;
v = virtualinvoke v.<oadd.org.apache.hadoop.security.token.Token: oadd.org.apache.hadoop.io.Text getService()>();
v = virtualinvoke v.<oadd.org.apache.hadoop.security.UserGroupInformation: boolean addToken(oadd.org.apache.hadoop.io.Text,oadd.org.apache.hadoop.security.token.Token)>(v, v);
goto label;
label:
v = 0;
label:
return v;
}
public boolean addToken(oadd.org.apache.hadoop.io.Text, oadd.org.apache.hadoop.security.token.Token)
{
java.lang.Throwable v;
oadd.org.apache.hadoop.security.UserGroupInformation v;
oadd.org.apache.hadoop.io.Text v;
oadd.org.apache.hadoop.security.Credentials v;
oadd.org.apache.hadoop.security.token.Token v;
javax.security.auth.Subject v;
v := @this: oadd.org.apache.hadoop.security.UserGroupInformation;
v := @parameter: oadd.org.apache.hadoop.io.Text;
v := @parameter: oadd.org.apache.hadoop.security.token.Token;
v = v.<oadd.org.apache.hadoop.security.UserGroupInformation: javax.security.auth.Subject subject>;
entermonitor v;
label:
v = specialinvoke v.<oadd.org.apache.hadoop.security.UserGroupInformation: oadd.org.apache.hadoop.security.Credentials getCredentialsInternal()>();
virtualinvoke v.<oadd.org.apache.hadoop.security.Credentials: void addToken(oadd.org.apache.hadoop.io.Text,oadd.org.apache.hadoop.security.token.Token)>(v, v);
exitmonitor v;
label:
return 1;
label:
v := @caughtexception;
exitmonitor v;
throw v;
catch java.lang.Throwable from label to label with label;
}
public java.util.Collection getTokens()
{
java.lang.Throwable v;
oadd.org.apache.hadoop.security.UserGroupInformation v;
java.util.Collection v, v;
oadd.org.apache.hadoop.security.Credentials v;
javax.security.auth.Subject v;
java.util.ArrayList v;
v := @this: oadd.org.apache.hadoop.security.UserGroupInformation;
v = v.<oadd.org.apache.hadoop.security.UserGroupInformation: javax.security.auth.Subject subject>;
entermonitor v;
label:
v = new java.util.ArrayList;
v = specialinvoke v.<oadd.org.apache.hadoop.security.UserGroupInformation: oadd.org.apache.hadoop.security.Credentials getCredentialsInternal()>();
v = virtualinvoke v.<oadd.org.apache.hadoop.security.Credentials: java.util.Collection getAllTokens()>();
specialinvoke v.<java.util.ArrayList: void <init>(java.util.Collection)>(v);
v = staticinvoke <java.util.Collections: java.util.Collection unmodifiableCollection(java.util.Collection)>(v);
exitmonitor v;
label:
return v;
label:
v := @caughtexception;
exitmonitor v;
throw v;
catch java.lang.Throwable from label to label with label;
}
public oadd.org.apache.hadoop.security.Credentials getCredentials()
{
java.lang.Throwable v;
oadd.org.apache.hadoop.security.UserGroupInformation v;
java.util.Iterator v;
java.util.Collection v;
javax.security.auth.Subject v;
oadd.org.apache.hadoop.security.Credentials v, v;
java.lang.Object v;
boolean v, v;
v := @this: oadd.org.apache.hadoop.security.UserGroupInformation;
v = v.<oadd.org.apache.hadoop.security.UserGroupInformation: javax.security.auth.Subject subject>;
entermonitor v;
label:
v = new oadd.org.apache.hadoop.security.Credentials;
v = specialinvoke v.<oadd.org.apache.hadoop.security.UserGroupInformation: oadd.org.apache.hadoop.security.Credentials getCredentialsInternal()>();
specialinvoke v.<oadd.org.apache.hadoop.security.Credentials: void <init>(oadd.org.apache.hadoop.security.Credentials)>(v);
v = virtualinvoke v.<oadd.org.apache.hadoop.security.Credentials: java.util.Collection getAllTokens()>();
v = interfaceinvoke v.<java.util.Collection: java.util.Iterator iterator()>();
label:
v = interfaceinvoke v.<java.util.Iterator: boolean hasNext()>();
if v == 0 goto label;
v = interfaceinvoke v.<java.util.Iterator: java.lang.Object next()>();
v = virtualinvoke v.<oadd.org.apache.hadoop.security.token.Token: boolean isPrivate()>();
if v == 0 goto label;
interfaceinvoke v.<java.util.Iterator: void remove()>();
goto label;
label:
exitmonitor v;
label:
return v;
label:
v := @caughtexception;
exitmonitor v;
throw v;
catch java.lang.Throwable from label to label with label;
}
public void addCredentials(oadd.org.apache.hadoop.security.Credentials)
{
java.lang.Throwable v;
oadd.org.apache.hadoop.security.UserGroupInformation v;
oadd.org.apache.hadoop.security.Credentials v, v;
javax.security.auth.Subject v;
v := @this: oadd.org.apache.hadoop.security.UserGroupInformation;
v := @parameter: oadd.org.apache.hadoop.security.Credentials;
v = v.<oadd.org.apache.hadoop.security.UserGroupInformation: javax.security.auth.Subject subject>;
entermonitor v;
label:
v = specialinvoke v.<oadd.org.apache.hadoop.security.UserGroupInformation: oadd.org.apache.hadoop.security.Credentials getCredentialsInternal()>();
virtualinvoke v.<oadd.org.apache.hadoop.security.Credentials: void addAll(oadd.org.apache.hadoop.security.Credentials)>(v);
exitmonitor v;
label:
goto label;
label:
v := @caughtexception;
exitmonitor v;
throw v;
label:
return;
catch java.lang.Throwable from label to label with label;
}
private synchronized oadd.org.apache.hadoop.security.Credentials getCredentialsInternal()
{
oadd.org.apache.hadoop.security.UserGroupInformation v;
java.util.Iterator v;
java.util.Set v, v;
javax.security.auth.Subject v, v;
oadd.org.apache.hadoop.security.Credentials v;
java.lang.Object v;
boolean v;
v := @this: oadd.org.apache.hadoop.security.UserGroupInformation;
v = v.<oadd.org.apache.hadoop.security.UserGroupInformation: javax.security.auth.Subject subject>;
v = virtualinvoke v.<javax.security.auth.Subject: java.util.Set getPrivateCredentials(java.lang.Class)>(class "Loadd/org/apache/hadoop/security/Credentials;");
v = interfaceinvoke v.<java.util.Set: boolean isEmpty()>();
if v != 0 goto label;
v = interfaceinvoke v.<java.util.Set: java.util.Iterator iterator()>();
v = interfaceinvoke v.<java.util.Iterator: java.lang.Object next()>();
goto label;
label:
v = new oadd.org.apache.hadoop.security.Credentials;
specialinvoke v.<oadd.org.apache.hadoop.security.Credentials: void <init>()>();
v = v;
v = v.<oadd.org.apache.hadoop.security.UserGroupInformation: javax.security.auth.Subject subject>;
v = virtualinvoke v.<javax.security.auth.Subject: java.util.Set getPrivateCredentials()>();
interfaceinvoke v.<java.util.Set: boolean add(java.lang.Object)>(v);
label:
return v;
}
public java.lang.String[] getGroupNames()
{
java.util.List v;
java.lang.Object[] v;
oadd.org.apache.hadoop.security.UserGroupInformation v;
int v;
java.lang.String[] v;
v := @this: oadd.org.apache.hadoop.security.UserGroupInformation;
v = virtualinvoke v.<oadd.org.apache.hadoop.security.UserGroupInformation: java.util.List getGroups()>();
v = interfaceinvoke v.<java.util.List: int size()>();
v = newarray (java.lang.String)[v];
v = interfaceinvoke v.<java.util.List: java.lang.Object[] toArray(java.lang.Object[])>(v);
return v;
}
public java.util.List getGroups()
{
oadd.org.apache.hadoop.security.Groups v;
oadd.org.apache.hadoop.security.UserGroupInformation v;
org.slf4j.Logger v, v, v;
java.io.IOException v;
java.util.List v, v;
java.lang.String v, v, v;
boolean v;
v := @this: oadd.org.apache.hadoop.security.UserGroupInformation;
staticinvoke <oadd.org.apache.hadoop.security.UserGroupInformation: void ensureInitialized()>();
label:
v = <oadd.org.apache.hadoop.security.UserGroupInformation: oadd.org.apache.hadoop.security.Groups groups>;
v = virtualinvoke v.<oadd.org.apache.hadoop.security.UserGroupInformation: java.lang.String getShortUserName()>();
v = virtualinvoke v.<oadd.org.apache.hadoop.security.Groups: java.util.List getGroups(java.lang.String)>(v);
label:
return v;
label:
v := @caughtexception;
v = <oadd.org.apache.hadoop.security.UserGroupInformation: org.slf4j.Logger LOG>;
v = interfaceinvoke v.<org.slf4j.Logger: boolean isDebugEnabled()>();
if v == 0 goto label;
v = <oadd.org.apache.hadoop.security.UserGroupInformation: org.slf4j.Logger LOG>;
v = virtualinvoke v.<oadd.org.apache.hadoop.security.UserGroupInformation: java.lang.String getShortUserName()>();
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.lang.String,java.io.IOException)>(v, v) <java.lang.invoke.StringConcatFactory: java.lang.invoke.CallSite makeConcatWithConstants(java.lang.invoke.MethodHandles$Lookup,java.lang.String,java.lang.invoke.MethodType,java.lang.String,java.lang.Object[])>("Failed to get groups for user \u by \u0001");
interfaceinvoke v.<org.slf4j.Logger: void debug(java.lang.String)>(v);
v = <oadd.org.apache.hadoop.security.UserGroupInformation: org.slf4j.Logger LOG>;
interfaceinvoke v.<org.slf4j.Logger: void trace(java.lang.String,java.lang.Throwable)>("TRACE", v);
label:
v = staticinvoke <java.util.Collections: java.util.List emptyList()>();
return v;
catch java.io.IOException from label to label with label;
}
public java.lang.String toString()
{
oadd.org.apache.hadoop.security.UserGroupInformation v, v, v;
oadd.org.apache.hadoop.security.UserGroupInformation$AuthenticationMethod v;
java.lang.StringBuilder v, v;
java.lang.String v, v, v, v;
v := @this: oadd.org.apache.hadoop.security.UserGroupInformation;
v = new java.lang.StringBuilder;
v = virtualinvoke v.<oadd.org.apache.hadoop.security.UserGroupInformation: java.lang.String getUserName()>();
specialinvoke v.<java.lang.StringBuilder: void <init>(java.lang.String)>(v);
v = virtualinvoke v.<oadd.org.apache.hadoop.security.UserGroupInformation: oadd.org.apache.hadoop.security.UserGroupInformation$AuthenticationMethod getAuthenticationMethod()>();
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (oadd.org.apache.hadoop.security.UserGroupInformation$AuthenticationMethod)>(v) <java.lang.invoke.StringConcatFactory: java.lang.invoke.CallSite makeConcatWithConstants(java.lang.invoke.MethodHandles$Lookup,java.lang.String,java.lang.invoke.MethodType,java.lang.String,java.lang.Object[])>(" (auth:\u)");
virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(java.lang.String)>(v);
v = virtualinvoke v.<oadd.org.apache.hadoop.security.UserGroupInformation: oadd.org.apache.hadoop.security.UserGroupInformation getRealUser()>();
if v == null goto label;
v = virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(java.lang.String)>(" via ");
v = virtualinvoke v.<oadd.org.apache.hadoop.security.UserGroupInformation: oadd.org.apache.hadoop.security.UserGroupInformation getRealUser()>();
v = virtualinvoke v.<oadd.org.apache.hadoop.security.UserGroupInformation: java.lang.String toString()>();
virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(java.lang.String)>(v);
label:
v = virtualinvoke v.<java.lang.StringBuilder: java.lang.String toString()>();
return v;
}
public synchronized void setAuthenticationMethod(oadd.org.apache.hadoop.security.UserGroupInformation$AuthenticationMethod)
{
oadd.org.apache.hadoop.security.User v;
oadd.org.apache.hadoop.security.UserGroupInformation$AuthenticationMethod v;
oadd.org.apache.hadoop.security.UserGroupInformation v;
v := @this: oadd.org.apache.hadoop.security.UserGroupInformation;
v := @parameter: oadd.org.apache.hadoop.security.UserGroupInformation$AuthenticationMethod;
v = v.<oadd.org.apache.hadoop.security.UserGroupInformation: oadd.org.apache.hadoop.security.User user>;
virtualinvoke v.<oadd.org.apache.hadoop.security.User: void setAuthenticationMethod(oadd.org.apache.hadoop.security.UserGroupInformation$AuthenticationMethod)>(v);
return;
}
public void setAuthenticationMethod(oadd.org.apache.hadoop.security.SaslRpcServer$AuthMethod)
{
oadd.org.apache.hadoop.security.UserGroupInformation v;
oadd.org.apache.hadoop.security.SaslRpcServer$AuthMethod v;
oadd.org.apache.hadoop.security.User v;
oadd.org.apache.hadoop.security.UserGroupInformation$AuthenticationMethod v;
v := @this: oadd.org.apache.hadoop.security.UserGroupInformation;
v := @parameter: oadd.org.apache.hadoop.security.SaslRpcServer$AuthMethod;
v = v.<oadd.org.apache.hadoop.security.UserGroupInformation: oadd.org.apache.hadoop.security.User user>;
v = staticinvoke <oadd.org.apache.hadoop.security.UserGroupInformation$AuthenticationMethod: oadd.org.apache.hadoop.security.UserGroupInformation$AuthenticationMethod valueOf(oadd.org.apache.hadoop.security.SaslRpcServer$AuthMethod)>(v);
virtualinvoke v.<oadd.org.apache.hadoop.security.User: void setAuthenticationMethod(oadd.org.apache.hadoop.security.UserGroupInformation$AuthenticationMethod)>(v);
return;
}
public synchronized oadd.org.apache.hadoop.security.UserGroupInformation$AuthenticationMethod getAuthenticationMethod()
{
oadd.org.apache.hadoop.security.User v;
oadd.org.apache.hadoop.security.UserGroupInformation$AuthenticationMethod v;
oadd.org.apache.hadoop.security.UserGroupInformation v;
v := @this: oadd.org.apache.hadoop.security.UserGroupInformation;
v = v.<oadd.org.apache.hadoop.security.UserGroupInformation: oadd.org.apache.hadoop.security.User user>;
v = virtualinvoke v.<oadd.org.apache.hadoop.security.User: oadd.org.apache.hadoop.security.UserGroupInformation$AuthenticationMethod getAuthenticationMethod()>();
return v;
}
public synchronized oadd.org.apache.hadoop.security.UserGroupInformation$AuthenticationMethod getRealAuthenticationMethod()
{
oadd.org.apache.hadoop.security.UserGroupInformation$AuthenticationMethod v;
oadd.org.apache.hadoop.security.UserGroupInformation v, v;
v := @this: oadd.org.apache.hadoop.security.UserGroupInformation;
v = virtualinvoke v.<oadd.org.apache.hadoop.security.UserGroupInformation: oadd.org.apache.hadoop.security.UserGroupInformation getRealUser()>();
if v != null goto label;
v = v;
label:
v = virtualinvoke v.<oadd.org.apache.hadoop.security.UserGroupInformation: oadd.org.apache.hadoop.security.UserGroupInformation$AuthenticationMethod getAuthenticationMethod()>();
return v;
}
public static oadd.org.apache.hadoop.security.UserGroupInformation$AuthenticationMethod getRealAuthenticationMethod(oadd.org.apache.hadoop.security.UserGroupInformation)
{
oadd.org.apache.hadoop.security.UserGroupInformation v, v;
oadd.org.apache.hadoop.security.UserGroupInformation$AuthenticationMethod v, v;
v := @parameter: oadd.org.apache.hadoop.security.UserGroupInformation;
v = virtualinvoke v.<oadd.org.apache.hadoop.security.UserGroupInformation: oadd.org.apache.hadoop.security.UserGroupInformation$AuthenticationMethod getAuthenticationMethod()>();
v = <oadd.org.apache.hadoop.security.UserGroupInformation$AuthenticationMethod: oadd.org.apache.hadoop.security.UserGroupInformation$AuthenticationMethod PROXY>;
if v != v goto label;
v = virtualinvoke v.<oadd.org.apache.hadoop.security.UserGroupInformation: oadd.org.apache.hadoop.security.UserGroupInformation getRealUser()>();
v = virtualinvoke v.<oadd.org.apache.hadoop.security.UserGroupInformation: oadd.org.apache.hadoop.security.UserGroupInformation$AuthenticationMethod getAuthenticationMethod()>();
label:
return v;
}
public boolean equals(java.lang.Object)
{
oadd.org.apache.hadoop.security.UserGroupInformation v;
java.lang.Class v, v;
java.lang.Object v;
javax.security.auth.Subject v, v;
boolean v;
v := @this: oadd.org.apache.hadoop.security.UserGroupInformation;
v := @parameter: java.lang.Object;
if v != v goto label;
return 1;
label:
if v == null goto label;
v = virtualinvoke v.<java.lang.Object: java.lang.Class getClass()>();
v = virtualinvoke v.<java.lang.Object: java.lang.Class getClass()>();
if v == v goto label;
label:
return 0;
label:
v = v.<oadd.org.apache.hadoop.security.UserGroupInformation: javax.security.auth.Subject subject>;
v = v.<oadd.org.apache.hadoop.security.UserGroupInformation: javax.security.auth.Subject subject>;
if v != v goto label;
v = 1;
goto label;
label:
v = 0;
label:
return v;
}
public int hashCode()
{
int v;
oadd.org.apache.hadoop.security.UserGroupInformation v;
javax.security.auth.Subject v;
v := @this: oadd.org.apache.hadoop.security.UserGroupInformation;
v = v.<oadd.org.apache.hadoop.security.UserGroupInformation: javax.security.auth.Subject subject>;
v = staticinvoke <java.lang.System: int identityHashCode(java.lang.Object)>(v);
return v;
}
protected javax.security.auth.Subject getSubject()
{
oadd.org.apache.hadoop.security.UserGroupInformation v;
javax.security.auth.Subject v;
v := @this: oadd.org.apache.hadoop.security.UserGroupInformation;
v = v.<oadd.org.apache.hadoop.security.UserGroupInformation: javax.security.auth.Subject subject>;
return v;
}
public java.lang.Object doAs(java.security.PrivilegedAction)
{
oadd.org.apache.hadoop.security.UserGroupInformation v;
java.lang.Object v;
java.security.PrivilegedAction v;
javax.security.auth.Subject v, v;
v := @this: oadd.org.apache.hadoop.security.UserGroupInformation;
v := @parameter: java.security.PrivilegedAction;
v = v.<oadd.org.apache.hadoop.security.UserGroupInformation: javax.security.auth.Subject subject>;
specialinvoke v.<oadd.org.apache.hadoop.security.UserGroupInformation: void logPrivilegedAction(javax.security.auth.Subject,java.lang.Object)>(v, v);
v = v.<oadd.org.apache.hadoop.security.UserGroupInformation: javax.security.auth.Subject subject>;
v = staticinvoke <javax.security.auth.Subject: java.lang.Object doAs(javax.security.auth.Subject,java.security.PrivilegedAction)>(v, v);
return v;
}
public java.lang.Object doAs(java.security.PrivilegedExceptionAction) throws java.io.IOException, java.lang.InterruptedException
{
java.lang.Throwable v;
java.lang.String v, v;
boolean v, v, v, v, v;
java.security.PrivilegedActionException v;
oadd.org.apache.hadoop.security.UserGroupInformation v;
org.slf4j.Logger v, v;
java.lang.RuntimeException v;
java.security.PrivilegedExceptionAction v;
java.lang.reflect.UndeclaredThrowableException v;
javax.security.auth.Subject v, v;
java.lang.Object v;
v := @this: oadd.org.apache.hadoop.security.UserGroupInformation;
v := @parameter: java.security.PrivilegedExceptionAction;
label:
v = v.<oadd.org.apache.hadoop.security.UserGroupInformation: javax.security.auth.Subject subject>;
specialinvoke v.<oadd.org.apache.hadoop.security.UserGroupInformation: void logPrivilegedAction(javax.security.auth.Subject,java.lang.Object)>(v, v);
v = v.<oadd.org.apache.hadoop.security.UserGroupInformation: javax.security.auth.Subject subject>;
v = staticinvoke <javax.security.auth.Subject: java.lang.Object doAs(javax.security.auth.Subject,java.security.PrivilegedExceptionAction)>(v, v);
label:
return v;
label:
v := @caughtexception;
v = virtualinvoke v.<java.security.PrivilegedActionException: java.lang.Throwable getCause()>();
v = <oadd.org.apache.hadoop.security.UserGroupInformation: org.slf4j.Logger LOG>;
v = interfaceinvoke v.<org.slf4j.Logger: boolean isDebugEnabled()>();
if v == 0 goto label;
v = <oadd.org.apache.hadoop.security.UserGroupInformation: org.slf4j.Logger LOG>;
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (oadd.org.apache.hadoop.security.UserGroupInformation,java.lang.Throwable)>(v, v) <java.lang.invoke.StringConcatFactory: java.lang.invoke.CallSite makeConcatWithConstants(java.lang.invoke.MethodHandles$Lookup,java.lang.String,java.lang.invoke.MethodType,java.lang.String,java.lang.Object[])>("PrivilegedActionException as:\u cause:\u0001");
interfaceinvoke v.<org.slf4j.Logger: void debug(java.lang.String)>(v);
label:
if v != null goto label;
v = new java.lang.RuntimeException;
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (oadd.org.apache.hadoop.security.UserGroupInformation,java.security.PrivilegedActionException)>(v, v) <java.lang.invoke.StringConcatFactory: java.lang.invoke.CallSite makeConcatWithConstants(java.lang.invoke.MethodHandles$Lookup,java.lang.String,java.lang.invoke.MethodType,java.lang.String,java.lang.Object[])>("PrivilegedActionException with no underlying cause. UGI [\u]: \u0001");
specialinvoke v.<java.lang.RuntimeException: void <init>(java.lang.String,java.lang.Throwable)>(v, v);
throw v;
label:
v = v instanceof java.io.IOException;
if v == 0 goto label;
throw v;
label:
v = v instanceof java.lang.Error;
if v == 0 goto label;
throw v;
label:
v = v instanceof java.lang.RuntimeException;
if v == 0 goto label;
throw v;
label:
v = v instanceof java.lang.InterruptedException;
if v == 0 goto label;
throw v;
label:
v = new java.lang.reflect.UndeclaredThrowableException;
specialinvoke v.<java.lang.reflect.UndeclaredThrowableException: void <init>(java.lang.Throwable)>(v);
throw v;
catch java.security.PrivilegedActionException from label to label with label;
}
private void logPrivilegedAction(javax.security.auth.Subject, java.lang.Object)
{
java.lang.Throwable v;
oadd.org.apache.hadoop.security.UserGroupInformation v;
org.slf4j.Logger v, v;
javax.security.auth.Subject v;
java.lang.StackTraceElement[] v;
java.lang.Object v;
java.lang.StackTraceElement v;
java.lang.String v, v;
boolean v;
v := @this: oadd.org.apache.hadoop.security.UserGroupInformation;
v := @parameter: javax.security.auth.Subject;
v := @parameter: java.lang.Object;
v = <oadd.org.apache.hadoop.security.UserGroupInformation: org.slf4j.Logger LOG>;
v = interfaceinvoke v.<org.slf4j.Logger: boolean isDebugEnabled()>();
if v == 0 goto label;
v = new java.lang.Throwable;
specialinvoke v.<java.lang.Throwable: void <init>()>();
v = virtualinvoke v.<java.lang.Throwable: java.lang.StackTraceElement[] getStackTrace()>();
v = v[2];
v = virtualinvoke v.<java.lang.StackTraceElement: java.lang.String toString()>();
v = <oadd.org.apache.hadoop.security.UserGroupInformation: org.slf4j.Logger LOG>;
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (oadd.org.apache.hadoop.security.UserGroupInformation,java.lang.String)>(v, v) <java.lang.invoke.StringConcatFactory: java.lang.invoke.CallSite makeConcatWithConstants(java.lang.invoke.MethodHandles$Lookup,java.lang.String,java.lang.invoke.MethodType,java.lang.String,java.lang.Object[])>("PrivilegedAction as:\u from:\u0001");
interfaceinvoke v.<org.slf4j.Logger: void debug(java.lang.String)>(v);
label:
return;
}
public static void logUserInfo(org.slf4j.Logger, java.lang.String, oadd.org.apache.hadoop.security.UserGroupInformation) throws java.io.IOException
{
oadd.org.apache.hadoop.security.UserGroupInformation v;
org.slf4j.Logger v;
java.util.Iterator v;
java.util.Collection v;
java.lang.Object v;
java.lang.String v, v, v;
boolean v, v;
v := @parameter: org.slf4j.Logger;
v := @parameter: java.lang.String;
v := @parameter: oadd.org.apache.hadoop.security.UserGroupInformation;
v = interfaceinvoke v.<org.slf4j.Logger: boolean isDebugEnabled()>();
if v == 0 goto label;
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.lang.String,oadd.org.apache.hadoop.security.UserGroupInformation)>(v, v) <java.lang.invoke.StringConcatFactory: java.lang.invoke.CallSite makeConcatWithConstants(java.lang.invoke.MethodHandles$Lookup,java.lang.String,java.lang.invoke.MethodType,java.lang.String,java.lang.Object[])>("\u UGI: \u0001");
interfaceinvoke v.<org.slf4j.Logger: void debug(java.lang.String)>(v);
v = virtualinvoke v.<oadd.org.apache.hadoop.security.UserGroupInformation: java.util.Collection getTokens()>();
v = interfaceinvoke v.<java.util.Collection: java.util.Iterator iterator()>();
label:
v = interfaceinvoke v.<java.util.Iterator: boolean hasNext()>();
if v == 0 goto label;
v = interfaceinvoke v.<java.util.Iterator: java.lang.Object next()>();
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.lang.Object)>(v) <java.lang.invoke.StringConcatFactory: java.lang.invoke.CallSite makeConcatWithConstants(java.lang.invoke.MethodHandles$Lookup,java.lang.String,java.lang.invoke.MethodType,java.lang.String,java.lang.Object[])>("+token:\u0001");
interfaceinvoke v.<org.slf4j.Logger: void debug(java.lang.String)>(v);
goto label;
label:
return;
}
public static void logAllUserInfo(org.slf4j.Logger, oadd.org.apache.hadoop.security.UserGroupInformation) throws java.io.IOException
{
oadd.org.apache.hadoop.security.UserGroupInformation v, v, v, v, v;
org.slf4j.Logger v;
boolean v;
v := @parameter: org.slf4j.Logger;
v := @parameter: oadd.org.apache.hadoop.security.UserGroupInformation;
v = interfaceinvoke v.<org.slf4j.Logger: boolean isDebugEnabled()>();
if v == 0 goto label;
v = staticinvoke <oadd.org.apache.hadoop.security.UserGroupInformation: oadd.org.apache.hadoop.security.UserGroupInformation getCurrentUser()>();
staticinvoke <oadd.org.apache.hadoop.security.UserGroupInformation: void logUserInfo(org.slf4j.Logger,java.lang.String,oadd.org.apache.hadoop.security.UserGroupInformation)>(v, "Current", v);
v = virtualinvoke v.<oadd.org.apache.hadoop.security.UserGroupInformation: oadd.org.apache.hadoop.security.UserGroupInformation getRealUser()>();
if v == null goto label;
v = virtualinvoke v.<oadd.org.apache.hadoop.security.UserGroupInformation: oadd.org.apache.hadoop.security.UserGroupInformation getRealUser()>();
staticinvoke <oadd.org.apache.hadoop.security.UserGroupInformation: void logUserInfo(org.slf4j.Logger,java.lang.String,oadd.org.apache.hadoop.security.UserGroupInformation)>(v, "Real", v);
label:
v = staticinvoke <oadd.org.apache.hadoop.security.UserGroupInformation: oadd.org.apache.hadoop.security.UserGroupInformation getLoginUser()>();
staticinvoke <oadd.org.apache.hadoop.security.UserGroupInformation: void logUserInfo(org.slf4j.Logger,java.lang.String,oadd.org.apache.hadoop.security.UserGroupInformation)>(v, "Login", v);
label:
return;
}
public static void logAllUserInfo(oadd.org.apache.hadoop.security.UserGroupInformation) throws java.io.IOException
{
oadd.org.apache.hadoop.security.UserGroupInformation v;
org.slf4j.Logger v;
v := @parameter: oadd.org.apache.hadoop.security.UserGroupInformation;
v = <oadd.org.apache.hadoop.security.UserGroupInformation: org.slf4j.Logger LOG>;
staticinvoke <oadd.org.apache.hadoop.security.UserGroupInformation: void logAllUserInfo(org.slf4j.Logger,oadd.org.apache.hadoop.security.UserGroupInformation)>(v, v);
return;
}
private void print() throws java.io.IOException
{
java.io.PrintStream v, v, v, v, v, v;
oadd.org.apache.hadoop.security.UserGroupInformation v;
java.lang.String[] v;
int v, v;
java.lang.String v, v, v, v;
v := @this: oadd.org.apache.hadoop.security.UserGroupInformation;
v = <java.lang.System: java.io.PrintStream out>;
v = virtualinvoke v.<oadd.org.apache.hadoop.security.UserGroupInformation: java.lang.String getUserName()>();
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.lang.String)>(v) <java.lang.invoke.StringConcatFactory: java.lang.invoke.CallSite makeConcatWithConstants(java.lang.invoke.MethodHandles$Lookup,java.lang.String,java.lang.invoke.MethodType,java.lang.String,java.lang.Object[])>("User: \u0001");
virtualinvoke v.<java.io.PrintStream: void println(java.lang.String)>(v);
v = <java.lang.System: java.io.PrintStream out>;
virtualinvoke v.<java.io.PrintStream: void print(java.lang.String)>("Group Ids: ");
v = <java.lang.System: java.io.PrintStream out>;
virtualinvoke v.<java.io.PrintStream: void println()>();
v = virtualinvoke v.<oadd.org.apache.hadoop.security.UserGroupInformation: java.lang.String[] getGroupNames()>();
v = <java.lang.System: java.io.PrintStream out>;
virtualinvoke v.<java.io.PrintStream: void print(java.lang.String)>("Groups: ");
v = 0;
label:
v = lengthof v;
if v >= v goto label;
v = <java.lang.System: java.io.PrintStream out>;
v = v[v];
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.lang.String)>(v) <java.lang.invoke.StringConcatFactory: java.lang.invoke.CallSite makeConcatWithConstants(java.lang.invoke.MethodHandles$Lookup,java.lang.String,java.lang.invoke.MethodType,java.lang.String,java.lang.Object[])>("\u ");
virtualinvoke v.<java.io.PrintStream: void print(java.lang.String)>(v);
v = v + 1;
goto label;
label:
v = <java.lang.System: java.io.PrintStream out>;
virtualinvoke v.<java.io.PrintStream: void println()>();
return;
}
private static oadd.org.apache.hadoop.security.UserGroupInformation doSubjectLogin(javax.security.auth.Subject, oadd.org.apache.hadoop.security.UserGroupInformation$LoginParams) throws java.io.IOException
{
javax.security.auth.login.LoginException v;
oadd.org.apache.hadoop.security.UserGroupInformation$HadoopConfiguration v;
long v;
oadd.org.apache.hadoop.security.UserGroupInformation$AuthenticationMethod v;
java.lang.String v, v;
oadd.org.apache.hadoop.security.KerberosAuthException v;
oadd.org.apache.hadoop.security.UserGroupInformation v;
oadd.org.apache.hadoop.security.UserGroupInformation$LoginParam v, v, v, v;
oadd.org.apache.hadoop.security.UserGroupInformation$LoginParams v;
javax.security.auth.Subject v, v;
java.lang.Object v, v, v;
oadd.org.apache.hadoop.security.UserGroupInformation$HadoopLoginContext v;
v := @parameter: javax.security.auth.Subject;
v := @parameter: oadd.org.apache.hadoop.security.UserGroupInformation$LoginParams;
staticinvoke <oadd.org.apache.hadoop.security.UserGroupInformation: void ensureInitialized()>();
if v != null goto label;
if v != null goto label;
v = staticinvoke <oadd.org.apache.hadoop.security.UserGroupInformation$LoginParams: oadd.org.apache.hadoop.security.UserGroupInformation$LoginParams getDefaults()>();
label:
v = new oadd.org.apache.hadoop.security.UserGroupInformation$HadoopConfiguration;
specialinvoke v.<oadd.org.apache.hadoop.security.UserGroupInformation$HadoopConfiguration: void <init>(oadd.org.apache.hadoop.security.UserGroupInformation$LoginParams)>(v);
label:
v = <oadd.org.apache.hadoop.security.UserGroupInformation: oadd.org.apache.hadoop.security.UserGroupInformation$AuthenticationMethod authenticationMethod>;
v = virtualinvoke v.<oadd.org.apache.hadoop.security.UserGroupInformation$AuthenticationMethod: java.lang.String getLoginAppName()>();
v = staticinvoke <oadd.org.apache.hadoop.security.UserGroupInformation: oadd.org.apache.hadoop.security.UserGroupInformation$HadoopLoginContext newLoginContext(java.lang.String,javax.security.auth.Subject,oadd.org.apache.hadoop.security.UserGroupInformation$HadoopConfiguration)>(v, v, v);
virtualinvoke v.<oadd.org.apache.hadoop.security.UserGroupInformation$HadoopLoginContext: void login()>();
v = new oadd.org.apache.hadoop.security.UserGroupInformation;
v = virtualinvoke v.<oadd.org.apache.hadoop.security.UserGroupInformation$HadoopLoginContext: javax.security.auth.Subject getSubject()>();
specialinvoke v.<oadd.org.apache.hadoop.security.UserGroupInformation: void <init>(javax.security.auth.Subject)>(v);
if v != null goto label;
v = <oadd.org.apache.hadoop.security.UserGroupInformation$LoginParam: oadd.org.apache.hadoop.security.UserGroupInformation$LoginParam PRINCIPAL>;
v = virtualinvoke v.<oadd.org.apache.hadoop.security.UserGroupInformation: java.lang.String getUserName()>();
virtualinvoke v.<oadd.org.apache.hadoop.security.UserGroupInformation$LoginParams: java.lang.String put(oadd.org.apache.hadoop.security.UserGroupInformation$LoginParam,java.lang.String)>(v, v);
specialinvoke v.<oadd.org.apache.hadoop.security.UserGroupInformation: void setLogin(javax.security.auth.login.LoginContext)>(v);
v = staticinvoke <oadd.org.apache.hadoop.util.Time: long now()>();
specialinvoke v.<oadd.org.apache.hadoop.security.UserGroupInformation: void setLastLogin(long)>(v);
label:
return v;
label:
v := @caughtexception;
v = new oadd.org.apache.hadoop.security.KerberosAuthException;
specialinvoke v.<oadd.org.apache.hadoop.security.KerberosAuthException: void <init>(java.lang.String,java.lang.Throwable)>("failure to login:", v);
if v == null goto label;
v = <oadd.org.apache.hadoop.security.UserGroupInformation$LoginParam: oadd.org.apache.hadoop.security.UserGroupInformation$LoginParam PRINCIPAL>;
v = virtualinvoke v.<oadd.org.apache.hadoop.security.UserGroupInformation$LoginParams: java.lang.Object get(java.lang.Object)>(v);
virtualinvoke v.<oadd.org.apache.hadoop.security.KerberosAuthException: void setPrincipal(java.lang.String)>(v);
v = <oadd.org.apache.hadoop.security.UserGroupInformation$LoginParam: oadd.org.apache.hadoop.security.UserGroupInformation$LoginParam KEYTAB>;
v = virtualinvoke v.<oadd.org.apache.hadoop.security.UserGroupInformation$LoginParams: java.lang.Object get(java.lang.Object)>(v);
virtualinvoke v.<oadd.org.apache.hadoop.security.KerberosAuthException: void setKeytabFile(java.lang.String)>(v);
v = <oadd.org.apache.hadoop.security.UserGroupInformation$LoginParam: oadd.org.apache.hadoop.security.UserGroupInformation$LoginParam CCACHE>;
v = virtualinvoke v.<oadd.org.apache.hadoop.security.UserGroupInformation$LoginParams: java.lang.Object get(java.lang.Object)>(v);
virtualinvoke v.<oadd.org.apache.hadoop.security.KerberosAuthException: void setTicketCacheFile(java.lang.String)>(v);
label:
throw v;
catch javax.security.auth.login.LoginException from label to label with label;
}
public static void main(java.lang.String[]) throws java.lang.Exception
{
java.lang.String[] v;
oadd.org.apache.hadoop.security.UserGroupInformation$AuthenticationMethod v, v;
int v;
oadd.org.apache.hadoop.security.User v;
java.lang.String v, v, v, v, v, v, v, v;
boolean v, v;
java.io.PrintStream v, v, v, v, v, v, v, v, v;
oadd.org.apache.hadoop.security.UserGroupInformation v, v, v;
v := @parameter: java.lang.String[];
v = <java.lang.System: java.io.PrintStream out>;
virtualinvoke v.<java.io.PrintStream: void println(java.lang.String)>("Getting UGI for current user");
v = staticinvoke <oadd.org.apache.hadoop.security.UserGroupInformation: oadd.org.apache.hadoop.security.UserGroupInformation getCurrentUser()>();
specialinvoke v.<oadd.org.apache.hadoop.security.UserGroupInformation: void print()>();
v = <java.lang.System: java.io.PrintStream out>;
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (oadd.org.apache.hadoop.security.UserGroupInformation)>(v) <java.lang.invoke.StringConcatFactory: java.lang.invoke.CallSite makeConcatWithConstants(java.lang.invoke.MethodHandles$Lookup,java.lang.String,java.lang.invoke.MethodType,java.lang.String,java.lang.Object[])>("UGI: \u0001");
virtualinvoke v.<java.io.PrintStream: void println(java.lang.String)>(v);
v = <java.lang.System: java.io.PrintStream out>;
v = v.<oadd.org.apache.hadoop.security.UserGroupInformation: oadd.org.apache.hadoop.security.User user>;
v = virtualinvoke v.<oadd.org.apache.hadoop.security.User: oadd.org.apache.hadoop.security.UserGroupInformation$AuthenticationMethod getAuthenticationMethod()>();
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (oadd.org.apache.hadoop.security.UserGroupInformation$AuthenticationMethod)>(v) <java.lang.invoke.StringConcatFactory: java.lang.invoke.CallSite makeConcatWithConstants(java.lang.invoke.MethodHandles$Lookup,java.lang.String,java.lang.invoke.MethodType,java.lang.String,java.lang.Object[])>("Auth method \u0001");
virtualinvoke v.<java.io.PrintStream: void println(java.lang.String)>(v);
v = <java.lang.System: java.io.PrintStream out>;
v = virtualinvoke v.<oadd.org.apache.hadoop.security.UserGroupInformation: boolean isFromKeytab()>();
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (boolean)>(v) <java.lang.invoke.StringConcatFactory: java.lang.invoke.CallSite makeConcatWithConstants(java.lang.invoke.MethodHandles$Lookup,java.lang.String,java.lang.invoke.MethodType,java.lang.String,java.lang.Object[])>("Keytab \u0001");
virtualinvoke v.<java.io.PrintStream: void println(java.lang.String)>(v);
v = <java.lang.System: java.io.PrintStream out>;
virtualinvoke v.<java.io.PrintStream: void println(java.lang.String)>("============================================================");
v = lengthof v;
if v != 2 goto label;
v = <java.lang.System: java.io.PrintStream out>;
virtualinvoke v.<java.io.PrintStream: void println(java.lang.String)>("Getting UGI from keytab....");
v = v[0];
v = v[1];
staticinvoke <oadd.org.apache.hadoop.security.UserGroupInformation: void loginUserFromKeytab(java.lang.String,java.lang.String)>(v, v);
v = staticinvoke <oadd.org.apache.hadoop.security.UserGroupInformation: oadd.org.apache.hadoop.security.UserGroupInformation getCurrentUser()>();
specialinvoke v.<oadd.org.apache.hadoop.security.UserGroupInformation: void print()>();
v = <java.lang.System: java.io.PrintStream out>;
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (oadd.org.apache.hadoop.security.UserGroupInformation)>(v) <java.lang.invoke.StringConcatFactory: java.lang.invoke.CallSite makeConcatWithConstants(java.lang.invoke.MethodHandles$Lookup,java.lang.String,java.lang.invoke.MethodType,java.lang.String,java.lang.Object[])>("Keytab: \u0001");
virtualinvoke v.<java.io.PrintStream: void println(java.lang.String)>(v);
v = staticinvoke <oadd.org.apache.hadoop.security.UserGroupInformation: oadd.org.apache.hadoop.security.UserGroupInformation getLoginUser()>();
v = <java.lang.System: java.io.PrintStream out>;
v = virtualinvoke v.<oadd.org.apache.hadoop.security.UserGroupInformation: oadd.org.apache.hadoop.security.UserGroupInformation$AuthenticationMethod getAuthenticationMethod()>();
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (oadd.org.apache.hadoop.security.UserGroupInformation$AuthenticationMethod)>(v) <java.lang.invoke.StringConcatFactory: java.lang.invoke.CallSite makeConcatWithConstants(java.lang.invoke.MethodHandles$Lookup,java.lang.String,java.lang.invoke.MethodType,java.lang.String,java.lang.Object[])>("Auth method \u0001");
virtualinvoke v.<java.io.PrintStream: void println(java.lang.String)>(v);
v = <java.lang.System: java.io.PrintStream out>;
v = virtualinvoke v.<oadd.org.apache.hadoop.security.UserGroupInformation: boolean isFromKeytab()>();
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (boolean)>(v) <java.lang.invoke.StringConcatFactory: java.lang.invoke.CallSite makeConcatWithConstants(java.lang.invoke.MethodHandles$Lookup,java.lang.String,java.lang.invoke.MethodType,java.lang.String,java.lang.Object[])>("Keytab \u0001");
virtualinvoke v.<java.io.PrintStream: void println(java.lang.String)>(v);
label:
return;
}
static void <clinit>()
{
java.util.concurrent.atomic.AtomicReference v;
java.lang.String v, v, v, v, v;
boolean v, v, v, v, v, v, v;
org.slf4j.Logger v;
oadd.org.apache.hadoop.security.UserGroupInformation$UgiMetrics v;
java.lang.Class v, v;
v = class "Loadd/org/apache/hadoop/security/UserGroupInformation;";
v = virtualinvoke v.<java.lang.Class: boolean desiredAssertionStatus()>();
if v != 0 goto label;
v = 1;
goto label;
label:
v = 0;
label:
<oadd.org.apache.hadoop.security.UserGroupInformation: boolean $assertionsDisabled> = v;
v = staticinvoke <org.slf4j.LoggerFactory: org.slf4j.Logger getLogger(java.lang.Class)>(class "Loadd/org/apache/hadoop/security/UserGroupInformation;");
<oadd.org.apache.hadoop.security.UserGroupInformation: org.slf4j.Logger LOG> = v;
<oadd.org.apache.hadoop.security.UserGroupInformation: boolean shouldRenewImmediatelyForTests> = 0;
v = staticinvoke <oadd.org.apache.hadoop.security.UserGroupInformation$UgiMetrics: oadd.org.apache.hadoop.security.UserGroupInformation$UgiMetrics create()>();
<oadd.org.apache.hadoop.security.UserGroupInformation: oadd.org.apache.hadoop.security.UserGroupInformation$UgiMetrics metrics> = v;
v = new java.util.concurrent.atomic.AtomicReference;
specialinvoke v.<java.util.concurrent.atomic.AtomicReference: void <init>()>();
<oadd.org.apache.hadoop.security.UserGroupInformation: java.util.concurrent.atomic.AtomicReference loginUserRef> = v;
v = staticinvoke <java.lang.System: java.lang.String getProperty(java.lang.String)>("os.name");
v = virtualinvoke v.<java.lang.String: boolean startsWith(java.lang.String)>("Windows");
<oadd.org.apache.hadoop.security.UserGroupInformation: boolean windows> = v;
v = staticinvoke <java.lang.System: java.lang.String getProperty(java.lang.String)>("os.arch");
v = virtualinvoke v.<java.lang.String: boolean contains(java.lang.CharSequence)>("64");
if v != 0 goto label;
v = staticinvoke <java.lang.System: java.lang.String getProperty(java.lang.String)>("os.arch");
v = virtualinvoke v.<java.lang.String: boolean contains(java.lang.CharSequence)>("s390x");
if v == 0 goto label;
label:
v = 1;
goto label;
label:
v = 0;
label:
<oadd.org.apache.hadoop.security.UserGroupInformation: boolean is64Bit> = v;
v = staticinvoke <java.lang.System: java.lang.String getProperty(java.lang.String)>("os.name");
v = virtualinvoke v.<java.lang.String: boolean equals(java.lang.Object)>("AIX");
<oadd.org.apache.hadoop.security.UserGroupInformation: boolean aix> = v;
v = staticinvoke <oadd.org.apache.hadoop.security.UserGroupInformation: java.lang.String getOSLoginModuleName()>();
<oadd.org.apache.hadoop.security.UserGroupInformation: java.lang.String OS_LOGIN_MODULE_NAME> = v;
v = staticinvoke <oadd.org.apache.hadoop.security.UserGroupInformation: java.lang.Class getOsPrincipalClass()>();
<oadd.org.apache.hadoop.security.UserGroupInformation: java.lang.Class OS_PRINCIPAL_CLASS> = v;
return;
}
}