public class oadd.org.apache.hadoop.security.authentication.util.KerberosUtil extends java.lang.Object
{
public static final org.ietf.jgss.Oid GSS_SPNEGO_MECH_OID;
public static final org.ietf.jgss.Oid GSS_KRB5_MECH_OID;
public static final org.ietf.jgss.Oid NT_GSS_KRB5_PRINCIPAL_OID;
public void <init>()
{
oadd.org.apache.hadoop.security.authentication.util.KerberosUtil v;
v := @this: oadd.org.apache.hadoop.security.authentication.util.KerberosUtil;
specialinvoke v.<java.lang.Object: void <init>()>();
return;
}
public static java.lang.String getKrb5LoginModuleName()
{
java.lang.String v;
boolean v;
v = <oadd.org.apache.hadoop.util.PlatformName: boolean IBM_JAVA>;
if v == 0 goto label;
v = "com.ibm.security.auth.module.Krb5LoginModule";
goto label;
label:
v = "com.sun.security.auth.module.Krb5LoginModule";
label:
return v;
}
private static org.ietf.jgss.Oid getNumericOidInstance(java.lang.String)
{
org.ietf.jgss.Oid v;
java.lang.String v;
org.ietf.jgss.GSSException v;
java.lang.IllegalArgumentException v;
v := @parameter: java.lang.String;
label:
v = new org.ietf.jgss.Oid;
specialinvoke v.<org.ietf.jgss.Oid: void <init>(java.lang.String)>(v);
label:
return v;
label:
v := @caughtexception;
v = new java.lang.IllegalArgumentException;
specialinvoke v.<java.lang.IllegalArgumentException: void <init>(java.lang.Throwable)>(v);
throw v;
catch org.ietf.jgss.GSSException from label to label with label;
}
public static org.ietf.jgss.Oid getOidInstance(java.lang.String) throws java.lang.ClassNotFoundException, org.ietf.jgss.GSSException, java.lang.NoSuchFieldException, java.lang.IllegalAccessException
{
org.ietf.jgss.Oid v;
java.lang.reflect.Field v;
java.lang.Class v;
java.lang.Object v;
java.lang.String v, v;
boolean v, v;
v := @parameter: java.lang.String;
v = <oadd.org.apache.hadoop.util.PlatformName: boolean IBM_JAVA>;
if v == 0 goto label;
v = "NT_GSS_KRB5_PRINCIPAL";
v = virtualinvoke v.<java.lang.String: boolean equals(java.lang.Object)>(v);
if v == 0 goto label;
v = new org.ietf.jgss.Oid;
specialinvoke v.<org.ietf.jgss.Oid: void <init>(java.lang.String)>("1.2.840.113554.1.2.2.1");
return v;
label:
v = staticinvoke <java.lang.Class: java.lang.Class forName(java.lang.String)>("com.ibm.security.jgss.GSSUtil");
goto label;
label:
v = staticinvoke <java.lang.Class: java.lang.Class forName(java.lang.String)>("sun.security.jgss.GSSUtil");
label:
v = virtualinvoke v.<java.lang.Class: java.lang.reflect.Field getDeclaredField(java.lang.String)>(v);
v = virtualinvoke v.<java.lang.reflect.Field: java.lang.Object get(java.lang.Object)>(v);
return v;
}
public static java.lang.String getDefaultRealm() throws java.lang.ClassNotFoundException, java.lang.NoSuchMethodException, java.lang.IllegalArgumentException, java.lang.IllegalAccessException, java.lang.reflect.InvocationTargetException
{
java.lang.String v;
javax.security.auth.kerberos.KerberosPrincipal v;
v = new javax.security.auth.kerberos.KerberosPrincipal;
specialinvoke v.<javax.security.auth.kerberos.KerberosPrincipal: void <init>(java.lang.String,int)>("tmp", 1);
v = virtualinvoke v.<javax.security.auth.kerberos.KerberosPrincipal: java.lang.String getRealm()>();
return v;
}
public static java.lang.String getDefaultRealmProtected()
{
java.lang.String v;
java.lang.Exception v;
label:
v = staticinvoke <oadd.org.apache.hadoop.security.authentication.util.KerberosUtil: java.lang.String getDefaultRealm()>();
label:
return v;
label:
v := @caughtexception;
return null;
catch java.lang.Exception from label to label with label;
}
public static java.lang.String getDomainRealm(java.lang.String)
{
java.lang.Object[] v, v;
java.lang.Integer v;
java.lang.reflect.Constructor v;
int v;
java.lang.String v, v;
java.lang.reflect.Method v;
boolean v, v;
java.lang.Class[] v, v;
java.lang.RuntimeException v;
java.lang.reflect.Field v;
java.lang.Exception v;
java.lang.Class v, v;
java.lang.Object v, v;
v := @parameter: java.lang.String;
label:
v = <oadd.org.apache.hadoop.util.PlatformName: boolean IBM_JAVA>;
if v == 0 goto label;
v = staticinvoke <java.lang.Class: java.lang.Class forName(java.lang.String)>("com.ibm.security.krb.PrincipalName");
goto label;
label:
v = staticinvoke <java.lang.Class: java.lang.Class forName(java.lang.String)>("sun.security.krb.PrincipalName");
label:
v = virtualinvoke v.<java.lang.Class: java.lang.reflect.Field getField(java.lang.String)>("KRB_NT_SRV_HST");
v = virtualinvoke v.<java.lang.reflect.Field: int getInt(java.lang.Object)>(null);
v = newarray (java.lang.Class)[2];
v[0] = class "Ljava/lang/String;";
v = <java.lang.Integer: java.lang.Class TYPE>;
v[1] = v;
v = virtualinvoke v.<java.lang.Class: java.lang.reflect.Constructor getConstructor(java.lang.Class[])>(v);
v = newarray (java.lang.Object)[2];
v[0] = v;
v = staticinvoke <java.lang.Integer: java.lang.Integer valueOf(int)>(v);
v[1] = v;
v = virtualinvoke v.<java.lang.reflect.Constructor: java.lang.Object newInstance(java.lang.Object[])>(v);
v = newarray (java.lang.Class)[0];
v = virtualinvoke v.<java.lang.Class: java.lang.reflect.Method getMethod(java.lang.String,java.lang.Class[])>("getRealmString", v);
v = newarray (java.lang.Object)[0];
v = virtualinvoke v.<java.lang.reflect.Method: java.lang.Object invoke(java.lang.Object,java.lang.Object[])>(v, v);
label:
goto label;
label:
v := @caughtexception;
goto label;
label:
v := @caughtexception;
label:
if null == v goto label;
v = virtualinvoke v.<java.lang.String: boolean equals(java.lang.Object)>("");
if v == 0 goto label;
label:
v = staticinvoke <oadd.org.apache.hadoop.security.authentication.util.KerberosUtil: java.lang.String getDefaultRealmProtected()>();
return v;
label:
return v;
catch java.lang.RuntimeException from label to label with label;
catch java.lang.Exception from label to label with label;
}
static java.lang.String getLocalHostName() throws java.net.UnknownHostException
{
java.net.InetAddress v;
java.lang.String v;
v = staticinvoke <java.net.InetAddress: java.net.InetAddress getLocalHost()>();
v = virtualinvoke v.<java.net.InetAddress: java.lang.String getCanonicalHostName()>();
return v;
}
public static final java.lang.String getServicePrincipal(java.lang.String, java.lang.String) throws java.net.UnknownHostException
{
java.util.Locale v;
java.lang.String v, v, v, v, v, v, v;
boolean v, v, v;
v := @parameter: java.lang.String;
v := @parameter: java.lang.String;
v = v;
if null == v goto label;
v = virtualinvoke v.<java.lang.String: boolean equals(java.lang.Object)>("");
if v != 0 goto label;
v = virtualinvoke v.<java.lang.String: boolean equals(java.lang.Object)>("0.0.0.0");
if v == 0 goto label;
label:
v = staticinvoke <oadd.org.apache.hadoop.security.authentication.util.KerberosUtil: java.lang.String getLocalHostName()>();
label:
v = <java.util.Locale: java.util.Locale US>;
v = virtualinvoke v.<java.lang.String: java.lang.String toLowerCase(java.util.Locale)>(v);
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[])>("\u0001/\u0001");
v = staticinvoke <oadd.org.apache.hadoop.security.authentication.util.KerberosUtil: java.lang.String getDomainRealm(java.lang.String)>(v);
if null == v goto label;
v = virtualinvoke v.<java.lang.String: boolean equals(java.lang.Object)>("");
if v == 0 goto label;
label:
return v;
label:
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[])>("\u0001@\u0001");
return v;
}
static final java.lang.String[] getPrincipalNames(java.lang.String) throws java.io.IOException
{
java.lang.Object[] v;
java.util.Iterator v;
java.lang.String[] v;
java.io.File v;
java.util.HashSet v;
java.util.List v;
java.lang.Object v;
java.lang.String v, v, v;
org.apache.kerby.kerberos.kerb.keytab.Keytab v;
boolean v;
v := @parameter: java.lang.String;
v = new java.io.File;
specialinvoke v.<java.io.File: void <init>(java.lang.String)>(v);
v = staticinvoke <org.apache.kerby.kerberos.kerb.keytab.Keytab: org.apache.kerby.kerberos.kerb.keytab.Keytab loadKeytab(java.io.File)>(v);
v = new java.util.HashSet;
specialinvoke v.<java.util.HashSet: void <init>()>();
v = virtualinvoke v.<org.apache.kerby.kerberos.kerb.keytab.Keytab: java.util.List getPrincipals()>();
v = interfaceinvoke v.<java.util.List: 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.<org.apache.kerby.kerberos.kerb.type.base.PrincipalName: java.lang.String getName()>();
v = virtualinvoke v.<java.lang.String: java.lang.String replace(java.lang.CharSequence,java.lang.CharSequence)>("\\", "/");
interfaceinvoke v.<java.util.Set: boolean add(java.lang.Object)>(v);
goto label;
label:
v = newarray (java.lang.String)[0];
v = interfaceinvoke v.<java.util.Set: java.lang.Object[] toArray(java.lang.Object[])>(v);
return v;
}
public static final java.lang.String[] getPrincipalNames(java.lang.String, java.util.regex.Pattern) throws java.io.IOException
{
java.lang.Object[] v;
java.lang.String[] v, v;
java.util.ArrayList v;
java.util.regex.Matcher v;
int v, v, v;
java.lang.String v, v;
java.util.regex.Pattern v;
boolean v;
v := @parameter: java.lang.String;
v := @parameter: java.util.regex.Pattern;
v = staticinvoke <oadd.org.apache.hadoop.security.authentication.util.KerberosUtil: java.lang.String[] getPrincipalNames(java.lang.String)>(v);
v = lengthof v;
if v == 0 goto label;
v = new java.util.ArrayList;
specialinvoke v.<java.util.ArrayList: void <init>()>();
v = lengthof v;
v = 0;
label:
if v >= v goto label;
v = v[v];
v = virtualinvoke v.<java.util.regex.Pattern: java.util.regex.Matcher matcher(java.lang.CharSequence)>(v);
v = virtualinvoke v.<java.util.regex.Matcher: boolean matches()>();
if v == 0 goto label;
interfaceinvoke v.<java.util.List: boolean add(java.lang.Object)>(v);
label:
v = v + 1;
goto label;
label:
v = newarray (java.lang.String)[0];
v = interfaceinvoke v.<java.util.List: java.lang.Object[] toArray(java.lang.Object[])>(v);
label:
return v;
}
public static boolean hasKerberosKeyTab(javax.security.auth.Subject)
{
java.util.Set v;
javax.security.auth.Subject v;
boolean v, v;
v := @parameter: javax.security.auth.Subject;
v = virtualinvoke v.<javax.security.auth.Subject: java.util.Set getPrivateCredentials(java.lang.Class)>(class "Ljavax/security/auth/kerberos/KeyTab;");
v = interfaceinvoke v.<java.util.Set: boolean isEmpty()>();
if v != 0 goto label;
v = 1;
goto label;
label:
v = 0;
label:
return v;
}
public static boolean hasKerberosTicket(javax.security.auth.Subject)
{
java.util.Set v;
javax.security.auth.Subject v;
boolean v, v;
v := @parameter: javax.security.auth.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: boolean isEmpty()>();
if v != 0 goto label;
v = 1;
goto label;
label:
v = 0;
label:
return v;
}
public static java.lang.String getTokenServerName(byte[])
{
byte[] v;
int[] v, v, v, v;
int v, v;
java.lang.String v, v, v;
boolean v, v, v;
oadd.org.apache.hadoop.security.authentication.util.KerberosUtil$DER v, v, v, v, v, v, v, v, v, v, v, v, v;
java.lang.IllegalArgumentException v, v;
java.lang.StringBuilder v, v, v;
v := @parameter: byte[];
v = new oadd.org.apache.hadoop.security.authentication.util.KerberosUtil$DER;
specialinvoke v.<oadd.org.apache.hadoop.security.authentication.util.KerberosUtil$DER: void <init>(byte[])>(v);
v = v;
v = virtualinvoke v.<oadd.org.apache.hadoop.security.authentication.util.KerberosUtil$DER: oadd.org.apache.hadoop.security.authentication.util.KerberosUtil$DER next()>();
v = <oadd.org.apache.hadoop.security.authentication.util.KerberosUtil$DER: oadd.org.apache.hadoop.security.authentication.util.KerberosUtil$DER SPNEGO_MECH_OID>;
v = virtualinvoke v.<oadd.org.apache.hadoop.security.authentication.util.KerberosUtil$DER: boolean equals(java.lang.Object)>(v);
if v == 0 goto label;
v = virtualinvoke v.<oadd.org.apache.hadoop.security.authentication.util.KerberosUtil$DER: oadd.org.apache.hadoop.security.authentication.util.KerberosUtil$DER next()>();
v = newarray (int)[4];
v[0] = 160;
v[1] = 48;
v[2] = 162;
v[3] = 4;
v = virtualinvoke v.<oadd.org.apache.hadoop.security.authentication.util.KerberosUtil$DER: oadd.org.apache.hadoop.security.authentication.util.KerberosUtil$DER get(int[])>(v);
v = virtualinvoke v.<oadd.org.apache.hadoop.security.authentication.util.KerberosUtil$DER: oadd.org.apache.hadoop.security.authentication.util.KerberosUtil$DER next()>();
v = virtualinvoke v.<oadd.org.apache.hadoop.security.authentication.util.KerberosUtil$DER: oadd.org.apache.hadoop.security.authentication.util.KerberosUtil$DER next()>();
label:
v = <oadd.org.apache.hadoop.security.authentication.util.KerberosUtil$DER: oadd.org.apache.hadoop.security.authentication.util.KerberosUtil$DER KRB5_MECH_OID>;
v = virtualinvoke v.<oadd.org.apache.hadoop.security.authentication.util.KerberosUtil$DER: boolean equals(java.lang.Object)>(v);
if v != 0 goto label;
v = new java.lang.IllegalArgumentException;
specialinvoke v.<java.lang.IllegalArgumentException: void <init>(java.lang.String)>("Malformed gss token");
throw v;
label:
v = virtualinvoke v.<oadd.org.apache.hadoop.security.authentication.util.KerberosUtil$DER: oadd.org.apache.hadoop.security.authentication.util.KerberosUtil$DER next()>();
v = virtualinvoke v.<oadd.org.apache.hadoop.security.authentication.util.KerberosUtil$DER: int getTag()>();
if v == 1 goto label;
v = new java.lang.IllegalArgumentException;
specialinvoke v.<java.lang.IllegalArgumentException: void <init>(java.lang.String)>("Not an AP-REQ token");
throw v;
label:
v = virtualinvoke v.<oadd.org.apache.hadoop.security.authentication.util.KerberosUtil$DER: oadd.org.apache.hadoop.security.authentication.util.KerberosUtil$DER next()>();
v = newarray (int)[5];
v[0] = 110;
v[1] = 48;
v[2] = 163;
v[3] = 97;
v[4] = 48;
v = virtualinvoke v.<oadd.org.apache.hadoop.security.authentication.util.KerberosUtil$DER: oadd.org.apache.hadoop.security.authentication.util.KerberosUtil$DER get(int[])>(v);
v = newarray (int)[2];
v[0] = 161;
v[1] = 27;
v = virtualinvoke v.<oadd.org.apache.hadoop.security.authentication.util.KerberosUtil$DER: oadd.org.apache.hadoop.security.authentication.util.KerberosUtil$DER get(int[])>(v);
v = virtualinvoke v.<oadd.org.apache.hadoop.security.authentication.util.KerberosUtil$DER: java.lang.String getAsString()>();
v = newarray (int)[4];
v[0] = 162;
v[1] = 48;
v[2] = 161;
v[3] = 48;
v = virtualinvoke v.<oadd.org.apache.hadoop.security.authentication.util.KerberosUtil$DER: oadd.org.apache.hadoop.security.authentication.util.KerberosUtil$DER get(int[])>(v);
v = new java.lang.StringBuilder;
specialinvoke v.<java.lang.StringBuilder: void <init>()>();
label:
v = virtualinvoke v.<oadd.org.apache.hadoop.security.authentication.util.KerberosUtil$DER: boolean hasNext()>();
if v == 0 goto label;
v = virtualinvoke v.<java.lang.StringBuilder: int length()>();
if v <= 0 goto label;
virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(char)>(47);
label:
v = virtualinvoke v.<oadd.org.apache.hadoop.security.authentication.util.KerberosUtil$DER: oadd.org.apache.hadoop.security.authentication.util.KerberosUtil$DER next()>();
v = virtualinvoke v.<oadd.org.apache.hadoop.security.authentication.util.KerberosUtil$DER: java.lang.String getAsString()>();
virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(java.lang.String)>(v);
goto label;
label:
v = virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(char)>(64);
v = virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(java.lang.String)>(v);
v = virtualinvoke v.<java.lang.StringBuilder: java.lang.String toString()>();
return v;
}
static void <clinit>()
{
org.ietf.jgss.Oid v, v, v;
v = staticinvoke <oadd.org.apache.hadoop.security.authentication.util.KerberosUtil: org.ietf.jgss.Oid getNumericOidInstance(java.lang.String)>("1.3.6.1.5.5.2");
<oadd.org.apache.hadoop.security.authentication.util.KerberosUtil: org.ietf.jgss.Oid GSS_SPNEGO_MECH_OID> = v;
v = staticinvoke <oadd.org.apache.hadoop.security.authentication.util.KerberosUtil: org.ietf.jgss.Oid getNumericOidInstance(java.lang.String)>("1.2.840.113554.1.2.2");
<oadd.org.apache.hadoop.security.authentication.util.KerberosUtil: org.ietf.jgss.Oid GSS_KRB5_MECH_OID> = v;
v = staticinvoke <oadd.org.apache.hadoop.security.authentication.util.KerberosUtil: org.ietf.jgss.Oid getNumericOidInstance(java.lang.String)>("1.2.840.113554.1.2.2.1");
<oadd.org.apache.hadoop.security.authentication.util.KerberosUtil: org.ietf.jgss.Oid NT_GSS_KRB5_PRINCIPAL_OID> = v;
return;
}
}