public class org.apache.kafkaesqueesqueesque.common.security.authenticator.SaslClientAuthenticator extends java.lang.Object implements org.apache.kafkaesqueesqueesque.common.network.Authenticator
{
private static final short DISABLE_KAFKA_SASL_AUTHENTICATE_HEADER;
private static final java.util.Random RNG;
private final javax.security.auth.Subject subject;
private final java.lang.String servicePrincipal;
private final java.lang.String host;
private final java.lang.String node;
private final java.lang.String mechanism;
private final org.apache.kafkaesqueesqueesque.common.network.TransportLayer transportLayer;
private final javax.security.sasl.SaslClient saslClient;
private final java.util.Map configs;
private final java.lang.String clientPrincipalName;
private final org.apache.kafkaesqueesqueesque.common.security.auth.AuthenticateCallbackHandler callbackHandler;
private final org.apache.kafkaesqueesqueesque.common.utils.Time time;
private final org.slf4j.Logger log;
private final org.apache.kafkaesqueesqueesque.common.security.authenticator.SaslClientAuthenticator$ReauthInfo reauthInfo;
private org.apache.kafkaesqueesqueesque.common.network.NetworkReceive netInBuffer;
private org.apache.kafkaesqueesqueesque.common.network.Send netOutBuffer;
private org.apache.kafkaesqueesqueesque.common.security.authenticator.SaslClientAuthenticator$SaslState saslState;
private org.apache.kafkaesqueesqueesque.common.security.authenticator.SaslClientAuthenticator$SaslState pendingSaslState;
private int correlationId;
private org.apache.kafkaesqueesqueesque.common.requests.RequestHeader currentRequestHeader;
private short saslAuthenticateVersion;
private short saslHandshakeVersion;
public void <init>(java.util.Map, org.apache.kafkaesqueesqueesque.common.security.auth.AuthenticateCallbackHandler, java.lang.String, javax.security.auth.Subject, java.lang.String, java.lang.String, java.lang.String, boolean, org.apache.kafkaesqueesqueesque.common.network.TransportLayer, org.apache.kafkaesqueesqueesque.common.utils.Time, org.apache.kafkaesqueesqueesque.common.utils.LogContext)
{
org.apache.kafkaesqueesqueesque.common.errors.SaslAuthenticationException v;
org.apache.kafkaesqueesqueesque.common.security.authenticator.SaslClientAuthenticator v;
org.apache.kafkaesqueesqueesque.common.network.TransportLayer v;
org.apache.kafkaesqueesqueesque.common.security.auth.AuthenticateCallbackHandler v;
javax.security.sasl.SaslClient v;
short v;
java.util.Map v;
java.lang.String v, v, v, v, v;
boolean v, v;
org.slf4j.Logger v;
org.apache.kafkaesqueesqueesque.common.utils.LogContext v;
org.apache.kafkaesqueesqueesque.common.security.authenticator.SaslClientAuthenticator$SaslState v;
java.lang.Exception v;
javax.security.auth.Subject v;
org.apache.kafkaesqueesqueesque.common.security.authenticator.SaslClientAuthenticator$ReauthInfo v;
java.lang.Class v;
org.apache.kafkaesqueesqueesque.common.utils.Time v;
v := @this: org.apache.kafkaesqueesqueesque.common.security.authenticator.SaslClientAuthenticator;
v := @parameter: java.util.Map;
v := @parameter: org.apache.kafkaesqueesqueesque.common.security.auth.AuthenticateCallbackHandler;
v := @parameter: java.lang.String;
v := @parameter: javax.security.auth.Subject;
v := @parameter: java.lang.String;
v := @parameter: java.lang.String;
v := @parameter: java.lang.String;
v := @parameter: boolean;
v := @parameter: org.apache.kafkaesqueesqueesque.common.network.TransportLayer;
v := @parameter: org.apache.kafkaesqueesqueesque.common.utils.Time;
v := @parameter: org.apache.kafkaesqueesqueesque.common.utils.LogContext;
specialinvoke v.<java.lang.Object: void <init>()>();
v.<org.apache.kafkaesqueesqueesque.common.security.authenticator.SaslClientAuthenticator: java.lang.String node> = v;
v.<org.apache.kafkaesqueesqueesque.common.security.authenticator.SaslClientAuthenticator: javax.security.auth.Subject subject> = v;
v.<org.apache.kafkaesqueesqueesque.common.security.authenticator.SaslClientAuthenticator: org.apache.kafkaesqueesqueesque.common.security.auth.AuthenticateCallbackHandler callbackHandler> = v;
v.<org.apache.kafkaesqueesqueesque.common.security.authenticator.SaslClientAuthenticator: java.lang.String host> = v;
v.<org.apache.kafkaesqueesqueesque.common.security.authenticator.SaslClientAuthenticator: java.lang.String servicePrincipal> = v;
v.<org.apache.kafkaesqueesqueesque.common.security.authenticator.SaslClientAuthenticator: java.lang.String mechanism> = v;
v.<org.apache.kafkaesqueesqueesque.common.security.authenticator.SaslClientAuthenticator: int correlationId> = 0;
v.<org.apache.kafkaesqueesqueesque.common.security.authenticator.SaslClientAuthenticator: org.apache.kafkaesqueesqueesque.common.network.TransportLayer transportLayer> = v;
v.<org.apache.kafkaesqueesqueesque.common.security.authenticator.SaslClientAuthenticator: java.util.Map configs> = v;
v = (short) -1;
v.<org.apache.kafkaesqueesqueesque.common.security.authenticator.SaslClientAuthenticator: short saslAuthenticateVersion> = v;
v.<org.apache.kafkaesqueesqueesque.common.security.authenticator.SaslClientAuthenticator: org.apache.kafkaesqueesqueesque.common.utils.Time time> = v;
v = virtualinvoke v.<java.lang.Object: java.lang.Class getClass()>();
v = virtualinvoke v.<org.apache.kafkaesqueesqueesque.common.utils.LogContext: org.slf4j.Logger logger(java.lang.Class)>(v);
v.<org.apache.kafkaesqueesqueesque.common.security.authenticator.SaslClientAuthenticator: org.slf4j.Logger log> = v;
v = new org.apache.kafkaesqueesqueesque.common.security.authenticator.SaslClientAuthenticator$ReauthInfo;
specialinvoke v.<org.apache.kafkaesqueesqueesque.common.security.authenticator.SaslClientAuthenticator$ReauthInfo: void <init>(org.apache.kafkaesqueesqueesque.common.security.authenticator.SaslClientAuthenticator)>(v);
v.<org.apache.kafkaesqueesqueesque.common.security.authenticator.SaslClientAuthenticator: org.apache.kafkaesqueesqueesque.common.security.authenticator.SaslClientAuthenticator$ReauthInfo reauthInfo> = v;
label:
if v == 0 goto label;
v = <org.apache.kafkaesqueesqueesque.common.security.authenticator.SaslClientAuthenticator$SaslState: org.apache.kafkaesqueesqueesque.common.security.authenticator.SaslClientAuthenticator$SaslState SEND_APIVERSIONS_REQUEST>;
goto label;
label:
v = <org.apache.kafkaesqueesqueesque.common.security.authenticator.SaslClientAuthenticator$SaslState: org.apache.kafkaesqueesqueesque.common.security.authenticator.SaslClientAuthenticator$SaslState INITIAL>;
label:
specialinvoke v.<org.apache.kafkaesqueesqueesque.common.security.authenticator.SaslClientAuthenticator: void setSaslState(org.apache.kafkaesqueesqueesque.common.security.authenticator.SaslClientAuthenticator$SaslState)>(v);
v = virtualinvoke v.<java.lang.String: boolean equals(java.lang.Object)>("GSSAPI");
if v == 0 goto label;
v = staticinvoke <org.apache.kafkaesqueesqueesque.common.security.authenticator.SaslClientAuthenticator: java.lang.String firstPrincipal(javax.security.auth.Subject)>(v);
v.<org.apache.kafkaesqueesqueesque.common.security.authenticator.SaslClientAuthenticator: java.lang.String clientPrincipalName> = v;
goto label;
label:
v.<org.apache.kafkaesqueesqueesque.common.security.authenticator.SaslClientAuthenticator: java.lang.String clientPrincipalName> = null;
label:
v = specialinvoke v.<org.apache.kafkaesqueesqueesque.common.security.authenticator.SaslClientAuthenticator: javax.security.sasl.SaslClient createSaslClient()>();
v.<org.apache.kafkaesqueesqueesque.common.security.authenticator.SaslClientAuthenticator: javax.security.sasl.SaslClient saslClient> = v;
label:
goto label;
label:
v := @caughtexception;
v = new org.apache.kafkaesqueesqueesque.common.errors.SaslAuthenticationException;
specialinvoke v.<org.apache.kafkaesqueesqueesque.common.errors.SaslAuthenticationException: void <init>(java.lang.String,java.lang.Throwable)>("Failed to configure SaslClientAuthenticator", v);
throw v;
label:
return;
catch java.lang.Exception from label to label with label;
}
private javax.security.sasl.SaslClient createSaslClient()
{
java.lang.Throwable v;
java.security.PrivilegedActionException v;
org.apache.kafkaesqueesqueesque.common.errors.SaslAuthenticationException v;
org.apache.kafkaesqueesqueesque.common.security.authenticator.SaslClientAuthenticator v;
java.security.PrivilegedExceptionAction v;
javax.security.auth.Subject v;
java.lang.Object v;
java.lang.String v, v;
v := @this: org.apache.kafkaesqueesqueesque.common.security.authenticator.SaslClientAuthenticator;
label:
v = v.<org.apache.kafkaesqueesqueesque.common.security.authenticator.SaslClientAuthenticator: javax.security.auth.Subject subject>;
v = staticinvoke <org.apache.kafkaesqueesqueesque.common.security.authenticator.SaslClientAuthenticator$lambda_createSaslClient_0__260: java.security.PrivilegedExceptionAction bootstrap$(org.apache.kafkaesqueesqueesque.common.security.authenticator.SaslClientAuthenticator)>(v);
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 = new org.apache.kafkaesqueesqueesque.common.errors.SaslAuthenticationException;
v = v.<org.apache.kafkaesqueesqueesque.common.security.authenticator.SaslClientAuthenticator: java.lang.String mechanism>;
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[])>("Failed to create SaslClient with mechanism \u0001");
v = virtualinvoke v.<java.security.PrivilegedActionException: java.lang.Throwable getCause()>();
specialinvoke v.<org.apache.kafkaesqueesqueesque.common.errors.SaslAuthenticationException: void <init>(java.lang.String,java.lang.Throwable)>(v, v);
throw v;
catch java.security.PrivilegedActionException from label to label with label;
}
public void authenticate() throws java.io.IOException
{
byte[] v, v;
java.lang.IllegalStateException v;
javax.security.sasl.SaslClient v;
int[] v;
org.apache.kafkaesqueesqueesque.common.requests.AbstractResponse v, v, v;
boolean v, v, v, v;
org.apache.kafkaesqueesqueesque.common.security.authenticator.SaslClientAuthenticator$SaslState v, v, v, v, v, v, v, v, v, v, v, v, v;
org.apache.kafkaesqueesqueesque.common.security.authenticator.SaslClientAuthenticator v;
org.apache.kafkaesqueesqueesque.common.network.Send v, v;
org.apache.kafkaesqueesqueesque.common.protocol.ApiKeys v;
org.apache.kafkaesqueesqueesque.common.requests.ApiVersionsRequest$Builder v;
short v, v, v, v;
int v, v, v;
java.lang.String v;
org.apache.kafkaesqueesqueesque.common.requests.ApiVersionsRequest v;
org.apache.kafkaesqueesqueesque.common.requests.RequestHeader v;
org.apache.kafkaesqueesqueesque.common.security.authenticator.SaslClientAuthenticator$ReauthInfo v, v;
org.apache.kafkaesqueesqueesque.common.requests.ApiVersionsResponse v;
v := @this: org.apache.kafkaesqueesqueesque.common.security.authenticator.SaslClientAuthenticator;
v = v.<org.apache.kafkaesqueesqueesque.common.security.authenticator.SaslClientAuthenticator: org.apache.kafkaesqueesqueesque.common.network.Send netOutBuffer>;
if v == null goto label;
v = specialinvoke v.<org.apache.kafkaesqueesqueesque.common.security.authenticator.SaslClientAuthenticator: boolean flushNetOutBufferAndUpdateInterestOps()>();
if v != 0 goto label;
return;
label:
v = <org.apache.kafkaesqueesqueesque.common.security.authenticator.SaslClientAuthenticator$1: int[] $SwitchMap$org$apache$kafka$common$security$authenticator$SaslClientAuthenticator$SaslState>;
v = v.<org.apache.kafkaesqueesqueesque.common.security.authenticator.SaslClientAuthenticator: org.apache.kafkaesqueesqueesque.common.security.authenticator.SaslClientAuthenticator$SaslState saslState>;
v = virtualinvoke v.<org.apache.kafkaesqueesqueesque.common.security.authenticator.SaslClientAuthenticator$SaslState: int ordinal()>();
v = v[v];
tableswitch(v)
{
case 1: goto label;
case 2: goto label;
case 3: goto label;
case 4: goto label;
case 5: goto label;
case 6: goto label;
case 7: goto label;
case 8: goto label;
case 9: goto label;
case 10: goto label;
case 11: goto label;
case 12: goto label;
case 13: goto label;
default: goto label;
};
label:
v = new org.apache.kafkaesqueesqueesque.common.requests.ApiVersionsRequest$Builder;
specialinvoke v.<org.apache.kafkaesqueesqueesque.common.requests.ApiVersionsRequest$Builder: void <init>()>();
v = virtualinvoke v.<org.apache.kafkaesqueesqueesque.common.requests.ApiVersionsRequest$Builder: org.apache.kafkaesqueesqueesque.common.requests.ApiVersionsRequest build(short)>(0);
v = v.<org.apache.kafkaesqueesqueesque.common.security.authenticator.SaslClientAuthenticator: java.lang.String node>;
v = <org.apache.kafkaesqueesqueesque.common.protocol.ApiKeys: org.apache.kafkaesqueesqueesque.common.protocol.ApiKeys API_VERSIONS>;
v = virtualinvoke v.<org.apache.kafkaesqueesqueesque.common.requests.ApiVersionsRequest: short version()>();
v = specialinvoke v.<org.apache.kafkaesqueesqueesque.common.security.authenticator.SaslClientAuthenticator: org.apache.kafkaesqueesqueesque.common.requests.RequestHeader nextRequestHeader(org.apache.kafkaesqueesqueesque.common.protocol.ApiKeys,short)>(v, v);
v = virtualinvoke v.<org.apache.kafkaesqueesqueesque.common.requests.ApiVersionsRequest: org.apache.kafkaesqueesqueesque.common.network.Send toSend(java.lang.String,org.apache.kafkaesqueesqueesque.common.requests.RequestHeader)>(v, v);
specialinvoke v.<org.apache.kafkaesqueesqueesque.common.security.authenticator.SaslClientAuthenticator: void send(org.apache.kafkaesqueesqueesque.common.network.Send)>(v);
v = <org.apache.kafkaesqueesqueesque.common.security.authenticator.SaslClientAuthenticator$SaslState: org.apache.kafkaesqueesqueesque.common.security.authenticator.SaslClientAuthenticator$SaslState RECEIVE_APIVERSIONS_RESPONSE>;
specialinvoke v.<org.apache.kafkaesqueesqueesque.common.security.authenticator.SaslClientAuthenticator: void setSaslState(org.apache.kafkaesqueesqueesque.common.security.authenticator.SaslClientAuthenticator$SaslState)>(v);
goto label;
label:
v = specialinvoke v.<org.apache.kafkaesqueesqueesque.common.security.authenticator.SaslClientAuthenticator: org.apache.kafkaesqueesqueesque.common.requests.AbstractResponse receiveKafkaResponse()>();
if v == null goto label;
virtualinvoke v.<org.apache.kafkaesqueesqueesque.common.security.authenticator.SaslClientAuthenticator: void setSaslAuthenticateAndHandshakeVersions(org.apache.kafkaesqueesqueesque.common.requests.ApiVersionsResponse)>(v);
v = v.<org.apache.kafkaesqueesqueesque.common.security.authenticator.SaslClientAuthenticator: org.apache.kafkaesqueesqueesque.common.security.authenticator.SaslClientAuthenticator$ReauthInfo reauthInfo>;
v.<org.apache.kafkaesqueesqueesque.common.security.authenticator.SaslClientAuthenticator$ReauthInfo: org.apache.kafkaesqueesqueesque.common.requests.ApiVersionsResponse apiVersionsResponseReceivedFromBroker> = v;
v = <org.apache.kafkaesqueesqueesque.common.security.authenticator.SaslClientAuthenticator$SaslState: org.apache.kafkaesqueesqueesque.common.security.authenticator.SaslClientAuthenticator$SaslState SEND_HANDSHAKE_REQUEST>;
specialinvoke v.<org.apache.kafkaesqueesqueesque.common.security.authenticator.SaslClientAuthenticator: void setSaslState(org.apache.kafkaesqueesqueesque.common.security.authenticator.SaslClientAuthenticator$SaslState)>(v);
label:
v = v.<org.apache.kafkaesqueesqueesque.common.security.authenticator.SaslClientAuthenticator: short saslHandshakeVersion>;
specialinvoke v.<org.apache.kafkaesqueesqueesque.common.security.authenticator.SaslClientAuthenticator: void sendHandshakeRequest(short)>(v);
v = <org.apache.kafkaesqueesqueesque.common.security.authenticator.SaslClientAuthenticator$SaslState: org.apache.kafkaesqueesqueesque.common.security.authenticator.SaslClientAuthenticator$SaslState RECEIVE_HANDSHAKE_RESPONSE>;
specialinvoke v.<org.apache.kafkaesqueesqueesque.common.security.authenticator.SaslClientAuthenticator: void setSaslState(org.apache.kafkaesqueesqueesque.common.security.authenticator.SaslClientAuthenticator$SaslState)>(v);
goto label;
label:
v = specialinvoke v.<org.apache.kafkaesqueesqueesque.common.security.authenticator.SaslClientAuthenticator: org.apache.kafkaesqueesqueesque.common.requests.AbstractResponse receiveKafkaResponse()>();
if v == null goto label;
specialinvoke v.<org.apache.kafkaesqueesqueesque.common.security.authenticator.SaslClientAuthenticator: void handleSaslHandshakeResponse(org.apache.kafkaesqueesqueesque.common.requests.SaslHandshakeResponse)>(v);
v = <org.apache.kafkaesqueesqueesque.common.security.authenticator.SaslClientAuthenticator$SaslState: org.apache.kafkaesqueesqueesque.common.security.authenticator.SaslClientAuthenticator$SaslState INITIAL>;
specialinvoke v.<org.apache.kafkaesqueesqueesque.common.security.authenticator.SaslClientAuthenticator: void setSaslState(org.apache.kafkaesqueesqueesque.common.security.authenticator.SaslClientAuthenticator$SaslState)>(v);
label:
specialinvoke v.<org.apache.kafkaesqueesqueesque.common.security.authenticator.SaslClientAuthenticator: void sendInitialToken()>();
v = <org.apache.kafkaesqueesqueesque.common.security.authenticator.SaslClientAuthenticator$SaslState: org.apache.kafkaesqueesqueesque.common.security.authenticator.SaslClientAuthenticator$SaslState INTERMEDIATE>;
specialinvoke v.<org.apache.kafkaesqueesqueesque.common.security.authenticator.SaslClientAuthenticator: void setSaslState(org.apache.kafkaesqueesqueesque.common.security.authenticator.SaslClientAuthenticator$SaslState)>(v);
goto label;
label:
v = v.<org.apache.kafkaesqueesqueesque.common.security.authenticator.SaslClientAuthenticator: org.apache.kafkaesqueesqueesque.common.security.authenticator.SaslClientAuthenticator$ReauthInfo reauthInfo>;
v = v.<org.apache.kafkaesqueesqueesque.common.security.authenticator.SaslClientAuthenticator$ReauthInfo: org.apache.kafkaesqueesqueesque.common.requests.ApiVersionsResponse apiVersionsResponseFromOriginalAuthentication>;
virtualinvoke v.<org.apache.kafkaesqueesqueesque.common.security.authenticator.SaslClientAuthenticator: void setSaslAuthenticateAndHandshakeVersions(org.apache.kafkaesqueesqueesque.common.requests.ApiVersionsResponse)>(v);
v = <org.apache.kafkaesqueesqueesque.common.security.authenticator.SaslClientAuthenticator$SaslState: org.apache.kafkaesqueesqueesque.common.security.authenticator.SaslClientAuthenticator$SaslState REAUTH_SEND_HANDSHAKE_REQUEST>;
specialinvoke v.<org.apache.kafkaesqueesqueesque.common.security.authenticator.SaslClientAuthenticator: void setSaslState(org.apache.kafkaesqueesqueesque.common.security.authenticator.SaslClientAuthenticator$SaslState)>(v);
label:
v = v.<org.apache.kafkaesqueesqueesque.common.security.authenticator.SaslClientAuthenticator: short saslHandshakeVersion>;
specialinvoke v.<org.apache.kafkaesqueesqueesque.common.security.authenticator.SaslClientAuthenticator: void sendHandshakeRequest(short)>(v);
v = <org.apache.kafkaesqueesqueesque.common.security.authenticator.SaslClientAuthenticator$SaslState: org.apache.kafkaesqueesqueesque.common.security.authenticator.SaslClientAuthenticator$SaslState REAUTH_RECEIVE_HANDSHAKE_OR_OTHER_RESPONSE>;
specialinvoke v.<org.apache.kafkaesqueesqueesque.common.security.authenticator.SaslClientAuthenticator: void setSaslState(org.apache.kafkaesqueesqueesque.common.security.authenticator.SaslClientAuthenticator$SaslState)>(v);
goto label;
label:
v = specialinvoke v.<org.apache.kafkaesqueesqueesque.common.security.authenticator.SaslClientAuthenticator: org.apache.kafkaesqueesqueesque.common.requests.AbstractResponse receiveKafkaResponse()>();
if v == null goto label;
specialinvoke v.<org.apache.kafkaesqueesqueesque.common.security.authenticator.SaslClientAuthenticator: void handleSaslHandshakeResponse(org.apache.kafkaesqueesqueesque.common.requests.SaslHandshakeResponse)>(v);
v = <org.apache.kafkaesqueesqueesque.common.security.authenticator.SaslClientAuthenticator$SaslState: org.apache.kafkaesqueesqueesque.common.security.authenticator.SaslClientAuthenticator$SaslState REAUTH_INITIAL>;
specialinvoke v.<org.apache.kafkaesqueesqueesque.common.security.authenticator.SaslClientAuthenticator: void setSaslState(org.apache.kafkaesqueesqueesque.common.security.authenticator.SaslClientAuthenticator$SaslState)>(v);
label:
specialinvoke v.<org.apache.kafkaesqueesqueesque.common.security.authenticator.SaslClientAuthenticator: void sendInitialToken()>();
v = <org.apache.kafkaesqueesqueesque.common.security.authenticator.SaslClientAuthenticator$SaslState: org.apache.kafkaesqueesqueesque.common.security.authenticator.SaslClientAuthenticator$SaslState INTERMEDIATE>;
specialinvoke v.<org.apache.kafkaesqueesqueesque.common.security.authenticator.SaslClientAuthenticator: void setSaslState(org.apache.kafkaesqueesqueesque.common.security.authenticator.SaslClientAuthenticator$SaslState)>(v);
goto label;
label:
v = specialinvoke v.<org.apache.kafkaesqueesqueesque.common.security.authenticator.SaslClientAuthenticator: byte[] receiveToken()>();
if v == null goto label;
v = specialinvoke v.<org.apache.kafkaesqueesqueesque.common.security.authenticator.SaslClientAuthenticator: boolean sendSaslClientToken(byte[],boolean)>(v, 0);
if v != 0 goto label;
v = 1;
goto label;
label:
v = 0;
label:
v = v.<org.apache.kafkaesqueesqueesque.common.security.authenticator.SaslClientAuthenticator: javax.security.sasl.SaslClient saslClient>;
v = interfaceinvoke v.<javax.security.sasl.SaslClient: boolean isComplete()>();
if v == 0 goto label;
v = v.<org.apache.kafkaesqueesqueesque.common.security.authenticator.SaslClientAuthenticator: short saslAuthenticateVersion>;
v = (int) -1;
if v == v goto label;
if v == 0 goto label;
label:
v = <org.apache.kafkaesqueesqueesque.common.security.authenticator.SaslClientAuthenticator$SaslState: org.apache.kafkaesqueesqueesque.common.security.authenticator.SaslClientAuthenticator$SaslState COMPLETE>;
specialinvoke v.<org.apache.kafkaesqueesqueesque.common.security.authenticator.SaslClientAuthenticator: void setSaslState(org.apache.kafkaesqueesqueesque.common.security.authenticator.SaslClientAuthenticator$SaslState)>(v);
goto label;
label:
v = <org.apache.kafkaesqueesqueesque.common.security.authenticator.SaslClientAuthenticator$SaslState: org.apache.kafkaesqueesqueesque.common.security.authenticator.SaslClientAuthenticator$SaslState CLIENT_COMPLETE>;
specialinvoke v.<org.apache.kafkaesqueesqueesque.common.security.authenticator.SaslClientAuthenticator: void setSaslState(org.apache.kafkaesqueesqueesque.common.security.authenticator.SaslClientAuthenticator$SaslState)>(v);
goto label;
label:
v = specialinvoke v.<org.apache.kafkaesqueesqueesque.common.security.authenticator.SaslClientAuthenticator: byte[] receiveToken()>();
if v == null goto label;
v = <org.apache.kafkaesqueesqueesque.common.security.authenticator.SaslClientAuthenticator$SaslState: org.apache.kafkaesqueesqueesque.common.security.authenticator.SaslClientAuthenticator$SaslState COMPLETE>;
specialinvoke v.<org.apache.kafkaesqueesqueesque.common.security.authenticator.SaslClientAuthenticator: void setSaslState(org.apache.kafkaesqueesqueesque.common.security.authenticator.SaslClientAuthenticator$SaslState)>(v);
goto label;
label:
v = new java.lang.IllegalStateException;
specialinvoke v.<java.lang.IllegalStateException: void <init>(java.lang.String)>("SASL handshake has already failed");
throw v;
label:
return;
}
private void sendHandshakeRequest(short) throws java.io.IOException
{
org.apache.kafkaesqueesqueesque.common.security.authenticator.SaslClientAuthenticator v;
org.apache.kafkaesqueesqueesque.common.requests.RequestHeader v;
org.apache.kafkaesqueesqueesque.common.network.Send v;
org.apache.kafkaesqueesqueesque.common.protocol.ApiKeys v;
short v, v;
org.apache.kafkaesqueesqueesque.common.requests.SaslHandshakeRequest v;
java.lang.String v;
v := @this: org.apache.kafkaesqueesqueesque.common.security.authenticator.SaslClientAuthenticator;
v := @parameter: short;
v = virtualinvoke v.<org.apache.kafkaesqueesqueesque.common.security.authenticator.SaslClientAuthenticator: org.apache.kafkaesqueesqueesque.common.requests.SaslHandshakeRequest createSaslHandshakeRequest(short)>(v);
v = v.<org.apache.kafkaesqueesqueesque.common.security.authenticator.SaslClientAuthenticator: java.lang.String node>;
v = <org.apache.kafkaesqueesqueesque.common.protocol.ApiKeys: org.apache.kafkaesqueesqueesque.common.protocol.ApiKeys SASL_HANDSHAKE>;
v = virtualinvoke v.<org.apache.kafkaesqueesqueesque.common.requests.SaslHandshakeRequest: short version()>();
v = specialinvoke v.<org.apache.kafkaesqueesqueesque.common.security.authenticator.SaslClientAuthenticator: org.apache.kafkaesqueesqueesque.common.requests.RequestHeader nextRequestHeader(org.apache.kafkaesqueesqueesque.common.protocol.ApiKeys,short)>(v, v);
v = virtualinvoke v.<org.apache.kafkaesqueesqueesque.common.requests.SaslHandshakeRequest: org.apache.kafkaesqueesqueesque.common.network.Send toSend(java.lang.String,org.apache.kafkaesqueesqueesque.common.requests.RequestHeader)>(v, v);
specialinvoke v.<org.apache.kafkaesqueesqueesque.common.security.authenticator.SaslClientAuthenticator: void send(org.apache.kafkaesqueesqueesque.common.network.Send)>(v);
return;
}
private void sendInitialToken() throws java.io.IOException
{
byte[] v;
org.apache.kafkaesqueesqueesque.common.security.authenticator.SaslClientAuthenticator v;
v := @this: org.apache.kafkaesqueesqueesque.common.security.authenticator.SaslClientAuthenticator;
v = newarray (byte)[0];
specialinvoke v.<org.apache.kafkaesqueesqueesque.common.security.authenticator.SaslClientAuthenticator: boolean sendSaslClientToken(byte[],boolean)>(v, 1);
return;
}
public void reauthenticate(org.apache.kafkaesqueesqueesque.common.network.ReauthenticationContext) throws java.io.IOException
{
org.apache.kafkaesqueesqueesque.common.network.ReauthenticationContext v;
org.apache.kafkaesqueesqueesque.common.security.authenticator.SaslClientAuthenticator v;
org.apache.kafkaesqueesqueesque.common.network.NetworkReceive v;
long v;
org.apache.kafkaesqueesqueesque.common.security.authenticator.SaslClientAuthenticator$SaslState v;
org.apache.kafkaesqueesqueesque.common.security.authenticator.SaslClientAuthenticator$ReauthInfo v, v;
java.lang.Object v;
org.apache.kafkaesqueesqueesque.common.network.Authenticator v;
org.apache.kafkaesqueesqueesque.common.requests.ApiVersionsResponse v;
v := @this: org.apache.kafkaesqueesqueesque.common.security.authenticator.SaslClientAuthenticator;
v := @parameter: org.apache.kafkaesqueesqueesque.common.network.ReauthenticationContext;
v = staticinvoke <java.util.Objects: java.lang.Object requireNonNull(java.lang.Object)>(v);
v = virtualinvoke v.<org.apache.kafkaesqueesqueesque.common.network.ReauthenticationContext: org.apache.kafkaesqueesqueesque.common.network.Authenticator previousAuthenticator()>();
v = v.<org.apache.kafkaesqueesqueesque.common.security.authenticator.SaslClientAuthenticator: org.apache.kafkaesqueesqueesque.common.security.authenticator.SaslClientAuthenticator$ReauthInfo reauthInfo>;
v = virtualinvoke v.<org.apache.kafkaesqueesqueesque.common.security.authenticator.SaslClientAuthenticator$ReauthInfo: org.apache.kafkaesqueesqueesque.common.requests.ApiVersionsResponse apiVersionsResponse()>();
virtualinvoke v.<org.apache.kafkaesqueesqueesque.common.security.authenticator.SaslClientAuthenticator: void close()>();
v = v.<org.apache.kafkaesqueesqueesque.common.security.authenticator.SaslClientAuthenticator: org.apache.kafkaesqueesqueesque.common.security.authenticator.SaslClientAuthenticator$ReauthInfo reauthInfo>;
v = virtualinvoke v.<org.apache.kafkaesqueesqueesque.common.network.ReauthenticationContext: long reauthenticationBeginNanos()>();
virtualinvoke v.<org.apache.kafkaesqueesqueesque.common.security.authenticator.SaslClientAuthenticator$ReauthInfo: void reauthenticating(org.apache.kafkaesqueesqueesque.common.requests.ApiVersionsResponse,long)>(v, v);
v = virtualinvoke v.<org.apache.kafkaesqueesqueesque.common.network.ReauthenticationContext: org.apache.kafkaesqueesqueesque.common.network.NetworkReceive networkReceive()>();
v.<org.apache.kafkaesqueesqueesque.common.security.authenticator.SaslClientAuthenticator: org.apache.kafkaesqueesqueesque.common.network.NetworkReceive netInBuffer> = v;
v = <org.apache.kafkaesqueesqueesque.common.security.authenticator.SaslClientAuthenticator$SaslState: org.apache.kafkaesqueesqueesque.common.security.authenticator.SaslClientAuthenticator$SaslState REAUTH_PROCESS_ORIG_APIVERSIONS_RESPONSE>;
specialinvoke v.<org.apache.kafkaesqueesqueesque.common.security.authenticator.SaslClientAuthenticator: void setSaslState(org.apache.kafkaesqueesqueesque.common.security.authenticator.SaslClientAuthenticator$SaslState)>(v);
virtualinvoke v.<org.apache.kafkaesqueesqueesque.common.security.authenticator.SaslClientAuthenticator: void authenticate()>();
return;
}
public java.util.Optional pollResponseReceivedDuringReauthentication()
{
java.util.Optional v;
org.apache.kafkaesqueesqueesque.common.security.authenticator.SaslClientAuthenticator v;
org.apache.kafkaesqueesqueesque.common.security.authenticator.SaslClientAuthenticator$ReauthInfo v;
v := @this: org.apache.kafkaesqueesqueesque.common.security.authenticator.SaslClientAuthenticator;
v = v.<org.apache.kafkaesqueesqueesque.common.security.authenticator.SaslClientAuthenticator: org.apache.kafkaesqueesqueesque.common.security.authenticator.SaslClientAuthenticator$ReauthInfo reauthInfo>;
v = virtualinvoke v.<org.apache.kafkaesqueesqueesque.common.security.authenticator.SaslClientAuthenticator$ReauthInfo: java.util.Optional pollResponseReceivedDuringReauthentication()>();
return v;
}
public java.lang.Long clientSessionReauthenticationTimeNanos()
{
org.apache.kafkaesqueesqueesque.common.security.authenticator.SaslClientAuthenticator v;
java.lang.Long v;
org.apache.kafkaesqueesqueesque.common.security.authenticator.SaslClientAuthenticator$ReauthInfo v;
v := @this: org.apache.kafkaesqueesqueesque.common.security.authenticator.SaslClientAuthenticator;
v = v.<org.apache.kafkaesqueesqueesque.common.security.authenticator.SaslClientAuthenticator: org.apache.kafkaesqueesqueesque.common.security.authenticator.SaslClientAuthenticator$ReauthInfo reauthInfo>;
v = v.<org.apache.kafkaesqueesqueesque.common.security.authenticator.SaslClientAuthenticator$ReauthInfo: java.lang.Long clientSessionReauthenticationTimeNanos>;
return v;
}
public java.lang.Long reauthenticationLatencyMs()
{
org.apache.kafkaesqueesqueesque.common.security.authenticator.SaslClientAuthenticator v;
java.lang.Long v;
org.apache.kafkaesqueesqueesque.common.security.authenticator.SaslClientAuthenticator$ReauthInfo v;
v := @this: org.apache.kafkaesqueesqueesque.common.security.authenticator.SaslClientAuthenticator;
v = v.<org.apache.kafkaesqueesqueesque.common.security.authenticator.SaslClientAuthenticator: org.apache.kafkaesqueesqueesque.common.security.authenticator.SaslClientAuthenticator$ReauthInfo reauthInfo>;
v = virtualinvoke v.<org.apache.kafkaesqueesqueesque.common.security.authenticator.SaslClientAuthenticator$ReauthInfo: java.lang.Long reauthenticationLatencyMs()>();
return v;
}
private org.apache.kafkaesqueesqueesque.common.requests.RequestHeader nextRequestHeader(org.apache.kafkaesqueesqueesque.common.protocol.ApiKeys, short)
{
org.apache.kafkaesqueesqueesque.common.security.authenticator.SaslClientAuthenticator v;
org.apache.kafkaesqueesqueesque.common.message.RequestHeaderData v, v, v, v, v;
org.apache.kafkaesqueesqueesque.common.protocol.ApiKeys v;
short v, v, v;
java.util.Map v;
int v, v;
org.apache.kafkaesqueesqueesque.common.requests.RequestHeader v, v;
java.lang.Object v;
v := @this: org.apache.kafkaesqueesqueesque.common.security.authenticator.SaslClientAuthenticator;
v := @parameter: org.apache.kafkaesqueesqueesque.common.protocol.ApiKeys;
v := @parameter: short;
v = v.<org.apache.kafkaesqueesqueesque.common.security.authenticator.SaslClientAuthenticator: java.util.Map configs>;
v = interfaceinvoke v.<java.util.Map: java.lang.Object get(java.lang.Object)>("client.id");
v = v.<org.apache.kafkaesqueesqueesque.common.protocol.ApiKeys: short id>;
v = new org.apache.kafkaesqueesqueesque.common.requests.RequestHeader;
v = new org.apache.kafkaesqueesqueesque.common.message.RequestHeaderData;
specialinvoke v.<org.apache.kafkaesqueesqueesque.common.message.RequestHeaderData: void <init>()>();
v = virtualinvoke v.<org.apache.kafkaesqueesqueesque.common.message.RequestHeaderData: org.apache.kafkaesqueesqueesque.common.message.RequestHeaderData setRequestApiKey(short)>(v);
v = virtualinvoke v.<org.apache.kafkaesqueesqueesque.common.message.RequestHeaderData: org.apache.kafkaesqueesqueesque.common.message.RequestHeaderData setRequestApiVersion(short)>(v);
v = virtualinvoke v.<org.apache.kafkaesqueesqueesque.common.message.RequestHeaderData: org.apache.kafkaesqueesqueesque.common.message.RequestHeaderData setClientId(java.lang.String)>(v);
v = v.<org.apache.kafkaesqueesqueesque.common.security.authenticator.SaslClientAuthenticator: int correlationId>;
v = v + 1;
v.<org.apache.kafkaesqueesqueesque.common.security.authenticator.SaslClientAuthenticator: int correlationId> = v;
v = virtualinvoke v.<org.apache.kafkaesqueesqueesque.common.message.RequestHeaderData: org.apache.kafkaesqueesqueesque.common.message.RequestHeaderData setCorrelationId(int)>(v);
v = virtualinvoke v.<org.apache.kafkaesqueesqueesque.common.protocol.ApiKeys: short requestHeaderVersion(short)>(v);
specialinvoke v.<org.apache.kafkaesqueesqueesque.common.requests.RequestHeader: void <init>(org.apache.kafkaesqueesqueesque.common.message.RequestHeaderData,short)>(v, v);
v.<org.apache.kafkaesqueesqueesque.common.security.authenticator.SaslClientAuthenticator: org.apache.kafkaesqueesqueesque.common.requests.RequestHeader currentRequestHeader> = v;
v = v.<org.apache.kafkaesqueesqueesque.common.security.authenticator.SaslClientAuthenticator: org.apache.kafkaesqueesqueesque.common.requests.RequestHeader currentRequestHeader>;
return v;
}
protected org.apache.kafkaesqueesqueesque.common.requests.SaslHandshakeRequest createSaslHandshakeRequest(short)
{
short v;
org.apache.kafkaesqueesqueesque.common.requests.SaslHandshakeRequest v;
org.apache.kafkaesqueesqueesque.common.security.authenticator.SaslClientAuthenticator v;
org.apache.kafkaesqueesqueesque.common.message.SaslHandshakeRequestData v, v;
java.lang.String v;
org.apache.kafkaesqueesqueesque.common.requests.SaslHandshakeRequest$Builder v;
v := @this: org.apache.kafkaesqueesqueesque.common.security.authenticator.SaslClientAuthenticator;
v := @parameter: short;
v = new org.apache.kafkaesqueesqueesque.common.requests.SaslHandshakeRequest$Builder;
v = new org.apache.kafkaesqueesqueesque.common.message.SaslHandshakeRequestData;
specialinvoke v.<org.apache.kafkaesqueesqueesque.common.message.SaslHandshakeRequestData: void <init>()>();
v = v.<org.apache.kafkaesqueesqueesque.common.security.authenticator.SaslClientAuthenticator: java.lang.String mechanism>;
v = virtualinvoke v.<org.apache.kafkaesqueesqueesque.common.message.SaslHandshakeRequestData: org.apache.kafkaesqueesqueesque.common.message.SaslHandshakeRequestData setMechanism(java.lang.String)>(v);
specialinvoke v.<org.apache.kafkaesqueesqueesque.common.requests.SaslHandshakeRequest$Builder: void <init>(org.apache.kafkaesqueesqueesque.common.message.SaslHandshakeRequestData)>(v);
v = virtualinvoke v.<org.apache.kafkaesqueesqueesque.common.requests.SaslHandshakeRequest$Builder: org.apache.kafkaesqueesqueesque.common.requests.SaslHandshakeRequest build(short)>(v);
return v;
}
protected void setSaslAuthenticateAndHandshakeVersions(org.apache.kafkaesqueesqueesque.common.requests.ApiVersionsResponse)
{
org.apache.kafkaesqueesqueesque.common.security.authenticator.SaslClientAuthenticator v;
org.apache.kafkaesqueesqueesque.common.protocol.ApiKeys v, v, v, v;
short v, v, v, v, v, v;
int v, v;
org.apache.kafkaesqueesqueesque.common.message.ApiVersionsResponseData$ApiVersionsResponseKey v, v;
org.apache.kafkaesqueesqueesque.common.requests.ApiVersionsResponse v;
v := @this: org.apache.kafkaesqueesqueesque.common.security.authenticator.SaslClientAuthenticator;
v := @parameter: org.apache.kafkaesqueesqueesque.common.requests.ApiVersionsResponse;
v = <org.apache.kafkaesqueesqueesque.common.protocol.ApiKeys: org.apache.kafkaesqueesqueesque.common.protocol.ApiKeys SASL_AUTHENTICATE>;
v = v.<org.apache.kafkaesqueesqueesque.common.protocol.ApiKeys: short id>;
v = virtualinvoke v.<org.apache.kafkaesqueesqueesque.common.requests.ApiVersionsResponse: org.apache.kafkaesqueesqueesque.common.message.ApiVersionsResponseData$ApiVersionsResponseKey apiVersion(short)>(v);
if v == null goto label;
v = virtualinvoke v.<org.apache.kafkaesqueesqueesque.common.message.ApiVersionsResponseData$ApiVersionsResponseKey: short maxVersion()>();
v = <org.apache.kafkaesqueesqueesque.common.protocol.ApiKeys: org.apache.kafkaesqueesqueesque.common.protocol.ApiKeys SASL_AUTHENTICATE>;
v = virtualinvoke v.<org.apache.kafkaesqueesqueesque.common.protocol.ApiKeys: short latestVersion()>();
v = staticinvoke <java.lang.Math: int min(int,int)>(v, v);
v.<org.apache.kafkaesqueesqueesque.common.security.authenticator.SaslClientAuthenticator: short saslAuthenticateVersion> = v;
label:
v = <org.apache.kafkaesqueesqueesque.common.protocol.ApiKeys: org.apache.kafkaesqueesqueesque.common.protocol.ApiKeys SASL_HANDSHAKE>;
v = v.<org.apache.kafkaesqueesqueesque.common.protocol.ApiKeys: short id>;
v = virtualinvoke v.<org.apache.kafkaesqueesqueesque.common.requests.ApiVersionsResponse: org.apache.kafkaesqueesqueesque.common.message.ApiVersionsResponseData$ApiVersionsResponseKey apiVersion(short)>(v);
if v == null goto label;
v = virtualinvoke v.<org.apache.kafkaesqueesqueesque.common.message.ApiVersionsResponseData$ApiVersionsResponseKey: short maxVersion()>();
v = <org.apache.kafkaesqueesqueesque.common.protocol.ApiKeys: org.apache.kafkaesqueesqueesque.common.protocol.ApiKeys SASL_HANDSHAKE>;
v = virtualinvoke v.<org.apache.kafkaesqueesqueesque.common.protocol.ApiKeys: short latestVersion()>();
v = staticinvoke <java.lang.Math: int min(int,int)>(v, v);
v.<org.apache.kafkaesqueesqueesque.common.security.authenticator.SaslClientAuthenticator: short saslHandshakeVersion> = v;
label:
return;
}
private void setSaslState(org.apache.kafkaesqueesqueesque.common.security.authenticator.SaslClientAuthenticator$SaslState)
{
org.apache.kafkaesqueesqueesque.common.security.authenticator.SaslClientAuthenticator v;
org.slf4j.Logger v;
org.apache.kafkaesqueesqueesque.common.network.TransportLayer v, v;
long v;
org.apache.kafkaesqueesqueesque.common.security.authenticator.SaslClientAuthenticator$SaslState v, v;
org.apache.kafkaesqueesqueesque.common.network.Send v, v;
org.apache.kafkaesqueesqueesque.common.security.authenticator.SaslClientAuthenticator$ReauthInfo v, v;
org.apache.kafkaesqueesqueesque.common.utils.Time v;
boolean v, v;
v := @this: org.apache.kafkaesqueesqueesque.common.security.authenticator.SaslClientAuthenticator;
v := @parameter: org.apache.kafkaesqueesqueesque.common.security.authenticator.SaslClientAuthenticator$SaslState;
v = v.<org.apache.kafkaesqueesqueesque.common.security.authenticator.SaslClientAuthenticator: org.apache.kafkaesqueesqueesque.common.network.Send netOutBuffer>;
if v == null goto label;
v = v.<org.apache.kafkaesqueesqueesque.common.security.authenticator.SaslClientAuthenticator: org.apache.kafkaesqueesqueesque.common.network.Send netOutBuffer>;
v = interfaceinvoke v.<org.apache.kafkaesqueesqueesque.common.network.Send: boolean completed()>();
if v != 0 goto label;
v.<org.apache.kafkaesqueesqueesque.common.security.authenticator.SaslClientAuthenticator: org.apache.kafkaesqueesqueesque.common.security.authenticator.SaslClientAuthenticator$SaslState pendingSaslState> = v;
goto label;
label:
v.<org.apache.kafkaesqueesqueesque.common.security.authenticator.SaslClientAuthenticator: org.apache.kafkaesqueesqueesque.common.security.authenticator.SaslClientAuthenticator$SaslState pendingSaslState> = null;
v.<org.apache.kafkaesqueesqueesque.common.security.authenticator.SaslClientAuthenticator: org.apache.kafkaesqueesqueesque.common.security.authenticator.SaslClientAuthenticator$SaslState saslState> = v;
v = v.<org.apache.kafkaesqueesqueesque.common.security.authenticator.SaslClientAuthenticator: org.slf4j.Logger log>;
interfaceinvoke v.<org.slf4j.Logger: void debug(java.lang.String,java.lang.Object)>("Set SASL client state to {}", v);
v = <org.apache.kafkaesqueesqueesque.common.security.authenticator.SaslClientAuthenticator$SaslState: org.apache.kafkaesqueesqueesque.common.security.authenticator.SaslClientAuthenticator$SaslState COMPLETE>;
if v != v goto label;
v = v.<org.apache.kafkaesqueesqueesque.common.security.authenticator.SaslClientAuthenticator: org.apache.kafkaesqueesqueesque.common.security.authenticator.SaslClientAuthenticator$ReauthInfo reauthInfo>;
v = v.<org.apache.kafkaesqueesqueesque.common.security.authenticator.SaslClientAuthenticator: org.apache.kafkaesqueesqueesque.common.utils.Time time>;
v = interfaceinvoke v.<org.apache.kafkaesqueesqueesque.common.utils.Time: long nanoseconds()>();
virtualinvoke v.<org.apache.kafkaesqueesqueesque.common.security.authenticator.SaslClientAuthenticator$ReauthInfo: void setAuthenticationEndAndSessionReauthenticationTimes(long)>(v);
v = v.<org.apache.kafkaesqueesqueesque.common.security.authenticator.SaslClientAuthenticator: org.apache.kafkaesqueesqueesque.common.security.authenticator.SaslClientAuthenticator$ReauthInfo reauthInfo>;
v = virtualinvoke v.<org.apache.kafkaesqueesqueesque.common.security.authenticator.SaslClientAuthenticator$ReauthInfo: boolean reauthenticating()>();
if v != 0 goto label;
v = v.<org.apache.kafkaesqueesqueesque.common.security.authenticator.SaslClientAuthenticator: org.apache.kafkaesqueesqueesque.common.network.TransportLayer transportLayer>;
interfaceinvoke v.<org.apache.kafkaesqueesqueesque.common.network.TransportLayer: void removeInterestOps(int)>(4);
goto label;
label:
v = v.<org.apache.kafkaesqueesqueesque.common.security.authenticator.SaslClientAuthenticator: org.apache.kafkaesqueesqueesque.common.network.TransportLayer transportLayer>;
interfaceinvoke v.<org.apache.kafkaesqueesqueesque.common.network.TransportLayer: void addInterestOps(int)>(4);
label:
return;
}
private boolean sendSaslClientToken(byte[], boolean) throws java.io.IOException
{
byte[] v, v, v;
org.apache.kafkaesqueesqueesque.common.security.authenticator.SaslClientAuthenticator v;
java.nio.ByteBuffer v;
javax.security.sasl.SaslClient v;
org.apache.kafkaesqueesqueesque.common.protocol.ApiKeys v;
short v, v, v;
int v;
java.lang.String v;
boolean v, v;
org.apache.kafkaesqueesqueesque.common.requests.SaslAuthenticateRequest$Builder v;
org.apache.kafkaesqueesqueesque.common.requests.SaslAuthenticateRequest v;
org.apache.kafkaesqueesqueesque.common.requests.RequestHeader v;
org.apache.kafkaesqueesqueesque.common.network.NetworkSend v;
org.apache.kafkaesqueesqueesque.common.message.SaslAuthenticateRequestData v, v;
v := @this: org.apache.kafkaesqueesqueesque.common.security.authenticator.SaslClientAuthenticator;
v := @parameter: byte[];
v := @parameter: boolean;
v = v.<org.apache.kafkaesqueesqueesque.common.security.authenticator.SaslClientAuthenticator: javax.security.sasl.SaslClient saslClient>;
v = interfaceinvoke v.<javax.security.sasl.SaslClient: boolean isComplete()>();
if v != 0 goto label;
v = specialinvoke v.<org.apache.kafkaesqueesqueesque.common.security.authenticator.SaslClientAuthenticator: byte[] createSaslToken(byte[],boolean)>(v, v);
if v == null goto label;
v = staticinvoke <java.nio.ByteBuffer: java.nio.ByteBuffer wrap(byte[])>(v);
v = v.<org.apache.kafkaesqueesqueesque.common.security.authenticator.SaslClientAuthenticator: short saslAuthenticateVersion>;
v = (int) -1;
if v == v goto label;
v = new org.apache.kafkaesqueesqueesque.common.message.SaslAuthenticateRequestData;
specialinvoke v.<org.apache.kafkaesqueesqueesque.common.message.SaslAuthenticateRequestData: void <init>()>();
v = virtualinvoke v.<java.nio.ByteBuffer: byte[] array()>();
v = virtualinvoke v.<org.apache.kafkaesqueesqueesque.common.message.SaslAuthenticateRequestData: org.apache.kafkaesqueesqueesque.common.message.SaslAuthenticateRequestData setAuthBytes(byte[])>(v);
v = new org.apache.kafkaesqueesqueesque.common.requests.SaslAuthenticateRequest$Builder;
specialinvoke v.<org.apache.kafkaesqueesqueesque.common.requests.SaslAuthenticateRequest$Builder: void <init>(org.apache.kafkaesqueesqueesque.common.message.SaslAuthenticateRequestData)>(v);
v = v.<org.apache.kafkaesqueesqueesque.common.security.authenticator.SaslClientAuthenticator: short saslAuthenticateVersion>;
v = virtualinvoke v.<org.apache.kafkaesqueesqueesque.common.requests.SaslAuthenticateRequest$Builder: org.apache.kafkaesqueesqueesque.common.requests.SaslAuthenticateRequest build(short)>(v);
v = <org.apache.kafkaesqueesqueesque.common.protocol.ApiKeys: org.apache.kafkaesqueesqueesque.common.protocol.ApiKeys SASL_AUTHENTICATE>;
v = v.<org.apache.kafkaesqueesqueesque.common.security.authenticator.SaslClientAuthenticator: short saslAuthenticateVersion>;
v = specialinvoke v.<org.apache.kafkaesqueesqueesque.common.security.authenticator.SaslClientAuthenticator: org.apache.kafkaesqueesqueesque.common.requests.RequestHeader nextRequestHeader(org.apache.kafkaesqueesqueesque.common.protocol.ApiKeys,short)>(v, v);
v = virtualinvoke v.<org.apache.kafkaesqueesqueesque.common.requests.SaslAuthenticateRequest: java.nio.ByteBuffer serialize(org.apache.kafkaesqueesqueesque.common.requests.RequestHeader)>(v);
label:
v = new org.apache.kafkaesqueesqueesque.common.network.NetworkSend;
v = v.<org.apache.kafkaesqueesqueesque.common.security.authenticator.SaslClientAuthenticator: java.lang.String node>;
specialinvoke v.<org.apache.kafkaesqueesqueesque.common.network.NetworkSend: void <init>(java.lang.String,java.nio.ByteBuffer)>(v, v);
specialinvoke v.<org.apache.kafkaesqueesqueesque.common.security.authenticator.SaslClientAuthenticator: void send(org.apache.kafkaesqueesqueesque.common.network.Send)>(v);
return 1;
label:
return 0;
}
private void send(org.apache.kafkaesqueesqueesque.common.network.Send) throws java.io.IOException
{
org.apache.kafkaesqueesqueesque.common.security.authenticator.SaslClientAuthenticator v;
java.io.IOException v;
org.apache.kafkaesqueesqueesque.common.security.authenticator.SaslClientAuthenticator$SaslState v;
org.apache.kafkaesqueesqueesque.common.network.Send v;
v := @this: org.apache.kafkaesqueesqueesque.common.security.authenticator.SaslClientAuthenticator;
v := @parameter: org.apache.kafkaesqueesqueesque.common.network.Send;
label:
v.<org.apache.kafkaesqueesqueesque.common.security.authenticator.SaslClientAuthenticator: org.apache.kafkaesqueesqueesque.common.network.Send netOutBuffer> = v;
specialinvoke v.<org.apache.kafkaesqueesqueesque.common.security.authenticator.SaslClientAuthenticator: boolean flushNetOutBufferAndUpdateInterestOps()>();
label:
goto label;
label:
v := @caughtexception;
v = <org.apache.kafkaesqueesqueesque.common.security.authenticator.SaslClientAuthenticator$SaslState: org.apache.kafkaesqueesqueesque.common.security.authenticator.SaslClientAuthenticator$SaslState FAILED>;
specialinvoke v.<org.apache.kafkaesqueesqueesque.common.security.authenticator.SaslClientAuthenticator: void setSaslState(org.apache.kafkaesqueesqueesque.common.security.authenticator.SaslClientAuthenticator$SaslState)>(v);
throw v;
label:
return;
catch java.io.IOException from label to label with label;
}
private boolean flushNetOutBufferAndUpdateInterestOps() throws java.io.IOException
{
org.apache.kafkaesqueesqueesque.common.security.authenticator.SaslClientAuthenticator v;
org.apache.kafkaesqueesqueesque.common.network.TransportLayer v, v;
org.apache.kafkaesqueesqueesque.common.security.authenticator.SaslClientAuthenticator$SaslState v, v;
boolean v;
v := @this: org.apache.kafkaesqueesqueesque.common.security.authenticator.SaslClientAuthenticator;
v = specialinvoke v.<org.apache.kafkaesqueesqueesque.common.security.authenticator.SaslClientAuthenticator: boolean flushNetOutBuffer()>();
if v == 0 goto label;
v = v.<org.apache.kafkaesqueesqueesque.common.security.authenticator.SaslClientAuthenticator: org.apache.kafkaesqueesqueesque.common.network.TransportLayer transportLayer>;
interfaceinvoke v.<org.apache.kafkaesqueesqueesque.common.network.TransportLayer: void removeInterestOps(int)>(4);
v = v.<org.apache.kafkaesqueesqueesque.common.security.authenticator.SaslClientAuthenticator: org.apache.kafkaesqueesqueesque.common.security.authenticator.SaslClientAuthenticator$SaslState pendingSaslState>;
if v == null goto label;
v = v.<org.apache.kafkaesqueesqueesque.common.security.authenticator.SaslClientAuthenticator: org.apache.kafkaesqueesqueesque.common.security.authenticator.SaslClientAuthenticator$SaslState pendingSaslState>;
specialinvoke v.<org.apache.kafkaesqueesqueesque.common.security.authenticator.SaslClientAuthenticator: void setSaslState(org.apache.kafkaesqueesqueesque.common.security.authenticator.SaslClientAuthenticator$SaslState)>(v);
goto label;
label:
v = v.<org.apache.kafkaesqueesqueesque.common.security.authenticator.SaslClientAuthenticator: org.apache.kafkaesqueesqueesque.common.network.TransportLayer transportLayer>;
interfaceinvoke v.<org.apache.kafkaesqueesqueesque.common.network.TransportLayer: void addInterestOps(int)>(4);
label:
return v;
}
private byte[] receiveResponseOrToken() throws java.io.IOException
{
byte[] v;
org.apache.kafkaesqueesqueesque.common.security.authenticator.SaslClientAuthenticator v;
org.apache.kafkaesqueesqueesque.common.network.NetworkReceive v, v, v, v, v, v, v;
org.apache.kafkaesqueesqueesque.common.network.TransportLayer v;
java.nio.ByteBuffer v, v, v;
int v, v;
java.lang.String v;
boolean v;
v := @this: org.apache.kafkaesqueesqueesque.common.security.authenticator.SaslClientAuthenticator;
v = v.<org.apache.kafkaesqueesqueesque.common.security.authenticator.SaslClientAuthenticator: org.apache.kafkaesqueesqueesque.common.network.NetworkReceive netInBuffer>;
if v != null goto label;
v = new org.apache.kafkaesqueesqueesque.common.network.NetworkReceive;
v = v.<org.apache.kafkaesqueesqueesque.common.security.authenticator.SaslClientAuthenticator: java.lang.String node>;
specialinvoke v.<org.apache.kafkaesqueesqueesque.common.network.NetworkReceive: void <init>(java.lang.String)>(v);
v.<org.apache.kafkaesqueesqueesque.common.security.authenticator.SaslClientAuthenticator: org.apache.kafkaesqueesqueesque.common.network.NetworkReceive netInBuffer> = v;
label:
v = v.<org.apache.kafkaesqueesqueesque.common.security.authenticator.SaslClientAuthenticator: org.apache.kafkaesqueesqueesque.common.network.NetworkReceive netInBuffer>;
v = v.<org.apache.kafkaesqueesqueesque.common.security.authenticator.SaslClientAuthenticator: org.apache.kafkaesqueesqueesque.common.network.TransportLayer transportLayer>;
virtualinvoke v.<org.apache.kafkaesqueesqueesque.common.network.NetworkReceive: long readFrom(java.nio.channels.ScatteringByteChannel)>(v);
v = null;
v = v.<org.apache.kafkaesqueesqueesque.common.security.authenticator.SaslClientAuthenticator: org.apache.kafkaesqueesqueesque.common.network.NetworkReceive netInBuffer>;
v = virtualinvoke v.<org.apache.kafkaesqueesqueesque.common.network.NetworkReceive: boolean complete()>();
if v == 0 goto label;
v = v.<org.apache.kafkaesqueesqueesque.common.security.authenticator.SaslClientAuthenticator: org.apache.kafkaesqueesqueesque.common.network.NetworkReceive netInBuffer>;
v = virtualinvoke v.<org.apache.kafkaesqueesqueesque.common.network.NetworkReceive: java.nio.ByteBuffer payload()>();
virtualinvoke v.<java.nio.ByteBuffer: java.nio.ByteBuffer rewind()>();
v = v.<org.apache.kafkaesqueesqueesque.common.security.authenticator.SaslClientAuthenticator: org.apache.kafkaesqueesqueesque.common.network.NetworkReceive netInBuffer>;
v = virtualinvoke v.<org.apache.kafkaesqueesqueesque.common.network.NetworkReceive: java.nio.ByteBuffer payload()>();
v = virtualinvoke v.<java.nio.ByteBuffer: int remaining()>();
v = newarray (byte)[v];
v = v.<org.apache.kafkaesqueesqueesque.common.security.authenticator.SaslClientAuthenticator: org.apache.kafkaesqueesqueesque.common.network.NetworkReceive netInBuffer>;
v = virtualinvoke v.<org.apache.kafkaesqueesqueesque.common.network.NetworkReceive: java.nio.ByteBuffer payload()>();
v = lengthof v;
virtualinvoke v.<java.nio.ByteBuffer: java.nio.ByteBuffer get(byte[],int,int)>(v, 0, v);
v.<org.apache.kafkaesqueesqueesque.common.security.authenticator.SaslClientAuthenticator: org.apache.kafkaesqueesqueesque.common.network.NetworkReceive netInBuffer> = null;
label:
return v;
}
public org.apache.kafkaesqueesqueesque.common.security.auth.KafkaPrincipal principal()
{
java.lang.String v;
org.apache.kafkaesqueesqueesque.common.security.authenticator.SaslClientAuthenticator v;
org.apache.kafkaesqueesqueesque.common.security.auth.KafkaPrincipal v;
v := @this: org.apache.kafkaesqueesqueesque.common.security.authenticator.SaslClientAuthenticator;
v = new org.apache.kafkaesqueesqueesque.common.security.auth.KafkaPrincipal;
v = v.<org.apache.kafkaesqueesqueesque.common.security.authenticator.SaslClientAuthenticator: java.lang.String clientPrincipalName>;
specialinvoke v.<org.apache.kafkaesqueesqueesque.common.security.auth.KafkaPrincipal: void <init>(java.lang.String,java.lang.String)>("User", v);
return v;
}
public boolean complete()
{
org.apache.kafkaesqueesqueesque.common.security.authenticator.SaslClientAuthenticator v;
org.apache.kafkaesqueesqueesque.common.security.authenticator.SaslClientAuthenticator$SaslState v, v;
boolean v;
v := @this: org.apache.kafkaesqueesqueesque.common.security.authenticator.SaslClientAuthenticator;
v = v.<org.apache.kafkaesqueesqueesque.common.security.authenticator.SaslClientAuthenticator: org.apache.kafkaesqueesqueesque.common.security.authenticator.SaslClientAuthenticator$SaslState saslState>;
v = <org.apache.kafkaesqueesqueesque.common.security.authenticator.SaslClientAuthenticator$SaslState: org.apache.kafkaesqueesqueesque.common.security.authenticator.SaslClientAuthenticator$SaslState COMPLETE>;
if v != v goto label;
v = 1;
goto label;
label:
v = 0;
label:
return v;
}
public void close() throws java.io.IOException
{
javax.security.sasl.SaslClient v, v;
org.apache.kafkaesqueesqueesque.common.security.authenticator.SaslClientAuthenticator v;
v := @this: org.apache.kafkaesqueesqueesque.common.security.authenticator.SaslClientAuthenticator;
v = v.<org.apache.kafkaesqueesqueesque.common.security.authenticator.SaslClientAuthenticator: javax.security.sasl.SaslClient saslClient>;
if v == null goto label;
v = v.<org.apache.kafkaesqueesqueesque.common.security.authenticator.SaslClientAuthenticator: javax.security.sasl.SaslClient saslClient>;
interfaceinvoke v.<javax.security.sasl.SaslClient: void dispose()>();
label:
return;
}
private byte[] receiveToken() throws java.io.IOException
{
byte[] v, v, v;
org.apache.kafkaesqueesqueesque.common.protocol.Errors v, v;
org.apache.kafkaesqueesqueesque.common.security.authenticator.SaslClientAuthenticator v;
long v;
org.apache.kafkaesqueesqueesque.common.errors.ApiException v;
short v;
byte v;
java.lang.Long v;
org.apache.kafkaesqueesqueesque.common.requests.AbstractResponse v;
int v;
java.lang.String v;
org.apache.kafkaesqueesqueesque.common.security.authenticator.SaslClientAuthenticator$SaslState v;
org.apache.kafkaesqueesqueesque.common.security.authenticator.SaslClientAuthenticator$ReauthInfo v;
v := @this: org.apache.kafkaesqueesqueesque.common.security.authenticator.SaslClientAuthenticator;
v = v.<org.apache.kafkaesqueesqueesque.common.security.authenticator.SaslClientAuthenticator: short saslAuthenticateVersion>;
v = (int) -1;
if v != v goto label;
v = specialinvoke v.<org.apache.kafkaesqueesqueesque.common.security.authenticator.SaslClientAuthenticator: byte[] receiveResponseOrToken()>();
return v;
label:
v = specialinvoke v.<org.apache.kafkaesqueesqueesque.common.security.authenticator.SaslClientAuthenticator: org.apache.kafkaesqueesqueesque.common.requests.AbstractResponse receiveKafkaResponse()>();
if v == null goto label;
v = virtualinvoke v.<org.apache.kafkaesqueesqueesque.common.requests.SaslAuthenticateResponse: org.apache.kafkaesqueesqueesque.common.protocol.Errors error()>();
v = <org.apache.kafkaesqueesqueesque.common.protocol.Errors: org.apache.kafkaesqueesqueesque.common.protocol.Errors NONE>;
if v == v goto label;
v = <org.apache.kafkaesqueesqueesque.common.security.authenticator.SaslClientAuthenticator$SaslState: org.apache.kafkaesqueesqueesque.common.security.authenticator.SaslClientAuthenticator$SaslState FAILED>;
specialinvoke v.<org.apache.kafkaesqueesqueesque.common.security.authenticator.SaslClientAuthenticator: void setSaslState(org.apache.kafkaesqueesqueesque.common.security.authenticator.SaslClientAuthenticator$SaslState)>(v);
v = virtualinvoke v.<org.apache.kafkaesqueesqueesque.common.requests.SaslAuthenticateResponse: java.lang.String errorMessage()>();
if v != null goto label;
v = virtualinvoke v.<org.apache.kafkaesqueesqueesque.common.protocol.Errors: org.apache.kafkaesqueesqueesque.common.errors.ApiException exception()>();
goto label;
label:
v = virtualinvoke v.<org.apache.kafkaesqueesqueesque.common.protocol.Errors: org.apache.kafkaesqueesqueesque.common.errors.ApiException exception(java.lang.String)>(v);
label:
throw v;
label:
v = virtualinvoke v.<org.apache.kafkaesqueesqueesque.common.requests.SaslAuthenticateResponse: long sessionLifetimeMs()>();
v = v cmp 0L;
if v <= 0 goto label;
v = v.<org.apache.kafkaesqueesqueesque.common.security.authenticator.SaslClientAuthenticator: org.apache.kafkaesqueesqueesque.common.security.authenticator.SaslClientAuthenticator$ReauthInfo reauthInfo>;
v = staticinvoke <java.lang.Long: java.lang.Long valueOf(long)>(v);
v.<org.apache.kafkaesqueesqueesque.common.security.authenticator.SaslClientAuthenticator$ReauthInfo: java.lang.Long positiveSessionLifetimeMs> = v;
label:
v = virtualinvoke v.<org.apache.kafkaesqueesqueesque.common.requests.SaslAuthenticateResponse: byte[] saslAuthBytes()>();
v = staticinvoke <org.apache.kafkaesqueesqueesque.common.utils.Utils: byte[] copyArray(byte[])>(v);
return v;
label:
return null;
}
private byte[] createSaslToken(byte[], boolean) throws javax.security.sasl.SaslException
{
java.lang.Throwable v;
byte[] v;
org.apache.kafkaesqueesqueesque.common.errors.IllegalSaslStateException v;
org.apache.kafkaesqueesqueesque.common.errors.SaslAuthenticationException v;
org.apache.kafkaesqueesqueesque.common.security.authenticator.SaslClientAuthenticator v;
javax.security.sasl.SaslException v;
org.apache.kafkaesqueesqueesque.common.security.kerberos.KerberosError v, v;
javax.security.sasl.SaslClient v;
java.lang.String v, v;
boolean v, v, v;
java.security.PrivilegedActionException v;
java.security.PrivilegedExceptionAction v;
javax.security.auth.Subject v;
java.lang.Object v;
v := @this: org.apache.kafkaesqueesqueesque.common.security.authenticator.SaslClientAuthenticator;
v := @parameter: byte[];
v := @parameter: boolean;
if v != null goto label;
v = new org.apache.kafkaesqueesqueesque.common.errors.IllegalSaslStateException;
specialinvoke v.<org.apache.kafkaesqueesqueesque.common.errors.IllegalSaslStateException: void <init>(java.lang.String)>("Error authenticating with the Kafka Broker: received a `null` saslToken.");
throw v;
label:
if v == 0 goto label;
v = v.<org.apache.kafkaesqueesqueesque.common.security.authenticator.SaslClientAuthenticator: javax.security.sasl.SaslClient saslClient>;
v = interfaceinvoke v.<javax.security.sasl.SaslClient: boolean hasInitialResponse()>();
if v != 0 goto label;
label:
return v;
label:
v = v.<org.apache.kafkaesqueesqueesque.common.security.authenticator.SaslClientAuthenticator: javax.security.auth.Subject subject>;
v = staticinvoke <org.apache.kafkaesqueesqueesque.common.security.authenticator.SaslClientAuthenticator$lambda_createSaslToken_1__261: java.security.PrivilegedExceptionAction bootstrap$(org.apache.kafkaesqueesqueesque.common.security.authenticator.SaslClientAuthenticator,byte[])>(v, v);
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 = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.security.PrivilegedActionException)>(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[])>("An error: (\u) occurred when evaluating SASL token received from the Kafka Broker.");
v = staticinvoke <org.apache.kafkaesqueesqueesque.common.security.kerberos.KerberosError: org.apache.kafkaesqueesqueesque.common.security.kerberos.KerberosError fromException(java.lang.Exception)>(v);
v = <org.apache.kafkaesqueesqueesque.common.security.kerberos.KerberosError: org.apache.kafkaesqueesqueesque.common.security.kerberos.KerberosError SERVER_NOT_FOUND>;
if v != v goto label;
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 This may be caused by Java\'s being unable to resolve the Kafka Broker\'s hostname correctly. You may want to try to adding \'-Dsun.net.spi.nameservice.provider.1=dns,sun\' to your client\'s JVMFLAGS environment. Users must configure FQDN of kafka brokers when authenticating using SASL and `socketChannel.socket().getInetAddress().getHostName()` must match the hostname in `principal/hostname@realm`");
label:
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 Kafka Client will go to AUTHENTICATION_FAILED state.");
v = virtualinvoke v.<java.security.PrivilegedActionException: java.lang.Throwable getCause()>();
if v == null goto label;
v = virtualinvoke v.<org.apache.kafkaesqueesqueesque.common.security.kerberos.KerberosError: boolean retriable()>();
if v == 0 goto label;
v = new javax.security.sasl.SaslException;
specialinvoke v.<javax.security.sasl.SaslException: void <init>(java.lang.String,java.lang.Throwable)>(v, v);
throw v;
label:
v = new org.apache.kafkaesqueesqueesque.common.errors.SaslAuthenticationException;
specialinvoke v.<org.apache.kafkaesqueesqueesque.common.errors.SaslAuthenticationException: void <init>(java.lang.String,java.lang.Throwable)>(v, v);
throw v;
catch java.security.PrivilegedActionException from label to label with label;
catch java.security.PrivilegedActionException from label to label with label;
}
private boolean flushNetOutBuffer() throws java.io.IOException
{
org.apache.kafkaesqueesqueesque.common.security.authenticator.SaslClientAuthenticator v;
org.apache.kafkaesqueesqueesque.common.network.TransportLayer v;
boolean v, v;
org.apache.kafkaesqueesqueesque.common.network.Send v, v, v;
v := @this: org.apache.kafkaesqueesqueesque.common.security.authenticator.SaslClientAuthenticator;
v = v.<org.apache.kafkaesqueesqueesque.common.security.authenticator.SaslClientAuthenticator: org.apache.kafkaesqueesqueesque.common.network.Send netOutBuffer>;
v = interfaceinvoke v.<org.apache.kafkaesqueesqueesque.common.network.Send: boolean completed()>();
if v != 0 goto label;
v = v.<org.apache.kafkaesqueesqueesque.common.security.authenticator.SaslClientAuthenticator: org.apache.kafkaesqueesqueesque.common.network.Send netOutBuffer>;
v = v.<org.apache.kafkaesqueesqueesque.common.security.authenticator.SaslClientAuthenticator: org.apache.kafkaesqueesqueesque.common.network.TransportLayer transportLayer>;
interfaceinvoke v.<org.apache.kafkaesqueesqueesque.common.network.Send: long writeTo(java.nio.channels.GatheringByteChannel)>(v);
label:
v = v.<org.apache.kafkaesqueesqueesque.common.security.authenticator.SaslClientAuthenticator: org.apache.kafkaesqueesqueesque.common.network.Send netOutBuffer>;
v = interfaceinvoke v.<org.apache.kafkaesqueesqueesque.common.network.Send: boolean completed()>();
return v;
}
private org.apache.kafkaesqueesqueesque.common.requests.AbstractResponse receiveKafkaResponse() throws java.io.IOException
{
byte[] v;
org.apache.kafkaesqueesqueesque.common.errors.IllegalSaslStateException v;
org.apache.kafkaesqueesqueesque.common.security.authenticator.SaslClientAuthenticator v;
org.apache.kafkaesqueesqueesque.common.network.NetworkReceive v, v, v;
java.nio.ByteBuffer v, v;
org.apache.kafkaesqueesqueesque.common.requests.AbstractResponse v;
java.lang.String v;
boolean v;
org.slf4j.Logger v;
org.apache.kafkaesqueesqueesque.common.requests.RequestHeader v;
java.lang.RuntimeException v;
org.apache.kafkaesqueesqueesque.common.security.authenticator.SaslClientAuthenticator$SaslState v;
java.util.List v;
org.apache.kafkaesqueesqueesque.common.security.authenticator.SaslClientAuthenticator$ReauthInfo v, v;
v := @this: org.apache.kafkaesqueesqueesque.common.security.authenticator.SaslClientAuthenticator;
v = v.<org.apache.kafkaesqueesqueesque.common.security.authenticator.SaslClientAuthenticator: org.apache.kafkaesqueesqueesque.common.network.NetworkReceive netInBuffer>;
if v != null goto label;
v = new org.apache.kafkaesqueesqueesque.common.network.NetworkReceive;
v = v.<org.apache.kafkaesqueesqueesque.common.security.authenticator.SaslClientAuthenticator: java.lang.String node>;
specialinvoke v.<org.apache.kafkaesqueesqueesque.common.network.NetworkReceive: void <init>(java.lang.String)>(v);
v.<org.apache.kafkaesqueesqueesque.common.security.authenticator.SaslClientAuthenticator: org.apache.kafkaesqueesqueesque.common.network.NetworkReceive netInBuffer> = v;
label:
v = v.<org.apache.kafkaesqueesqueesque.common.security.authenticator.SaslClientAuthenticator: org.apache.kafkaesqueesqueesque.common.network.NetworkReceive netInBuffer>;
label:
v = specialinvoke v.<org.apache.kafkaesqueesqueesque.common.security.authenticator.SaslClientAuthenticator: byte[] receiveResponseOrToken()>();
if v != null goto label;
label:
return null;
label:
v = staticinvoke <java.nio.ByteBuffer: java.nio.ByteBuffer wrap(byte[])>(v);
v = v.<org.apache.kafkaesqueesqueesque.common.security.authenticator.SaslClientAuthenticator: org.apache.kafkaesqueesqueesque.common.requests.RequestHeader currentRequestHeader>;
v = staticinvoke <org.apache.kafkaesqueesqueesque.clients.NetworkClient: org.apache.kafkaesqueesqueesque.common.requests.AbstractResponse parseResponse(java.nio.ByteBuffer,org.apache.kafkaesqueesqueesque.common.requests.RequestHeader)>(v, v);
v.<org.apache.kafkaesqueesqueesque.common.security.authenticator.SaslClientAuthenticator: org.apache.kafkaesqueesqueesque.common.requests.RequestHeader currentRequestHeader> = null;
label:
return v;
label:
v := @caughtexception;
v = v.<org.apache.kafkaesqueesqueesque.common.security.authenticator.SaslClientAuthenticator: org.apache.kafkaesqueesqueesque.common.security.authenticator.SaslClientAuthenticator$ReauthInfo reauthInfo>;
v = virtualinvoke v.<org.apache.kafkaesqueesqueesque.common.security.authenticator.SaslClientAuthenticator$ReauthInfo: boolean reauthenticating()>();
if v == 0 goto label;
v = virtualinvoke v.<org.apache.kafkaesqueesqueesque.common.network.NetworkReceive: java.nio.ByteBuffer payload()>();
virtualinvoke v.<java.nio.ByteBuffer: java.nio.ByteBuffer rewind()>();
v = v.<org.apache.kafkaesqueesqueesque.common.security.authenticator.SaslClientAuthenticator: org.apache.kafkaesqueesqueesque.common.security.authenticator.SaslClientAuthenticator$ReauthInfo reauthInfo>;
v = v.<org.apache.kafkaesqueesqueesque.common.security.authenticator.SaslClientAuthenticator$ReauthInfo: java.util.List pendingAuthenticatedReceives>;
interfaceinvoke v.<java.util.List: boolean add(java.lang.Object)>(v);
return null;
label:
v = v.<org.apache.kafkaesqueesqueesque.common.security.authenticator.SaslClientAuthenticator: org.slf4j.Logger log>;
interfaceinvoke v.<org.slf4j.Logger: void debug(java.lang.String)>("Invalid SASL mechanism response, server may be expecting only GSSAPI tokens");
v = <org.apache.kafkaesqueesqueesque.common.security.authenticator.SaslClientAuthenticator$SaslState: org.apache.kafkaesqueesqueesque.common.security.authenticator.SaslClientAuthenticator$SaslState FAILED>;
specialinvoke v.<org.apache.kafkaesqueesqueesque.common.security.authenticator.SaslClientAuthenticator: void setSaslState(org.apache.kafkaesqueesqueesque.common.security.authenticator.SaslClientAuthenticator$SaslState)>(v);
v = new org.apache.kafkaesqueesqueesque.common.errors.IllegalSaslStateException;
specialinvoke v.<org.apache.kafkaesqueesqueesque.common.errors.IllegalSaslStateException: void <init>(java.lang.String,java.lang.Throwable)>("Invalid SASL mechanism response, server may be expecting a different protocol", v);
throw v;
catch org.apache.kafkaesqueesqueesque.common.protocol.types.SchemaException from label to label with label;
catch java.lang.IllegalArgumentException from label to label with label;
catch org.apache.kafkaesqueesqueesque.common.protocol.types.SchemaException from label to label with label;
catch java.lang.IllegalArgumentException from label to label with label;
}
private void handleSaslHandshakeResponse(org.apache.kafkaesqueesqueesque.common.requests.SaslHandshakeResponse)
{
org.apache.kafkaesqueesqueesque.common.errors.IllegalSaslStateException v, v;
org.apache.kafkaesqueesqueesque.common.protocol.Errors v, v, v;
java.lang.Object[] v, v, v;
org.apache.kafkaesqueesqueesque.common.security.authenticator.SaslClientAuthenticator v;
org.apache.kafkaesqueesqueesque.common.errors.UnsupportedSaslMechanismException v;
org.apache.kafkaesqueesqueesque.common.requests.SaslHandshakeResponse v;
int[] v;
int v, v;
java.lang.String v, v, v, v, v, v;
org.apache.kafkaesqueesqueesque.common.security.authenticator.SaslClientAuthenticator$SaslState v;
java.util.List v, v, v;
v := @this: org.apache.kafkaesqueesqueesque.common.security.authenticator.SaslClientAuthenticator;
v := @parameter: org.apache.kafkaesqueesqueesque.common.requests.SaslHandshakeResponse;
v = virtualinvoke v.<org.apache.kafkaesqueesqueesque.common.requests.SaslHandshakeResponse: org.apache.kafkaesqueesqueesque.common.protocol.Errors error()>();
v = <org.apache.kafkaesqueesqueesque.common.protocol.Errors: org.apache.kafkaesqueesqueesque.common.protocol.Errors NONE>;
if v == v goto label;
v = <org.apache.kafkaesqueesqueesque.common.security.authenticator.SaslClientAuthenticator$SaslState: org.apache.kafkaesqueesqueesque.common.security.authenticator.SaslClientAuthenticator$SaslState FAILED>;
specialinvoke v.<org.apache.kafkaesqueesqueesque.common.security.authenticator.SaslClientAuthenticator: void setSaslState(org.apache.kafkaesqueesqueesque.common.security.authenticator.SaslClientAuthenticator$SaslState)>(v);
label:
v = <org.apache.kafkaesqueesqueesque.common.security.authenticator.SaslClientAuthenticator$1: int[] $SwitchMap$org$apache$kafka$common$protocol$Errors>;
v = virtualinvoke v.<org.apache.kafkaesqueesqueesque.common.protocol.Errors: int ordinal()>();
v = v[v];
tableswitch(v)
{
case 1: goto label;
case 2: goto label;
case 3: goto label;
default: goto label;
};
label:
v = new org.apache.kafkaesqueesqueesque.common.errors.UnsupportedSaslMechanismException;
v = newarray (java.lang.Object)[2];
v = v.<org.apache.kafkaesqueesqueesque.common.security.authenticator.SaslClientAuthenticator: java.lang.String mechanism>;
v[0] = v;
v = virtualinvoke v.<org.apache.kafkaesqueesqueesque.common.requests.SaslHandshakeResponse: java.util.List enabledMechanisms()>();
v[1] = v;
v = staticinvoke <java.lang.String: java.lang.String format(java.lang.String,java.lang.Object[])>("Client SASL mechanism \'%s\' not enabled in the server, enabled mechanisms are %s", v);
specialinvoke v.<org.apache.kafkaesqueesqueesque.common.errors.UnsupportedSaslMechanismException: void <init>(java.lang.String)>(v);
throw v;
label:
v = new org.apache.kafkaesqueesqueesque.common.errors.IllegalSaslStateException;
v = newarray (java.lang.Object)[2];
v = v.<org.apache.kafkaesqueesqueesque.common.security.authenticator.SaslClientAuthenticator: java.lang.String mechanism>;
v[0] = v;
v = virtualinvoke v.<org.apache.kafkaesqueesqueesque.common.requests.SaslHandshakeResponse: java.util.List enabledMechanisms()>();
v[1] = v;
v = staticinvoke <java.lang.String: java.lang.String format(java.lang.String,java.lang.Object[])>("Unexpected handshake request with client mechanism %s, enabled mechanisms are %s", v);
specialinvoke v.<org.apache.kafkaesqueesqueesque.common.errors.IllegalSaslStateException: void <init>(java.lang.String)>(v);
throw v;
label:
v = new org.apache.kafkaesqueesqueesque.common.errors.IllegalSaslStateException;
v = newarray (java.lang.Object)[3];
v = virtualinvoke v.<org.apache.kafkaesqueesqueesque.common.requests.SaslHandshakeResponse: org.apache.kafkaesqueesqueesque.common.protocol.Errors error()>();
v[0] = v;
v = v.<org.apache.kafkaesqueesqueesque.common.security.authenticator.SaslClientAuthenticator: java.lang.String mechanism>;
v[1] = v;
v = virtualinvoke v.<org.apache.kafkaesqueesqueesque.common.requests.SaslHandshakeResponse: java.util.List enabledMechanisms()>();
v[2] = v;
v = staticinvoke <java.lang.String: java.lang.String format(java.lang.String,java.lang.Object[])>("Unknown error code %s, client mechanism is %s, enabled mechanisms are %s", v);
specialinvoke v.<org.apache.kafkaesqueesqueesque.common.errors.IllegalSaslStateException: void <init>(java.lang.String)>(v);
throw v;
label:
return;
}
public static java.lang.String firstPrincipal(javax.security.auth.Subject)
{
java.lang.Throwable v;
java.util.Iterator v;
org.apache.kafkaesqueesqueesque.common.KafkaException v;
java.util.Set v;
javax.security.auth.Subject v;
java.lang.Object v;
java.lang.String v;
boolean v;
v := @parameter: javax.security.auth.Subject;
v = virtualinvoke v.<javax.security.auth.Subject: java.util.Set getPrincipals()>();
entermonitor v;
label:
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 = interfaceinvoke v.<java.security.Principal: java.lang.String getName()>();
exitmonitor v;
label:
return v;
label:
v = new org.apache.kafkaesqueesqueesque.common.KafkaException;
specialinvoke v.<org.apache.kafkaesqueesqueesque.common.KafkaException: void <init>(java.lang.String)>("Principal could not be determined from Subject, this may be a transient failure due to Kerberos re-login");
throw v;
label:
v := @caughtexception;
exitmonitor v;
throw v;
catch java.lang.Throwable from label to label with label;
}
static void <clinit>()
{
java.util.Random v;
v = new java.util.Random;
specialinvoke v.<java.util.Random: void <init>()>();
<org.apache.kafkaesqueesqueesque.common.security.authenticator.SaslClientAuthenticator: java.util.Random RNG> = v;
return;
}
}