public class org.apache.kafkaesqueesqueesque.common.security.plain.internals.PlainSaslServer extends java.lang.Object implements javax.security.sasl.SaslServer
{
public static final java.lang.String PLAIN_MECHANISM;
private final javax.security.auth.callback.CallbackHandler callbackHandler;
private boolean complete;
private java.lang.String authorizationId;
public void <init>(javax.security.auth.callback.CallbackHandler)
{
org.apache.kafkaesqueesqueesque.common.security.plain.internals.PlainSaslServer v;
javax.security.auth.callback.CallbackHandler v;
v := @this: org.apache.kafkaesqueesqueesque.common.security.plain.internals.PlainSaslServer;
v := @parameter: javax.security.auth.callback.CallbackHandler;
specialinvoke v.<java.lang.Object: void <init>()>();
v.<org.apache.kafkaesqueesqueesque.common.security.plain.internals.PlainSaslServer: javax.security.auth.callback.CallbackHandler callbackHandler> = v;
return;
}
public byte[] evaluateResponse(byte[]) throws org.apache.kafkaesqueesqueesque.common.errors.SaslAuthenticationException
{
java.lang.Throwable v;
byte[] v, v;
org.apache.kafkaesqueesqueesque.common.errors.SaslAuthenticationException v, v, v, v, v;
javax.security.auth.callback.Callback[] v;
javax.security.auth.callback.CallbackHandler v;
java.nio.charset.Charset v;
org.apache.kafkaesqueesqueesque.common.security.plain.PlainAuthenticateCallback v;
java.lang.String v;
boolean v, v, v, v, v;
org.apache.kafkaesqueesqueesque.common.security.plain.internals.PlainSaslServer v;
java.util.List v;
javax.security.auth.callback.NameCallback v;
char[] v;
java.lang.Object v, v, v;
v := @this: org.apache.kafkaesqueesqueesque.common.security.plain.internals.PlainSaslServer;
v := @parameter: byte[];
v = new java.lang.String;
v = <java.nio.charset.StandardCharsets: java.nio.charset.Charset UTF_8>;
specialinvoke v.<java.lang.String: void <init>(byte[],java.nio.charset.Charset)>(v, v);
v = specialinvoke v.<org.apache.kafkaesqueesqueesque.common.security.plain.internals.PlainSaslServer: java.util.List extractTokens(java.lang.String)>(v);
v = interfaceinvoke v.<java.util.List: java.lang.Object get(int)>(0);
v = interfaceinvoke v.<java.util.List: java.lang.Object get(int)>(1);
v = interfaceinvoke v.<java.util.List: java.lang.Object get(int)>(2);
v = virtualinvoke v.<java.lang.String: boolean isEmpty()>();
if v == 0 goto label;
v = new org.apache.kafkaesqueesqueesque.common.errors.SaslAuthenticationException;
specialinvoke v.<org.apache.kafkaesqueesqueesque.common.errors.SaslAuthenticationException: void <init>(java.lang.String)>("Authentication failed: username not specified");
throw v;
label:
v = virtualinvoke v.<java.lang.String: boolean isEmpty()>();
if v == 0 goto label;
v = new org.apache.kafkaesqueesqueesque.common.errors.SaslAuthenticationException;
specialinvoke v.<org.apache.kafkaesqueesqueesque.common.errors.SaslAuthenticationException: void <init>(java.lang.String)>("Authentication failed: password not specified");
throw v;
label:
v = new javax.security.auth.callback.NameCallback;
specialinvoke v.<javax.security.auth.callback.NameCallback: void <init>(java.lang.String,java.lang.String)>("username", v);
v = new org.apache.kafkaesqueesqueesque.common.security.plain.PlainAuthenticateCallback;
v = virtualinvoke v.<java.lang.String: char[] toCharArray()>();
specialinvoke v.<org.apache.kafkaesqueesqueesque.common.security.plain.PlainAuthenticateCallback: void <init>(char[])>(v);
label:
v = v.<org.apache.kafkaesqueesqueesque.common.security.plain.internals.PlainSaslServer: javax.security.auth.callback.CallbackHandler callbackHandler>;
v = newarray (javax.security.auth.callback.Callback)[2];
v[0] = v;
v[1] = v;
interfaceinvoke v.<javax.security.auth.callback.CallbackHandler: void handle(javax.security.auth.callback.Callback[])>(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)>("Authentication failed: credentials for user could not be verified", v);
throw v;
label:
v = virtualinvoke v.<org.apache.kafkaesqueesqueesque.common.security.plain.PlainAuthenticateCallback: boolean authenticated()>();
if v != 0 goto label;
v = new org.apache.kafkaesqueesqueesque.common.errors.SaslAuthenticationException;
specialinvoke v.<org.apache.kafkaesqueesqueesque.common.errors.SaslAuthenticationException: void <init>(java.lang.String)>("Authentication failed: Invalid username or password");
throw v;
label:
v = virtualinvoke v.<java.lang.String: boolean isEmpty()>();
if v != 0 goto label;
v = virtualinvoke v.<java.lang.String: boolean equals(java.lang.Object)>(v);
if v != 0 goto label;
v = new org.apache.kafkaesqueesqueesque.common.errors.SaslAuthenticationException;
specialinvoke v.<org.apache.kafkaesqueesqueesque.common.errors.SaslAuthenticationException: void <init>(java.lang.String)>("Authentication failed: Client requested an authorization id that is different from username");
throw v;
label:
v.<org.apache.kafkaesqueesqueesque.common.security.plain.internals.PlainSaslServer: java.lang.String authorizationId> = v;
v.<org.apache.kafkaesqueesqueesque.common.security.plain.internals.PlainSaslServer: boolean complete> = 1;
v = newarray (byte)[0];
return v;
catch java.lang.Throwable from label to label with label;
}
private java.util.List extractTokens(java.lang.String)
{
org.apache.kafkaesqueesqueesque.common.errors.SaslAuthenticationException v;
org.apache.kafkaesqueesqueesque.common.security.plain.internals.PlainSaslServer v;
java.util.ArrayList v;
int v, v, v, v, v, v;
java.lang.String v, v, v, v;
v := @this: org.apache.kafkaesqueesqueesque.common.security.plain.internals.PlainSaslServer;
v := @parameter: java.lang.String;
v = new java.util.ArrayList;
specialinvoke v.<java.util.ArrayList: void <init>()>();
v = 0;
v = 0;
label:
if v >= 4 goto label;
v = virtualinvoke v.<java.lang.String: int indexOf(java.lang.String,int)>("\u0000", v);
v = (int) -1;
if v != v goto label;
v = virtualinvoke v.<java.lang.String: java.lang.String substring(int)>(v);
interfaceinvoke v.<java.util.List: boolean add(java.lang.Object)>(v);
goto label;
label:
v = virtualinvoke v.<java.lang.String: java.lang.String substring(int,int)>(v, v);
interfaceinvoke v.<java.util.List: boolean add(java.lang.Object)>(v);
v = v + 1;
v = v + 1;
goto label;
label:
v = interfaceinvoke v.<java.util.List: int size()>();
if v == 3 goto label;
v = new org.apache.kafkaesqueesqueesque.common.errors.SaslAuthenticationException;
v = interfaceinvoke v.<java.util.List: int size()>();
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (int)>(v) <java.lang.invoke.StringConcatFactory: java.lang.invoke.CallSite makeConcatWithConstants(java.lang.invoke.MethodHandles$Lookup,java.lang.String,java.lang.invoke.MethodType,java.lang.String,java.lang.Object[])>("Invalid SASL/PLAIN response: expected 3 tokens, got \u0001");
specialinvoke v.<org.apache.kafkaesqueesqueesque.common.errors.SaslAuthenticationException: void <init>(java.lang.String)>(v);
throw v;
label:
return v;
}
public java.lang.String getAuthorizationID()
{
java.lang.IllegalStateException v;
org.apache.kafkaesqueesqueesque.common.security.plain.internals.PlainSaslServer v;
java.lang.String v;
boolean v;
v := @this: org.apache.kafkaesqueesqueesque.common.security.plain.internals.PlainSaslServer;
v = v.<org.apache.kafkaesqueesqueesque.common.security.plain.internals.PlainSaslServer: boolean complete>;
if v != 0 goto label;
v = new java.lang.IllegalStateException;
specialinvoke v.<java.lang.IllegalStateException: void <init>(java.lang.String)>("Authentication exchange has not completed");
throw v;
label:
v = v.<org.apache.kafkaesqueesqueesque.common.security.plain.internals.PlainSaslServer: java.lang.String authorizationId>;
return v;
}
public java.lang.String getMechanismName()
{
org.apache.kafkaesqueesqueesque.common.security.plain.internals.PlainSaslServer v;
v := @this: org.apache.kafkaesqueesqueesque.common.security.plain.internals.PlainSaslServer;
return "PLAIN";
}
public java.lang.Object getNegotiatedProperty(java.lang.String)
{
java.lang.IllegalStateException v;
org.apache.kafkaesqueesqueesque.common.security.plain.internals.PlainSaslServer v;
java.lang.String v;
boolean v;
v := @this: org.apache.kafkaesqueesqueesque.common.security.plain.internals.PlainSaslServer;
v := @parameter: java.lang.String;
v = v.<org.apache.kafkaesqueesqueesque.common.security.plain.internals.PlainSaslServer: boolean complete>;
if v != 0 goto label;
v = new java.lang.IllegalStateException;
specialinvoke v.<java.lang.IllegalStateException: void <init>(java.lang.String)>("Authentication exchange has not completed");
throw v;
label:
return null;
}
public boolean isComplete()
{
org.apache.kafkaesqueesqueesque.common.security.plain.internals.PlainSaslServer v;
boolean v;
v := @this: org.apache.kafkaesqueesqueesque.common.security.plain.internals.PlainSaslServer;
v = v.<org.apache.kafkaesqueesqueesque.common.security.plain.internals.PlainSaslServer: boolean complete>;
return v;
}
public byte[] unwrap(byte[], int, int)
{
byte[] v, v;
java.lang.IllegalStateException v;
org.apache.kafkaesqueesqueesque.common.security.plain.internals.PlainSaslServer v;
int v, v, v;
boolean v;
v := @this: org.apache.kafkaesqueesqueesque.common.security.plain.internals.PlainSaslServer;
v := @parameter: byte[];
v := @parameter: int;
v := @parameter: int;
v = v.<org.apache.kafkaesqueesqueesque.common.security.plain.internals.PlainSaslServer: boolean complete>;
if v != 0 goto label;
v = new java.lang.IllegalStateException;
specialinvoke v.<java.lang.IllegalStateException: void <init>(java.lang.String)>("Authentication exchange has not completed");
throw v;
label:
v = v + v;
v = staticinvoke <java.util.Arrays: byte[] copyOfRange(byte[],int,int)>(v, v, v);
return v;
}
public byte[] wrap(byte[], int, int)
{
byte[] v, v;
java.lang.IllegalStateException v;
org.apache.kafkaesqueesqueesque.common.security.plain.internals.PlainSaslServer v;
int v, v, v;
boolean v;
v := @this: org.apache.kafkaesqueesqueesque.common.security.plain.internals.PlainSaslServer;
v := @parameter: byte[];
v := @parameter: int;
v := @parameter: int;
v = v.<org.apache.kafkaesqueesqueesque.common.security.plain.internals.PlainSaslServer: boolean complete>;
if v != 0 goto label;
v = new java.lang.IllegalStateException;
specialinvoke v.<java.lang.IllegalStateException: void <init>(java.lang.String)>("Authentication exchange has not completed");
throw v;
label:
v = v + v;
v = staticinvoke <java.util.Arrays: byte[] copyOfRange(byte[],int,int)>(v, v, v);
return v;
}
public void dispose()
{
org.apache.kafkaesqueesqueesque.common.security.plain.internals.PlainSaslServer v;
v := @this: org.apache.kafkaesqueesqueesque.common.security.plain.internals.PlainSaslServer;
return;
}
}