public class oadd.org.apache.hadoop.security.SaslRpcClient extends java.lang.Object
{
public static final org.slf4j.Logger LOG;
private final oadd.org.apache.hadoop.security.UserGroupInformation ugi;
private final java.lang.Class protocol;
private final java.net.InetSocketAddress serverAddr;
private final oadd.org.apache.hadoop.conf.Configuration conf;
private javax.security.sasl.SaslClient saslClient;
private oadd.org.apache.hadoop.security.SaslPropertiesResolver saslPropsResolver;
private oadd.org.apache.hadoop.security.SaslRpcServer$AuthMethod authMethod;
private static final oadd.org.apache.hadoop.ipc.protobuf.RpcHeaderProtos$RpcRequestHeaderProto saslHeader;
private static final oadd.org.apache.hadoop.ipc.protobuf.RpcHeaderProtos$RpcSaslProto negotiateRequest;
public void <init>(oadd.org.apache.hadoop.security.UserGroupInformation, java.lang.Class, java.net.InetSocketAddress, oadd.org.apache.hadoop.conf.Configuration)
{
oadd.org.apache.hadoop.security.SaslPropertiesResolver v;
oadd.org.apache.hadoop.security.UserGroupInformation v;
oadd.org.apache.hadoop.security.SaslRpcClient v;
java.lang.Class v;
oadd.org.apache.hadoop.conf.Configuration v;
java.net.InetSocketAddress v;
v := @this: oadd.org.apache.hadoop.security.SaslRpcClient;
v := @parameter: oadd.org.apache.hadoop.security.UserGroupInformation;
v := @parameter: java.lang.Class;
v := @parameter: java.net.InetSocketAddress;
v := @parameter: oadd.org.apache.hadoop.conf.Configuration;
specialinvoke v.<java.lang.Object: void <init>()>();
v.<oadd.org.apache.hadoop.security.SaslRpcClient: oadd.org.apache.hadoop.security.UserGroupInformation ugi> = v;
v.<oadd.org.apache.hadoop.security.SaslRpcClient: java.lang.Class protocol> = v;
v.<oadd.org.apache.hadoop.security.SaslRpcClient: java.net.InetSocketAddress serverAddr> = v;
v.<oadd.org.apache.hadoop.security.SaslRpcClient: oadd.org.apache.hadoop.conf.Configuration conf> = v;
v = staticinvoke <oadd.org.apache.hadoop.security.SaslPropertiesResolver: oadd.org.apache.hadoop.security.SaslPropertiesResolver getInstance(oadd.org.apache.hadoop.conf.Configuration)>(v);
v.<oadd.org.apache.hadoop.security.SaslRpcClient: oadd.org.apache.hadoop.security.SaslPropertiesResolver saslPropsResolver> = v;
return;
}
public java.lang.Object getNegotiatedProperty(java.lang.String)
{
javax.security.sasl.SaslClient v, v;
oadd.org.apache.hadoop.security.SaslRpcClient v;
java.lang.Object v;
java.lang.String v;
v := @this: oadd.org.apache.hadoop.security.SaslRpcClient;
v := @parameter: java.lang.String;
v = v.<oadd.org.apache.hadoop.security.SaslRpcClient: javax.security.sasl.SaslClient saslClient>;
if v == null goto label;
v = v.<oadd.org.apache.hadoop.security.SaslRpcClient: javax.security.sasl.SaslClient saslClient>;
v = interfaceinvoke v.<javax.security.sasl.SaslClient: java.lang.Object getNegotiatedProperty(java.lang.String)>(v);
goto label;
label:
v = null;
label:
return v;
}
public oadd.org.apache.hadoop.security.SaslRpcServer$AuthMethod getAuthMethod()
{
oadd.org.apache.hadoop.security.SaslRpcClient v;
oadd.org.apache.hadoop.security.SaslRpcServer$AuthMethod v;
v := @this: oadd.org.apache.hadoop.security.SaslRpcClient;
v = v.<oadd.org.apache.hadoop.security.SaslRpcClient: oadd.org.apache.hadoop.security.SaslRpcServer$AuthMethod authMethod>;
return v;
}
private oadd.org.apache.hadoop.ipc.protobuf.RpcHeaderProtos$RpcSaslProto$SaslAuth selectSaslClient(java.util.List) throws javax.security.sasl.SaslException, oadd.org.apache.hadoop.security.AccessControlException, java.io.IOException
{
oadd.org.apache.hadoop.security.SaslRpcServer$AuthMethod v, v;
java.util.ArrayList v;
javax.security.sasl.SaslClient v, v, v;
oadd.org.apache.hadoop.ipc.protobuf.RpcHeaderProtos$RpcSaslProto$SaslAuth v;
java.lang.String v, v, v, v, v, v;
boolean v, v, v, v, v;
org.slf4j.Logger v, v;
java.util.Iterator v, v;
oadd.org.apache.hadoop.security.SaslRpcClient v;
java.util.List v;
oadd.org.apache.hadoop.security.AccessControlException v;
java.lang.Class v;
java.lang.Object v, v;
v := @this: oadd.org.apache.hadoop.security.SaslRpcClient;
v := @parameter: java.util.List;
v = null;
v = 0;
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 = specialinvoke v.<oadd.org.apache.hadoop.security.SaslRpcClient: boolean isValidAuthType(oadd.org.apache.hadoop.ipc.protobuf.RpcHeaderProtos$RpcSaslProto$SaslAuth)>(v);
if v == 0 goto label;
v = virtualinvoke v.<oadd.org.apache.hadoop.ipc.protobuf.RpcHeaderProtos$RpcSaslProto$SaslAuth: java.lang.String getMethod()>();
v = staticinvoke <oadd.org.apache.hadoop.security.SaslRpcServer$AuthMethod: oadd.org.apache.hadoop.security.SaslRpcServer$AuthMethod valueOf(java.lang.String)>(v);
v = <oadd.org.apache.hadoop.security.SaslRpcServer$AuthMethod: oadd.org.apache.hadoop.security.SaslRpcServer$AuthMethod SIMPLE>;
if v != v goto label;
v = 1;
goto label;
label:
v = specialinvoke v.<oadd.org.apache.hadoop.security.SaslRpcClient: javax.security.sasl.SaslClient createSaslClient(oadd.org.apache.hadoop.ipc.protobuf.RpcHeaderProtos$RpcSaslProto$SaslAuth)>(v);
v.<oadd.org.apache.hadoop.security.SaslRpcClient: javax.security.sasl.SaslClient saslClient> = v;
v = v.<oadd.org.apache.hadoop.security.SaslRpcClient: javax.security.sasl.SaslClient saslClient>;
if v == null goto label;
label:
v = v;
label:
v = v.<oadd.org.apache.hadoop.security.SaslRpcClient: javax.security.sasl.SaslClient saslClient>;
if v != null goto label;
if v != 0 goto label;
v = new java.util.ArrayList;
specialinvoke v.<java.util.ArrayList: void <init>()>();
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.<oadd.org.apache.hadoop.ipc.protobuf.RpcHeaderProtos$RpcSaslProto$SaslAuth: java.lang.String getMethod()>();
interfaceinvoke v.<java.util.List: boolean add(java.lang.Object)>(v);
goto label;
label:
v = new oadd.org.apache.hadoop.security.AccessControlException;
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.util.ArrayList)>(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[])>("Client cannot authenticate via:\u0001");
specialinvoke v.<oadd.org.apache.hadoop.security.AccessControlException: void <init>(java.lang.String)>(v);
throw v;
label:
v = <oadd.org.apache.hadoop.security.SaslRpcClient: org.slf4j.Logger LOG>;
v = interfaceinvoke v.<org.slf4j.Logger: boolean isDebugEnabled()>();
if v == 0 goto label;
if v == null goto label;
v = <oadd.org.apache.hadoop.security.SaslRpcClient: org.slf4j.Logger LOG>;
v = virtualinvoke v.<oadd.org.apache.hadoop.ipc.protobuf.RpcHeaderProtos$RpcSaslProto$SaslAuth: java.lang.String getMethod()>();
v = v.<oadd.org.apache.hadoop.security.SaslRpcClient: java.lang.Class protocol>;
v = virtualinvoke v.<java.lang.Class: java.lang.String getSimpleName()>();
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[])>("Use \u authentication for protocol \u0001");
interfaceinvoke v.<org.slf4j.Logger: void debug(java.lang.String)>(v);
label:
return v;
}
private boolean isValidAuthType(oadd.org.apache.hadoop.ipc.protobuf.RpcHeaderProtos$RpcSaslProto$SaslAuth)
{
oadd.org.apache.hadoop.security.SaslRpcServer$AuthMethod v;
oadd.org.apache.hadoop.security.SaslRpcClient v;
java.lang.IllegalArgumentException v;
oadd.org.apache.hadoop.ipc.protobuf.RpcHeaderProtos$RpcSaslProto$SaslAuth v;
java.lang.String v, v, v;
boolean v, v;
v := @this: oadd.org.apache.hadoop.security.SaslRpcClient;
v := @parameter: oadd.org.apache.hadoop.ipc.protobuf.RpcHeaderProtos$RpcSaslProto$SaslAuth;
label:
v = virtualinvoke v.<oadd.org.apache.hadoop.ipc.protobuf.RpcHeaderProtos$RpcSaslProto$SaslAuth: java.lang.String getMethod()>();
v = staticinvoke <oadd.org.apache.hadoop.security.SaslRpcServer$AuthMethod: oadd.org.apache.hadoop.security.SaslRpcServer$AuthMethod valueOf(java.lang.String)>(v);
label:
goto label;
label:
v := @caughtexception;
v = null;
label:
if v == null goto label;
v = virtualinvoke v.<oadd.org.apache.hadoop.security.SaslRpcServer$AuthMethod: java.lang.String getMechanismName()>();
v = virtualinvoke v.<oadd.org.apache.hadoop.ipc.protobuf.RpcHeaderProtos$RpcSaslProto$SaslAuth: java.lang.String getMechanism()>();
v = virtualinvoke v.<java.lang.String: boolean equals(java.lang.Object)>(v);
if v == 0 goto label;
v = 1;
goto label;
label:
v = 0;
label:
return v;
catch java.lang.IllegalArgumentException from label to label with label;
}
private javax.security.sasl.SaslClient createSaslClient(oadd.org.apache.hadoop.ipc.protobuf.RpcHeaderProtos$RpcSaslProto$SaslAuth) throws javax.security.sasl.SaslException, java.io.IOException
{
oadd.org.apache.hadoop.security.SaslRpcServer$AuthMethod v, v, v;
java.net.InetAddress v;
javax.security.sasl.SaslClient v;
int[] v;
java.util.Map v;
oadd.org.apache.hadoop.ipc.protobuf.RpcHeaderProtos$RpcSaslProto$SaslAuth v;
boolean v, v;
oadd.org.apache.hadoop.security.SaslPropertiesResolver v;
oadd.org.apache.hadoop.security.token.Token v;
java.net.InetSocketAddress v;
java.lang.String[] v;
oadd.org.apache.hadoop.security.UserGroupInformation$AuthenticationMethod v;
int v, v;
java.lang.String v, v, v, v, v, v, v, v, v;
oadd.org.apache.hadoop.security.SaslRpcClient$SaslClientCallbackHandler v, v;
oadd.org.apache.hadoop.security.UserGroupInformation v;
org.slf4j.Logger v, v, v, v, v, v, v;
oadd.org.apache.hadoop.security.SaslRpcClient v;
java.io.IOException v;
java.lang.Class v;
v := @this: oadd.org.apache.hadoop.security.SaslRpcClient;
v := @parameter: oadd.org.apache.hadoop.ipc.protobuf.RpcHeaderProtos$RpcSaslProto$SaslAuth;
v = virtualinvoke v.<oadd.org.apache.hadoop.ipc.protobuf.RpcHeaderProtos$RpcSaslProto$SaslAuth: java.lang.String getProtocol()>();
v = virtualinvoke v.<oadd.org.apache.hadoop.ipc.protobuf.RpcHeaderProtos$RpcSaslProto$SaslAuth: java.lang.String getServerId()>();
v = v.<oadd.org.apache.hadoop.security.SaslRpcClient: oadd.org.apache.hadoop.security.SaslPropertiesResolver saslPropsResolver>;
v = v.<oadd.org.apache.hadoop.security.SaslRpcClient: java.net.InetSocketAddress serverAddr>;
v = virtualinvoke v.<java.net.InetSocketAddress: java.net.InetAddress getAddress()>();
v = virtualinvoke v.<oadd.org.apache.hadoop.security.SaslPropertiesResolver: java.util.Map getClientProperties(java.net.InetAddress)>(v);
v = null;
v = virtualinvoke v.<oadd.org.apache.hadoop.ipc.protobuf.RpcHeaderProtos$RpcSaslProto$SaslAuth: java.lang.String getMethod()>();
v = staticinvoke <oadd.org.apache.hadoop.security.SaslRpcServer$AuthMethod: oadd.org.apache.hadoop.security.SaslRpcServer$AuthMethod valueOf(java.lang.String)>(v);
v = <oadd.org.apache.hadoop.security.SaslRpcClient$1: int[] $SwitchMap$org$apache$hadoop$security$SaslRpcServer$AuthMethod>;
v = virtualinvoke v.<oadd.org.apache.hadoop.security.SaslRpcServer$AuthMethod: int ordinal()>();
v = v[v];
lookupswitch(v)
{
case 1: goto label;
case 2: goto label;
default: goto label;
};
label:
v = specialinvoke v.<oadd.org.apache.hadoop.security.SaslRpcClient: oadd.org.apache.hadoop.security.token.Token getServerToken(oadd.org.apache.hadoop.ipc.protobuf.RpcHeaderProtos$RpcSaslProto$SaslAuth)>(v);
if v != null goto label;
v = <oadd.org.apache.hadoop.security.SaslRpcClient: org.slf4j.Logger LOG>;
interfaceinvoke v.<org.slf4j.Logger: void debug(java.lang.String)>("tokens aren\'t supported for this protocol or user doesn\'t have one");
return null;
label:
v = new oadd.org.apache.hadoop.security.SaslRpcClient$SaslClientCallbackHandler;
specialinvoke v.<oadd.org.apache.hadoop.security.SaslRpcClient$SaslClientCallbackHandler: void <init>(oadd.org.apache.hadoop.security.token.Token)>(v);
v = v;
goto label;
label:
v = v.<oadd.org.apache.hadoop.security.SaslRpcClient: oadd.org.apache.hadoop.security.UserGroupInformation ugi>;
v = virtualinvoke v.<oadd.org.apache.hadoop.security.UserGroupInformation: oadd.org.apache.hadoop.security.UserGroupInformation$AuthenticationMethod getRealAuthenticationMethod()>();
v = virtualinvoke v.<oadd.org.apache.hadoop.security.UserGroupInformation$AuthenticationMethod: oadd.org.apache.hadoop.security.SaslRpcServer$AuthMethod getAuthMethod()>();
v = <oadd.org.apache.hadoop.security.SaslRpcServer$AuthMethod: oadd.org.apache.hadoop.security.SaslRpcServer$AuthMethod KERBEROS>;
if v == v goto label;
v = <oadd.org.apache.hadoop.security.SaslRpcClient: org.slf4j.Logger LOG>;
interfaceinvoke v.<org.slf4j.Logger: void debug(java.lang.String)>("client isn\'t using kerberos");
return null;
label:
v = virtualinvoke v.<oadd.org.apache.hadoop.security.SaslRpcClient: java.lang.String getServerPrincipal(oadd.org.apache.hadoop.ipc.protobuf.RpcHeaderProtos$RpcSaslProto$SaslAuth)>(v);
if v != null goto label;
v = <oadd.org.apache.hadoop.security.SaslRpcClient: org.slf4j.Logger LOG>;
interfaceinvoke v.<org.slf4j.Logger: void debug(java.lang.String)>("protocol doesn\'t use kerberos");
return null;
label:
v = <oadd.org.apache.hadoop.security.SaslRpcClient: org.slf4j.Logger LOG>;
v = interfaceinvoke v.<org.slf4j.Logger: boolean isDebugEnabled()>();
if v == 0 goto label;
v = <oadd.org.apache.hadoop.security.SaslRpcClient: org.slf4j.Logger LOG>;
v = v.<oadd.org.apache.hadoop.security.SaslRpcClient: java.lang.Class protocol>;
v = virtualinvoke v.<java.lang.Class: java.lang.String getCanonicalName()>();
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[])>("RPC Server\'s Kerberos principal name for protocol=\u is \u0001");
interfaceinvoke v.<org.slf4j.Logger: void debug(java.lang.String)>(v);
goto label;
label:
v = new java.io.IOException;
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (oadd.org.apache.hadoop.security.SaslRpcServer$AuthMethod)>(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[])>("Unknown authentication method \u0001");
specialinvoke v.<java.io.IOException: void <init>(java.lang.String)>(v);
throw v;
label:
v = virtualinvoke v.<oadd.org.apache.hadoop.security.SaslRpcServer$AuthMethod: java.lang.String getMechanismName()>();
v = <oadd.org.apache.hadoop.security.SaslRpcClient: org.slf4j.Logger LOG>;
v = interfaceinvoke v.<org.slf4j.Logger: boolean isDebugEnabled()>();
if v == 0 goto label;
v = <oadd.org.apache.hadoop.security.SaslRpcClient: org.slf4j.Logger LOG>;
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.lang.String,oadd.org.apache.hadoop.security.SaslRpcServer$AuthMethod,java.lang.String)>(v, 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[])>("Creating SASL \u0001(\u)  client to authenticate to service at \u0001");
interfaceinvoke v.<org.slf4j.Logger: void debug(java.lang.String)>(v);
label:
v = newarray (java.lang.String)[1];
v[0] = v;
v = staticinvoke <javax.security.sasl.Sasl: javax.security.sasl.SaslClient createSaslClient(java.lang.String[],java.lang.String,java.lang.String,java.lang.String,java.util.Map,javax.security.auth.callback.CallbackHandler)>(v, null, v, v, v, v);
return v;
}
private oadd.org.apache.hadoop.security.token.Token getServerToken(oadd.org.apache.hadoop.ipc.protobuf.RpcHeaderProtos$RpcSaslProto$SaslAuth) throws java.io.IOException
{
java.lang.ReflectiveOperationException v;
oadd.org.apache.hadoop.security.token.TokenInfo v;
oadd.org.apache.hadoop.ipc.protobuf.RpcHeaderProtos$RpcSaslProto$SaslAuth v;
oadd.org.apache.hadoop.conf.Configuration v;
java.lang.String v, v;
oadd.org.apache.hadoop.security.UserGroupInformation v;
org.slf4j.Logger v;
java.util.Collection v;
oadd.org.apache.hadoop.io.Text v;
oadd.org.apache.hadoop.security.SaslRpcClient v;
oadd.org.apache.hadoop.security.token.Token v;
java.io.IOException v;
java.net.InetSocketAddress v;
java.lang.Class v, v, v;
java.lang.Object v;
v := @this: oadd.org.apache.hadoop.security.SaslRpcClient;
v := @parameter: oadd.org.apache.hadoop.ipc.protobuf.RpcHeaderProtos$RpcSaslProto$SaslAuth;
v = v.<oadd.org.apache.hadoop.security.SaslRpcClient: java.lang.Class protocol>;
v = v.<oadd.org.apache.hadoop.security.SaslRpcClient: oadd.org.apache.hadoop.conf.Configuration conf>;
v = staticinvoke <oadd.org.apache.hadoop.security.SecurityUtil: oadd.org.apache.hadoop.security.token.TokenInfo getTokenInfo(java.lang.Class,oadd.org.apache.hadoop.conf.Configuration)>(v, v);
v = <oadd.org.apache.hadoop.security.SaslRpcClient: org.slf4j.Logger LOG>;
v = v.<oadd.org.apache.hadoop.security.SaslRpcClient: java.lang.Class protocol>;
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.lang.Class,oadd.org.apache.hadoop.security.token.TokenInfo)>(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[])>("Get token info proto:\u info:\u0001");
interfaceinvoke v.<org.slf4j.Logger: void debug(java.lang.String)>(v);
if v != null goto label;
return null;
label:
v = interfaceinvoke v.<oadd.org.apache.hadoop.security.token.TokenInfo: java.lang.Class value()>();
v = virtualinvoke v.<java.lang.Class: java.lang.Object newInstance()>();
label:
goto label;
label:
v := @caughtexception;
v = new java.io.IOException;
v = virtualinvoke v.<java.lang.ReflectiveOperationException: java.lang.String toString()>();
specialinvoke v.<java.io.IOException: void <init>(java.lang.String,java.lang.Throwable)>(v, v);
throw v;
label:
v = v.<oadd.org.apache.hadoop.security.SaslRpcClient: java.net.InetSocketAddress serverAddr>;
v = staticinvoke <oadd.org.apache.hadoop.security.SecurityUtil: oadd.org.apache.hadoop.io.Text buildTokenService(java.net.InetSocketAddress)>(v);
v = v.<oadd.org.apache.hadoop.security.SaslRpcClient: oadd.org.apache.hadoop.security.UserGroupInformation ugi>;
v = virtualinvoke v.<oadd.org.apache.hadoop.security.UserGroupInformation: java.util.Collection getTokens()>();
v = interfaceinvoke v.<oadd.org.apache.hadoop.security.token.TokenSelector: oadd.org.apache.hadoop.security.token.Token selectToken(oadd.org.apache.hadoop.io.Text,java.util.Collection)>(v, v);
return v;
catch java.lang.InstantiationException from label to label with label;
catch java.lang.IllegalAccessException from label to label with label;
}
java.lang.String getServerPrincipal(oadd.org.apache.hadoop.ipc.protobuf.RpcHeaderProtos$RpcSaslProto$SaslAuth) throws java.io.IOException
{
java.net.InetAddress v;
oadd.org.apache.hadoop.ipc.protobuf.RpcHeaderProtos$RpcSaslProto$SaslAuth v;
oadd.org.apache.hadoop.conf.Configuration v, v, v, v;
boolean v, v, v, v, v;
javax.security.auth.kerberos.KerberosPrincipal v;
java.net.InetSocketAddress v;
oadd.org.apache.hadoop.security.KerberosInfo v;
oadd.org.apache.hadoop.security.authentication.util.KerberosName v;
java.lang.Object[] v, v;
oadd.com.google.re2j.Matcher v;
java.lang.String v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v;
org.slf4j.Logger v, v, v;
oadd.com.google.re2j.Pattern v;
oadd.org.apache.hadoop.security.SaslRpcClient v;
java.lang.IllegalArgumentException v, v, v, v, v;
java.lang.Class v, v, v;
v := @this: oadd.org.apache.hadoop.security.SaslRpcClient;
v := @parameter: oadd.org.apache.hadoop.ipc.protobuf.RpcHeaderProtos$RpcSaslProto$SaslAuth;
v = v.<oadd.org.apache.hadoop.security.SaslRpcClient: java.lang.Class protocol>;
v = v.<oadd.org.apache.hadoop.security.SaslRpcClient: oadd.org.apache.hadoop.conf.Configuration conf>;
v = staticinvoke <oadd.org.apache.hadoop.security.SecurityUtil: oadd.org.apache.hadoop.security.KerberosInfo getKerberosInfo(java.lang.Class,oadd.org.apache.hadoop.conf.Configuration)>(v, v);
v = <oadd.org.apache.hadoop.security.SaslRpcClient: org.slf4j.Logger LOG>;
v = v.<oadd.org.apache.hadoop.security.SaslRpcClient: java.lang.Class protocol>;
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.lang.Class,oadd.org.apache.hadoop.security.KerberosInfo)>(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[])>("Get kerberos info proto:\u info:\u0001");
interfaceinvoke v.<org.slf4j.Logger: void debug(java.lang.String)>(v);
if v != null goto label;
return null;
label:
v = interfaceinvoke v.<oadd.org.apache.hadoop.security.KerberosInfo: java.lang.String serverPrincipal()>();
if v != null goto label;
v = new java.lang.IllegalArgumentException;
v = v.<oadd.org.apache.hadoop.security.SaslRpcClient: java.lang.Class protocol>;
v = virtualinvoke v.<java.lang.Class: java.lang.String getCanonicalName()>();
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[])>("Can\'t obtain server Kerberos config key from protocol=\u0001");
specialinvoke v.<java.lang.IllegalArgumentException: void <init>(java.lang.String)>(v);
throw v;
label:
v = new javax.security.auth.kerberos.KerberosPrincipal;
v = virtualinvoke v.<oadd.org.apache.hadoop.ipc.protobuf.RpcHeaderProtos$RpcSaslProto$SaslAuth: java.lang.String getProtocol()>();
v = virtualinvoke v.<oadd.org.apache.hadoop.ipc.protobuf.RpcHeaderProtos$RpcSaslProto$SaslAuth: java.lang.String getServerId()>();
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");
specialinvoke v.<javax.security.auth.kerberos.KerberosPrincipal: void <init>(java.lang.String,int)>(v, 3);
v = virtualinvoke v.<javax.security.auth.kerberos.KerberosPrincipal: java.lang.String getName()>();
v = v.<oadd.org.apache.hadoop.security.SaslRpcClient: oadd.org.apache.hadoop.conf.Configuration conf>;
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.pattern");
v = virtualinvoke v.<oadd.org.apache.hadoop.conf.Configuration: java.lang.String get(java.lang.String)>(v);
if v == null goto label;
v = virtualinvoke v.<java.lang.String: boolean isEmpty()>();
if v != 0 goto label;
v = staticinvoke <oadd.org.apache.hadoop.fs.GlobPattern: oadd.com.google.re2j.Pattern compile(java.lang.String)>(v);
v = virtualinvoke v.<oadd.com.google.re2j.Pattern: oadd.com.google.re2j.Matcher matcher(java.lang.CharSequence)>(v);
v = virtualinvoke v.<oadd.com.google.re2j.Matcher: boolean matches()>();
if v != 0 goto label;
v = new java.lang.IllegalArgumentException;
v = newarray (java.lang.Object)[2];
v[0] = v;
v[1] = v;
v = staticinvoke <java.lang.String: java.lang.String format(java.lang.String,java.lang.Object[])>("Server has invalid Kerberos principal: %s, doesn\'t match the pattern: %s", v);
specialinvoke v.<java.lang.IllegalArgumentException: void <init>(java.lang.String)>(v);
throw v;
label:
v = v.<oadd.org.apache.hadoop.security.SaslRpcClient: oadd.org.apache.hadoop.conf.Configuration conf>;
v = virtualinvoke v.<oadd.org.apache.hadoop.conf.Configuration: java.lang.String get(java.lang.String)>(v);
v = v.<oadd.org.apache.hadoop.security.SaslRpcClient: java.net.InetSocketAddress serverAddr>;
v = virtualinvoke v.<java.net.InetSocketAddress: java.net.InetAddress getAddress()>();
v = staticinvoke <oadd.org.apache.hadoop.security.SecurityUtil: java.lang.String getServerPrincipal(java.lang.String,java.net.InetAddress)>(v, v);
v = <oadd.org.apache.hadoop.security.SaslRpcClient: org.slf4j.Logger LOG>;
v = interfaceinvoke v.<org.slf4j.Logger: boolean isDebugEnabled()>();
if v == 0 goto label;
v = <oadd.org.apache.hadoop.security.SaslRpcClient: org.slf4j.Logger LOG>;
v = v.<oadd.org.apache.hadoop.security.SaslRpcClient: oadd.org.apache.hadoop.conf.Configuration conf>;
v = virtualinvoke v.<oadd.org.apache.hadoop.conf.Configuration: java.lang.String get(java.lang.String)>(v);
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.lang.String,java.lang.String,java.lang.String)>(v, 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[])>("getting serverKey: \u conf value: \u principal: \u0001");
interfaceinvoke v.<org.slf4j.Logger: void debug(java.lang.String)>(v);
label:
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)>("Failed to specify server\'s Kerberos principal name");
throw v;
label:
v = new oadd.org.apache.hadoop.security.authentication.util.KerberosName;
specialinvoke v.<oadd.org.apache.hadoop.security.authentication.util.KerberosName: void <init>(java.lang.String)>(v);
v = virtualinvoke v.<oadd.org.apache.hadoop.security.authentication.util.KerberosName: java.lang.String getHostName()>();
if v != null goto label;
v = new java.lang.IllegalArgumentException;
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[])>("Kerberos principal name does NOT have the expected hostname part: \u0001");
specialinvoke v.<java.lang.IllegalArgumentException: void <init>(java.lang.String)>(v);
throw v;
label:
v = virtualinvoke v.<java.lang.String: boolean equals(java.lang.Object)>(v);
if v != 0 goto label;
v = new java.lang.IllegalArgumentException;
v = newarray (java.lang.Object)[2];
v[0] = v;
v[1] = v;
v = staticinvoke <java.lang.String: java.lang.String format(java.lang.String,java.lang.Object[])>("Server has invalid Kerberos principal: %s, expecting: %s", v);
specialinvoke v.<java.lang.IllegalArgumentException: void <init>(java.lang.String)>(v);
throw v;
label:
return v;
}
public oadd.org.apache.hadoop.security.SaslRpcServer$AuthMethod saslConnect(oadd.org.apache.hadoop.ipc.Client$IpcStreams) throws java.io.IOException
{
oadd.org.apache.hadoop.ipc.Server$AuthProtocol v;
byte[] v, v, v, v;
oadd.org.apache.hadoop.security.SaslRpcServer$AuthMethod v, v, v, v, v, v;
javax.security.sasl.SaslException v, v, v, v;
java.nio.ByteBuffer v;
oadd.org.apache.hadoop.ipc.RemoteException v;
javax.security.sasl.SaslClient v, v, v, v;
java.io.DataOutputStream v, v;
int[] v, v;
oadd.org.apache.hadoop.ipc.protobuf.RpcHeaderProtos$RpcSaslProto$SaslAuth v;
oadd.org.apache.hadoop.ipc.Client$IpcStreams v;
boolean v, v, v;
oadd.com.google.protobuf.ByteString v;
java.util.List v;
oadd.org.apache.hadoop.ipc.protobuf.RpcHeaderProtos$RpcSaslProto$SaslAuth$Builder v, v;
oadd.org.apache.hadoop.ipc.protobuf.RpcHeaderProtos$RpcResponseHeaderProto$RpcStatusProto v;
oadd.org.apache.hadoop.ipc.protobuf.RpcHeaderProtos$RpcSaslProto$Builder v;
int v, v, v, v, v, v, v;
java.lang.String v, v, v, v;
oadd.org.apache.hadoop.ipc.protobuf.RpcHeaderProtos$RpcSaslProto v, v, v;
oadd.org.apache.hadoop.security.SaslRpcClient v;
java.lang.Object v, v;
oadd.org.apache.hadoop.ipc.protobuf.RpcHeaderProtos$RpcResponseHeaderProto v;
oadd.org.apache.hadoop.ipc.protobuf.RpcHeaderProtos$RpcSaslProto$SaslState v, v, v, v;
oadd.org.apache.hadoop.ipc.RpcWritable$Buffer v;
v := @this: oadd.org.apache.hadoop.security.SaslRpcClient;
v := @parameter: oadd.org.apache.hadoop.ipc.Client$IpcStreams;
v = <oadd.org.apache.hadoop.security.SaslRpcServer$AuthMethod: oadd.org.apache.hadoop.security.SaslRpcServer$AuthMethod SIMPLE>;
v.<oadd.org.apache.hadoop.security.SaslRpcClient: oadd.org.apache.hadoop.security.SaslRpcServer$AuthMethod authMethod> = v;
v = v.<oadd.org.apache.hadoop.ipc.Client$IpcStreams: java.io.DataOutputStream out>;
v = <oadd.org.apache.hadoop.security.SaslRpcClient: oadd.org.apache.hadoop.ipc.protobuf.RpcHeaderProtos$RpcSaslProto negotiateRequest>;
specialinvoke v.<oadd.org.apache.hadoop.security.SaslRpcClient: void sendSaslMessage(java.io.OutputStream,oadd.org.apache.hadoop.ipc.protobuf.RpcHeaderProtos$RpcSaslProto)>(v, v);
v = 0;
label:
v = virtualinvoke v.<oadd.org.apache.hadoop.ipc.Client$IpcStreams: java.nio.ByteBuffer readResponse()>();
v = staticinvoke <oadd.org.apache.hadoop.ipc.RpcWritable$Buffer: oadd.org.apache.hadoop.ipc.RpcWritable$Buffer wrap(java.nio.ByteBuffer)>(v);
v = staticinvoke <oadd.org.apache.hadoop.ipc.protobuf.RpcHeaderProtos$RpcResponseHeaderProto: oadd.org.apache.hadoop.ipc.protobuf.RpcHeaderProtos$RpcResponseHeaderProto getDefaultInstance()>();
v = virtualinvoke v.<oadd.org.apache.hadoop.ipc.RpcWritable$Buffer: java.lang.Object getValue(java.lang.Object)>(v);
v = <oadd.org.apache.hadoop.security.SaslRpcClient$1: int[] $SwitchMap$org$apache$hadoop$ipc$protobuf$RpcHeaderProtos$RpcResponseHeaderProto$RpcStatusProto>;
v = virtualinvoke v.<oadd.org.apache.hadoop.ipc.protobuf.RpcHeaderProtos$RpcResponseHeaderProto: oadd.org.apache.hadoop.ipc.protobuf.RpcHeaderProtos$RpcResponseHeaderProto$RpcStatusProto getStatus()>();
v = virtualinvoke v.<oadd.org.apache.hadoop.ipc.protobuf.RpcHeaderProtos$RpcResponseHeaderProto$RpcStatusProto: int ordinal()>();
v = v[v];
lookupswitch(v)
{
case 1: goto label;
case 2: goto label;
default: goto label;
};
label:
v = new oadd.org.apache.hadoop.ipc.RemoteException;
v = virtualinvoke v.<oadd.org.apache.hadoop.ipc.protobuf.RpcHeaderProtos$RpcResponseHeaderProto: java.lang.String getExceptionClassName()>();
v = virtualinvoke v.<oadd.org.apache.hadoop.ipc.protobuf.RpcHeaderProtos$RpcResponseHeaderProto: java.lang.String getErrorMsg()>();
specialinvoke v.<oadd.org.apache.hadoop.ipc.RemoteException: void <init>(java.lang.String,java.lang.String)>(v, v);
throw v;
label:
v = virtualinvoke v.<oadd.org.apache.hadoop.ipc.protobuf.RpcHeaderProtos$RpcResponseHeaderProto: int getCallId()>();
v = <oadd.org.apache.hadoop.ipc.Server$AuthProtocol: oadd.org.apache.hadoop.ipc.Server$AuthProtocol SASL>;
v = v.<oadd.org.apache.hadoop.ipc.Server$AuthProtocol: int callId>;
if v == v goto label;
v = new javax.security.sasl.SaslException;
specialinvoke v.<javax.security.sasl.SaslException: void <init>(java.lang.String)>("Non-SASL response during negotiation");
throw v;
label:
v = staticinvoke <oadd.org.apache.hadoop.ipc.protobuf.RpcHeaderProtos$RpcSaslProto: oadd.org.apache.hadoop.ipc.protobuf.RpcHeaderProtos$RpcSaslProto getDefaultInstance()>();
v = virtualinvoke v.<oadd.org.apache.hadoop.ipc.RpcWritable$Buffer: java.lang.Object getValue(java.lang.Object)>(v);
v = virtualinvoke v.<oadd.org.apache.hadoop.ipc.RpcWritable$Buffer: int remaining()>();
if v <= 0 goto label;
v = new javax.security.sasl.SaslException;
specialinvoke v.<javax.security.sasl.SaslException: void <init>(java.lang.String)>("Received malformed response length");
throw v;
label:
v = null;
v = <oadd.org.apache.hadoop.security.SaslRpcClient$1: int[] $SwitchMap$org$apache$hadoop$ipc$protobuf$RpcHeaderProtos$RpcSaslProto$SaslState>;
v = virtualinvoke v.<oadd.org.apache.hadoop.ipc.protobuf.RpcHeaderProtos$RpcSaslProto: oadd.org.apache.hadoop.ipc.protobuf.RpcHeaderProtos$RpcSaslProto$SaslState getState()>();
v = virtualinvoke v.<oadd.org.apache.hadoop.ipc.protobuf.RpcHeaderProtos$RpcSaslProto$SaslState: int ordinal()>();
v = v[v];
tableswitch(v)
{
case 1: goto label;
case 2: goto label;
case 3: goto label;
default: goto label;
};
label:
v = virtualinvoke v.<oadd.org.apache.hadoop.ipc.protobuf.RpcHeaderProtos$RpcSaslProto: java.util.List getAuthsList()>();
v = specialinvoke v.<oadd.org.apache.hadoop.security.SaslRpcClient: oadd.org.apache.hadoop.ipc.protobuf.RpcHeaderProtos$RpcSaslProto$SaslAuth selectSaslClient(java.util.List)>(v);
v = virtualinvoke v.<oadd.org.apache.hadoop.ipc.protobuf.RpcHeaderProtos$RpcSaslProto$SaslAuth: java.lang.String getMethod()>();
v = staticinvoke <oadd.org.apache.hadoop.security.SaslRpcServer$AuthMethod: oadd.org.apache.hadoop.security.SaslRpcServer$AuthMethod valueOf(java.lang.String)>(v);
v.<oadd.org.apache.hadoop.security.SaslRpcClient: oadd.org.apache.hadoop.security.SaslRpcServer$AuthMethod authMethod> = v;
v = null;
v = v.<oadd.org.apache.hadoop.security.SaslRpcClient: oadd.org.apache.hadoop.security.SaslRpcServer$AuthMethod authMethod>;
v = <oadd.org.apache.hadoop.security.SaslRpcServer$AuthMethod: oadd.org.apache.hadoop.security.SaslRpcServer$AuthMethod SIMPLE>;
if v != v goto label;
v = 1;
goto label;
label:
v = null;
v = virtualinvoke v.<oadd.org.apache.hadoop.ipc.protobuf.RpcHeaderProtos$RpcSaslProto$SaslAuth: boolean hasChallenge()>();
if v == 0 goto label;
v = virtualinvoke v.<oadd.org.apache.hadoop.ipc.protobuf.RpcHeaderProtos$RpcSaslProto$SaslAuth: oadd.com.google.protobuf.ByteString getChallenge()>();
v = virtualinvoke v.<oadd.com.google.protobuf.ByteString: byte[] toByteArray()>();
v = staticinvoke <oadd.org.apache.hadoop.ipc.protobuf.RpcHeaderProtos$RpcSaslProto$SaslAuth: oadd.org.apache.hadoop.ipc.protobuf.RpcHeaderProtos$RpcSaslProto$SaslAuth$Builder newBuilder(oadd.org.apache.hadoop.ipc.protobuf.RpcHeaderProtos$RpcSaslProto$SaslAuth)>(v);
v = virtualinvoke v.<oadd.org.apache.hadoop.ipc.protobuf.RpcHeaderProtos$RpcSaslProto$SaslAuth$Builder: oadd.org.apache.hadoop.ipc.protobuf.RpcHeaderProtos$RpcSaslProto$SaslAuth$Builder clearChallenge()>();
v = virtualinvoke v.<oadd.org.apache.hadoop.ipc.protobuf.RpcHeaderProtos$RpcSaslProto$SaslAuth$Builder: oadd.org.apache.hadoop.ipc.protobuf.RpcHeaderProtos$RpcSaslProto$SaslAuth build()>();
goto label;
label:
v = v.<oadd.org.apache.hadoop.security.SaslRpcClient: javax.security.sasl.SaslClient saslClient>;
v = interfaceinvoke v.<javax.security.sasl.SaslClient: boolean hasInitialResponse()>();
if v == 0 goto label;
v = newarray (byte)[0];
label:
if v == null goto label;
v = v.<oadd.org.apache.hadoop.security.SaslRpcClient: javax.security.sasl.SaslClient saslClient>;
v = interfaceinvoke v.<javax.security.sasl.SaslClient: byte[] evaluateChallenge(byte[])>(v);
goto label;
label:
v = newarray (byte)[0];
label:
v = v;
label:
v = <oadd.org.apache.hadoop.ipc.protobuf.RpcHeaderProtos$RpcSaslProto$SaslState: oadd.org.apache.hadoop.ipc.protobuf.RpcHeaderProtos$RpcSaslProto$SaslState INITIATE>;
v = specialinvoke v.<oadd.org.apache.hadoop.security.SaslRpcClient: oadd.org.apache.hadoop.ipc.protobuf.RpcHeaderProtos$RpcSaslProto$Builder createSaslReply(oadd.org.apache.hadoop.ipc.protobuf.RpcHeaderProtos$RpcSaslProto$SaslState,byte[])>(v, v);
virtualinvoke v.<oadd.org.apache.hadoop.ipc.protobuf.RpcHeaderProtos$RpcSaslProto$Builder: oadd.org.apache.hadoop.ipc.protobuf.RpcHeaderProtos$RpcSaslProto$Builder addAuths(oadd.org.apache.hadoop.ipc.protobuf.RpcHeaderProtos$RpcSaslProto$SaslAuth)>(v);
goto label;
label:
v = v.<oadd.org.apache.hadoop.security.SaslRpcClient: javax.security.sasl.SaslClient saslClient>;
if v != null goto label;
v = new javax.security.sasl.SaslException;
specialinvoke v.<javax.security.sasl.SaslException: void <init>(java.lang.String)>("Server sent unsolicited challenge");
throw v;
label:
v = specialinvoke v.<oadd.org.apache.hadoop.security.SaslRpcClient: byte[] saslEvaluateToken(oadd.org.apache.hadoop.ipc.protobuf.RpcHeaderProtos$RpcSaslProto,boolean)>(v, 0);
v = <oadd.org.apache.hadoop.ipc.protobuf.RpcHeaderProtos$RpcSaslProto$SaslState: oadd.org.apache.hadoop.ipc.protobuf.RpcHeaderProtos$RpcSaslProto$SaslState RESPONSE>;
v = specialinvoke v.<oadd.org.apache.hadoop.security.SaslRpcClient: oadd.org.apache.hadoop.ipc.protobuf.RpcHeaderProtos$RpcSaslProto$Builder createSaslReply(oadd.org.apache.hadoop.ipc.protobuf.RpcHeaderProtos$RpcSaslProto$SaslState,byte[])>(v, v);
goto label;
label:
v = v.<oadd.org.apache.hadoop.security.SaslRpcClient: javax.security.sasl.SaslClient saslClient>;
if v != null goto label;
v = <oadd.org.apache.hadoop.security.SaslRpcServer$AuthMethod: oadd.org.apache.hadoop.security.SaslRpcServer$AuthMethod SIMPLE>;
v.<oadd.org.apache.hadoop.security.SaslRpcClient: oadd.org.apache.hadoop.security.SaslRpcServer$AuthMethod authMethod> = v;
goto label;
label:
specialinvoke v.<oadd.org.apache.hadoop.security.SaslRpcClient: byte[] saslEvaluateToken(oadd.org.apache.hadoop.ipc.protobuf.RpcHeaderProtos$RpcSaslProto,boolean)>(v, 1);
label:
v = 1;
goto label;
label:
v = new javax.security.sasl.SaslException;
v = virtualinvoke v.<oadd.org.apache.hadoop.ipc.protobuf.RpcHeaderProtos$RpcSaslProto: oadd.org.apache.hadoop.ipc.protobuf.RpcHeaderProtos$RpcSaslProto$SaslState getState()>();
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (oadd.org.apache.hadoop.ipc.protobuf.RpcHeaderProtos$RpcSaslProto$SaslState)>(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[])>("RPC client doesn\'t support SASL \u0001");
specialinvoke v.<javax.security.sasl.SaslException: void <init>(java.lang.String)>(v);
throw v;
label:
if v == null goto label;
v = v.<oadd.org.apache.hadoop.ipc.Client$IpcStreams: java.io.DataOutputStream out>;
v = virtualinvoke v.<oadd.org.apache.hadoop.ipc.protobuf.RpcHeaderProtos$RpcSaslProto$Builder: oadd.org.apache.hadoop.ipc.protobuf.RpcHeaderProtos$RpcSaslProto build()>();
specialinvoke v.<oadd.org.apache.hadoop.security.SaslRpcClient: void sendSaslMessage(java.io.OutputStream,oadd.org.apache.hadoop.ipc.protobuf.RpcHeaderProtos$RpcSaslProto)>(v, v);
label:
if v == 0 goto label;
v = v.<oadd.org.apache.hadoop.security.SaslRpcClient: oadd.org.apache.hadoop.security.SaslRpcServer$AuthMethod authMethod>;
return v;
}
private void sendSaslMessage(java.io.OutputStream, oadd.org.apache.hadoop.ipc.protobuf.RpcHeaderProtos$RpcSaslProto) throws java.io.IOException
{
java.io.OutputStream v;
java.lang.Throwable v;
oadd.org.apache.hadoop.ipc.protobuf.RpcHeaderProtos$RpcSaslProto v;
org.slf4j.Logger v, v;
oadd.org.apache.hadoop.security.SaslRpcClient v;
oadd.org.apache.hadoop.ipc.ResponseBuffer v;
java.lang.String v;
oadd.org.apache.hadoop.ipc.protobuf.RpcHeaderProtos$RpcRequestHeaderProto v;
boolean v;
v := @this: oadd.org.apache.hadoop.security.SaslRpcClient;
v := @parameter: java.io.OutputStream;
v := @parameter: oadd.org.apache.hadoop.ipc.protobuf.RpcHeaderProtos$RpcSaslProto;
v = <oadd.org.apache.hadoop.security.SaslRpcClient: org.slf4j.Logger LOG>;
v = interfaceinvoke v.<org.slf4j.Logger: boolean isDebugEnabled()>();
if v == 0 goto label;
v = <oadd.org.apache.hadoop.security.SaslRpcClient: org.slf4j.Logger LOG>;
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (oadd.org.apache.hadoop.ipc.protobuf.RpcHeaderProtos$RpcSaslProto)>(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[])>("Sending sasl message \u0001");
interfaceinvoke v.<org.slf4j.Logger: void debug(java.lang.String)>(v);
label:
v = new oadd.org.apache.hadoop.ipc.ResponseBuffer;
specialinvoke v.<oadd.org.apache.hadoop.ipc.ResponseBuffer: void <init>()>();
v = <oadd.org.apache.hadoop.security.SaslRpcClient: oadd.org.apache.hadoop.ipc.protobuf.RpcHeaderProtos$RpcRequestHeaderProto saslHeader>;
virtualinvoke v.<oadd.org.apache.hadoop.ipc.protobuf.RpcHeaderProtos$RpcRequestHeaderProto: void writeDelimitedTo(java.io.OutputStream)>(v);
virtualinvoke v.<oadd.org.apache.hadoop.ipc.protobuf.RpcHeaderProtos$RpcSaslProto: void writeDelimitedTo(java.io.OutputStream)>(v);
entermonitor v;
label:
virtualinvoke v.<oadd.org.apache.hadoop.ipc.ResponseBuffer: void writeTo(java.io.OutputStream)>(v);
virtualinvoke v.<java.io.OutputStream: void flush()>();
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 byte[] saslEvaluateToken(oadd.org.apache.hadoop.ipc.protobuf.RpcHeaderProtos$RpcSaslProto, boolean) throws javax.security.sasl.SaslException
{
byte[] v, v;
oadd.org.apache.hadoop.ipc.protobuf.RpcHeaderProtos$RpcSaslProto v;
oadd.org.apache.hadoop.security.SaslRpcClient v;
oadd.com.google.protobuf.ByteString v;
javax.security.sasl.SaslException v, v, v;
javax.security.sasl.SaslClient v, v;
boolean v, v, v;
v := @this: oadd.org.apache.hadoop.security.SaslRpcClient;
v := @parameter: oadd.org.apache.hadoop.ipc.protobuf.RpcHeaderProtos$RpcSaslProto;
v := @parameter: boolean;
v = null;
v = virtualinvoke v.<oadd.org.apache.hadoop.ipc.protobuf.RpcHeaderProtos$RpcSaslProto: boolean hasToken()>();
if v == 0 goto label;
v = virtualinvoke v.<oadd.org.apache.hadoop.ipc.protobuf.RpcHeaderProtos$RpcSaslProto: oadd.com.google.protobuf.ByteString getToken()>();
v = virtualinvoke v.<oadd.com.google.protobuf.ByteString: byte[] toByteArray()>();
v = v.<oadd.org.apache.hadoop.security.SaslRpcClient: javax.security.sasl.SaslClient saslClient>;
v = interfaceinvoke v.<javax.security.sasl.SaslClient: byte[] evaluateChallenge(byte[])>(v);
goto label;
label:
if v != 0 goto label;
v = new javax.security.sasl.SaslException;
specialinvoke v.<javax.security.sasl.SaslException: void <init>(java.lang.String)>("Server challenge contains no token");
throw v;
label:
if v == 0 goto label;
v = v.<oadd.org.apache.hadoop.security.SaslRpcClient: javax.security.sasl.SaslClient saslClient>;
v = interfaceinvoke v.<javax.security.sasl.SaslClient: boolean isComplete()>();
if v != 0 goto label;
v = new javax.security.sasl.SaslException;
specialinvoke v.<javax.security.sasl.SaslException: void <init>(java.lang.String)>("Client is out of sync with server");
throw v;
label:
if v == null goto label;
v = new javax.security.sasl.SaslException;
specialinvoke v.<javax.security.sasl.SaslException: void <init>(java.lang.String)>("Client generated spurious response");
throw v;
label:
return v;
}
private oadd.org.apache.hadoop.ipc.protobuf.RpcHeaderProtos$RpcSaslProto$Builder createSaslReply(oadd.org.apache.hadoop.ipc.protobuf.RpcHeaderProtos$RpcSaslProto$SaslState, byte[])
{
byte[] v;
oadd.org.apache.hadoop.ipc.protobuf.RpcHeaderProtos$RpcSaslProto$Builder v;
oadd.org.apache.hadoop.security.SaslRpcClient v;
oadd.com.google.protobuf.ByteString v;
oadd.org.apache.hadoop.ipc.protobuf.RpcHeaderProtos$RpcSaslProto$SaslState v;
v := @this: oadd.org.apache.hadoop.security.SaslRpcClient;
v := @parameter: oadd.org.apache.hadoop.ipc.protobuf.RpcHeaderProtos$RpcSaslProto$SaslState;
v := @parameter: byte[];
v = staticinvoke <oadd.org.apache.hadoop.ipc.protobuf.RpcHeaderProtos$RpcSaslProto: oadd.org.apache.hadoop.ipc.protobuf.RpcHeaderProtos$RpcSaslProto$Builder newBuilder()>();
virtualinvoke v.<oadd.org.apache.hadoop.ipc.protobuf.RpcHeaderProtos$RpcSaslProto$Builder: oadd.org.apache.hadoop.ipc.protobuf.RpcHeaderProtos$RpcSaslProto$Builder setState(oadd.org.apache.hadoop.ipc.protobuf.RpcHeaderProtos$RpcSaslProto$SaslState)>(v);
if v == null goto label;
v = staticinvoke <oadd.com.google.protobuf.ByteString: oadd.com.google.protobuf.ByteString copyFrom(byte[])>(v);
virtualinvoke v.<oadd.org.apache.hadoop.ipc.protobuf.RpcHeaderProtos$RpcSaslProto$Builder: oadd.org.apache.hadoop.ipc.protobuf.RpcHeaderProtos$RpcSaslProto$Builder setToken(oadd.com.google.protobuf.ByteString)>(v);
label:
return v;
}
private boolean useWrap()
{
oadd.org.apache.hadoop.security.SaslRpcClient v;
javax.security.sasl.SaslClient v;
java.util.Locale v;
java.lang.Object v;
java.lang.String v, v;
boolean v, v;
v := @this: oadd.org.apache.hadoop.security.SaslRpcClient;
v = v.<oadd.org.apache.hadoop.security.SaslRpcClient: javax.security.sasl.SaslClient saslClient>;
v = interfaceinvoke v.<javax.security.sasl.SaslClient: java.lang.Object getNegotiatedProperty(java.lang.String)>("javax.security.sasl.qop");
if v == null goto label;
v = "auth";
v = <java.util.Locale: java.util.Locale ENGLISH>;
v = virtualinvoke v.<java.lang.String: java.lang.String toLowerCase(java.util.Locale)>(v);
v = virtualinvoke v.<java.lang.String: boolean equals(java.lang.Object)>(v);
if v != 0 goto label;
v = 1;
goto label;
label:
v = 0;
label:
return v;
}
public java.io.InputStream getInputStream(java.io.InputStream) throws java.io.IOException
{
oadd.org.apache.hadoop.security.SaslRpcClient v;
oadd.org.apache.hadoop.security.SaslRpcClient$WrappedInputStream v;
boolean v;
java.io.InputStream v;
v := @this: oadd.org.apache.hadoop.security.SaslRpcClient;
v := @parameter: java.io.InputStream;
v = specialinvoke v.<oadd.org.apache.hadoop.security.SaslRpcClient: boolean useWrap()>();
if v == 0 goto label;
v = new oadd.org.apache.hadoop.security.SaslRpcClient$WrappedInputStream;
specialinvoke v.<oadd.org.apache.hadoop.security.SaslRpcClient$WrappedInputStream: void <init>(oadd.org.apache.hadoop.security.SaslRpcClient,java.io.InputStream)>(v, v);
v = v;
label:
return v;
}
public java.io.OutputStream getOutputStream(java.io.OutputStream) throws java.io.IOException
{
java.io.OutputStream v;
oadd.org.apache.hadoop.security.SaslRpcClient$WrappedOutputStream v;
oadd.org.apache.hadoop.security.SaslRpcClient v;
java.io.BufferedOutputStream v;
javax.security.sasl.SaslClient v;
int v;
java.lang.Object v;
boolean v;
v := @this: oadd.org.apache.hadoop.security.SaslRpcClient;
v := @parameter: java.io.OutputStream;
v = specialinvoke v.<oadd.org.apache.hadoop.security.SaslRpcClient: boolean useWrap()>();
if v == 0 goto label;
v = v.<oadd.org.apache.hadoop.security.SaslRpcClient: javax.security.sasl.SaslClient saslClient>;
v = interfaceinvoke v.<javax.security.sasl.SaslClient: java.lang.Object getNegotiatedProperty(java.lang.String)>("javax.security.sasl.rawsendsize");
v = new java.io.BufferedOutputStream;
v = new oadd.org.apache.hadoop.security.SaslRpcClient$WrappedOutputStream;
specialinvoke v.<oadd.org.apache.hadoop.security.SaslRpcClient$WrappedOutputStream: void <init>(oadd.org.apache.hadoop.security.SaslRpcClient,java.io.OutputStream)>(v, v);
v = staticinvoke <java.lang.Integer: int parseInt(java.lang.String)>(v);
specialinvoke v.<java.io.BufferedOutputStream: void <init>(java.io.OutputStream,int)>(v, v);
v = v;
label:
return v;
}
public void dispose() throws javax.security.sasl.SaslException
{
oadd.org.apache.hadoop.security.SaslRpcClient v;
javax.security.sasl.SaslClient v, v;
v := @this: oadd.org.apache.hadoop.security.SaslRpcClient;
v = v.<oadd.org.apache.hadoop.security.SaslRpcClient: javax.security.sasl.SaslClient saslClient>;
if v == null goto label;
v = v.<oadd.org.apache.hadoop.security.SaslRpcClient: javax.security.sasl.SaslClient saslClient>;
interfaceinvoke v.<javax.security.sasl.SaslClient: void dispose()>();
v.<oadd.org.apache.hadoop.security.SaslRpcClient: javax.security.sasl.SaslClient saslClient> = null;
label:
return;
}
static void <clinit>()
{
oadd.org.apache.hadoop.ipc.Server$AuthProtocol v;
byte[] v;
oadd.org.apache.hadoop.ipc.protobuf.RpcHeaderProtos$RpcSaslProto v;
org.slf4j.Logger v;
oadd.org.apache.hadoop.ipc.protobuf.RpcHeaderProtos$RpcRequestHeaderProto$OperationProto v;
oadd.org.apache.hadoop.ipc.RPC$RpcKind v;
oadd.org.apache.hadoop.ipc.protobuf.RpcHeaderProtos$RpcSaslProto$Builder v, v;
int v, v;
oadd.org.apache.hadoop.ipc.protobuf.RpcHeaderProtos$RpcRequestHeaderProto v;
oadd.org.apache.hadoop.ipc.protobuf.RpcHeaderProtos$RpcSaslProto$SaslState v;
v = staticinvoke <org.slf4j.LoggerFactory: org.slf4j.Logger getLogger(java.lang.Class)>(class "Loadd/org/apache/hadoop/security/SaslRpcClient;");
<oadd.org.apache.hadoop.security.SaslRpcClient: org.slf4j.Logger LOG> = v;
v = <oadd.org.apache.hadoop.ipc.RPC$RpcKind: oadd.org.apache.hadoop.ipc.RPC$RpcKind RPC_PROTOCOL_BUFFER>;
v = <oadd.org.apache.hadoop.ipc.protobuf.RpcHeaderProtos$RpcRequestHeaderProto$OperationProto: oadd.org.apache.hadoop.ipc.protobuf.RpcHeaderProtos$RpcRequestHeaderProto$OperationProto RPC_FINAL_PACKET>;
v = <oadd.org.apache.hadoop.ipc.Server$AuthProtocol: oadd.org.apache.hadoop.ipc.Server$AuthProtocol SASL>;
v = v.<oadd.org.apache.hadoop.ipc.Server$AuthProtocol: int callId>;
v = <oadd.org.apache.hadoop.ipc.RpcConstants: byte[] DUMMY_CLIENT_ID>;
v = (int) -1;
v = staticinvoke <oadd.org.apache.hadoop.util.ProtoUtil: oadd.org.apache.hadoop.ipc.protobuf.RpcHeaderProtos$RpcRequestHeaderProto makeRpcRequestHeader(oadd.org.apache.hadoop.ipc.RPC$RpcKind,oadd.org.apache.hadoop.ipc.protobuf.RpcHeaderProtos$RpcRequestHeaderProto$OperationProto,int,int,byte[])>(v, v, v, v, v);
<oadd.org.apache.hadoop.security.SaslRpcClient: oadd.org.apache.hadoop.ipc.protobuf.RpcHeaderProtos$RpcRequestHeaderProto saslHeader> = v;
v = staticinvoke <oadd.org.apache.hadoop.ipc.protobuf.RpcHeaderProtos$RpcSaslProto: oadd.org.apache.hadoop.ipc.protobuf.RpcHeaderProtos$RpcSaslProto$Builder newBuilder()>();
v = <oadd.org.apache.hadoop.ipc.protobuf.RpcHeaderProtos$RpcSaslProto$SaslState: oadd.org.apache.hadoop.ipc.protobuf.RpcHeaderProtos$RpcSaslProto$SaslState NEGOTIATE>;
v = virtualinvoke v.<oadd.org.apache.hadoop.ipc.protobuf.RpcHeaderProtos$RpcSaslProto$Builder: oadd.org.apache.hadoop.ipc.protobuf.RpcHeaderProtos$RpcSaslProto$Builder setState(oadd.org.apache.hadoop.ipc.protobuf.RpcHeaderProtos$RpcSaslProto$SaslState)>(v);
v = virtualinvoke v.<oadd.org.apache.hadoop.ipc.protobuf.RpcHeaderProtos$RpcSaslProto$Builder: oadd.org.apache.hadoop.ipc.protobuf.RpcHeaderProtos$RpcSaslProto build()>();
<oadd.org.apache.hadoop.security.SaslRpcClient: oadd.org.apache.hadoop.ipc.protobuf.RpcHeaderProtos$RpcSaslProto negotiateRequest> = v;
return;
}
}