public class oadd.org.apache.drill.exec.rpc.user.security.VaultUserAuthenticator extends java.lang.Object implements oadd.org.apache.drill.exec.rpc.user.security.UserAuthenticator
{
private static final org.slf4j.Logger logger;
public static final java.lang.String VAULT_ADDRESS;
public static final java.lang.String VAULT_AUTH_METHOD;
private com.bettercloud.vault.VaultConfig vaultConfig;
private com.bettercloud.vault.Vault vault;
private oadd.org.apache.drill.exec.rpc.user.security.VaultUserAuthenticator$VaultAuthMethod authMethod;
public void <init>()
{
oadd.org.apache.drill.exec.rpc.user.security.VaultUserAuthenticator v;
v := @this: oadd.org.apache.drill.exec.rpc.user.security.VaultUserAuthenticator;
specialinvoke v.<java.lang.Object: void <init>()>();
return;
}
public void setup(oadd.org.apache.drill.common.config.DrillConfig) throws oadd.org.apache.drill.exec.exception.DrillbitStartupException
{
java.lang.Throwable v;
java.lang.Object[] v, v, v;
oadd.org.apache.drill.common.config.DrillConfig v;
oadd.org.apache.drill.exec.exception.DrillbitStartupException v;
java.lang.CharSequence[] v;
com.bettercloud.vault.Vault v;
oadd.org.apache.drill.exec.rpc.user.security.VaultUserAuthenticator v;
java.lang.String v, v, v, v, v, v, v, v;
com.bettercloud.vault.VaultConfig v, v, v, v;
org.slf4j.Logger v, v;
oadd.org.apache.drill.exec.rpc.user.security.VaultUserAuthenticator$VaultAuthMethod v, v, v;
java.lang.Object v, v;
v := @this: oadd.org.apache.drill.exec.rpc.user.security.VaultUserAuthenticator;
v := @parameter: oadd.org.apache.drill.common.config.DrillConfig;
v = virtualinvoke v.<oadd.org.apache.drill.common.config.DrillConfig: java.lang.String getString(java.lang.String)>("drill.exec.security.user.auth.vault.address");
v = newarray (java.lang.Object)[1];
v[0] = "drill.exec.security.user.auth.vault.address";
v = staticinvoke <java.lang.String: java.lang.String format(java.lang.String,java.lang.Object[])>("Vault address BOOT option is not specified. Please set [%s] config option.", v);
v = staticinvoke <java.util.Objects: java.lang.Object requireNonNull(java.lang.Object,java.lang.String)>(v, v);
v = virtualinvoke v.<oadd.org.apache.drill.common.config.DrillConfig: java.lang.String getString(java.lang.String)>("drill.exec.security.user.auth.vault.method");
v = newarray (java.lang.Object)[1];
v[0] = "drill.exec.security.user.auth.vault.method";
v = staticinvoke <java.lang.String: java.lang.String format(java.lang.String,java.lang.Object[])>("Vault auth method is not specified. Please set [%s] config option.", v);
v = staticinvoke <java.util.Objects: java.lang.Object requireNonNull(java.lang.Object,java.lang.String)>(v, v);
v = staticinvoke <oadd.org.apache.drill.exec.rpc.user.security.VaultUserAuthenticator$VaultAuthMethod: oadd.org.apache.drill.exec.rpc.user.security.VaultUserAuthenticator$VaultAuthMethod valueOf(java.lang.String)>(v);
v.<oadd.org.apache.drill.exec.rpc.user.security.VaultUserAuthenticator: oadd.org.apache.drill.exec.rpc.user.security.VaultUserAuthenticator$VaultAuthMethod authMethod> = v;
v = new com.bettercloud.vault.VaultConfig;
specialinvoke v.<com.bettercloud.vault.VaultConfig: void <init>()>();
v = virtualinvoke v.<com.bettercloud.vault.VaultConfig: com.bettercloud.vault.VaultConfig address(java.lang.String)>(v);
label:
v = <oadd.org.apache.drill.exec.rpc.user.security.VaultUserAuthenticator: org.slf4j.Logger logger>;
v = v.<oadd.org.apache.drill.exec.rpc.user.security.VaultUserAuthenticator: oadd.org.apache.drill.exec.rpc.user.security.VaultUserAuthenticator$VaultAuthMethod authMethod>;
interfaceinvoke v.<org.slf4j.Logger: void debug(java.lang.String,java.lang.Object,java.lang.Object)>("Tries to init a Vault client with Vault addr = {}, auth method = {}", v, v);
v = virtualinvoke v.<com.bettercloud.vault.VaultConfig: com.bettercloud.vault.VaultConfig build()>();
v.<oadd.org.apache.drill.exec.rpc.user.security.VaultUserAuthenticator: com.bettercloud.vault.VaultConfig vaultConfig> = v;
v = new com.bettercloud.vault.Vault;
v = v.<oadd.org.apache.drill.exec.rpc.user.security.VaultUserAuthenticator: com.bettercloud.vault.VaultConfig vaultConfig>;
specialinvoke v.<com.bettercloud.vault.Vault: void <init>(com.bettercloud.vault.VaultConfig)>(v);
v.<oadd.org.apache.drill.exec.rpc.user.security.VaultUserAuthenticator: com.bettercloud.vault.Vault vault> = v;
label:
goto label;
label:
v := @caughtexception;
v = <oadd.org.apache.drill.exec.rpc.user.security.VaultUserAuthenticator: org.slf4j.Logger logger>;
v = staticinvoke <java.lang.System: java.lang.String lineSeparator()>();
v = newarray (java.lang.CharSequence)[3];
v[0] = "Error initialising the Vault client library using configuration: ";
v[1] = "\tvaultAddress: {}";
v[2] = "\tauthMethod: {}";
v = staticinvoke <java.lang.String: java.lang.String join(java.lang.CharSequence,java.lang.CharSequence[])>(v, v);
v = newarray (java.lang.Object)[3];
v[0] = v;
v = v.<oadd.org.apache.drill.exec.rpc.user.security.VaultUserAuthenticator: oadd.org.apache.drill.exec.rpc.user.security.VaultUserAuthenticator$VaultAuthMethod authMethod>;
v[1] = v;
v[2] = v;
interfaceinvoke v.<org.slf4j.Logger: void error(java.lang.String,java.lang.Object[])>(v, v);
v = new oadd.org.apache.drill.exec.exception.DrillbitStartupException;
v = virtualinvoke v.<com.bettercloud.vault.VaultException: java.lang.String getMessage()>();
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.lang.String)>(v) <java.lang.invoke.StringConcatFactory: java.lang.invoke.CallSite makeConcatWithConstants(java.lang.invoke.MethodHandles$Lookup,java.lang.String,java.lang.invoke.MethodType,java.lang.String,java.lang.Object[])>("Error initialising the Vault client library: \u0001");
specialinvoke v.<oadd.org.apache.drill.exec.exception.DrillbitStartupException: void <init>(java.lang.String,java.lang.Throwable)>(v, v);
throw v;
label:
return;
catch com.bettercloud.vault.VaultException from label to label with label;
}
public void authenticate(java.lang.String, java.lang.String) throws oadd.org.apache.drill.exec.rpc.user.security.UserAuthenticationException
{
oadd.org.apache.drill.exec.rpc.user.security.UserAuthenticationException v, v, v;
int[] v;
boolean v;
com.bettercloud.vault.api.Auth v, v, v, v;
com.bettercloud.vault.response.LookupResponse v;
java.lang.Throwable v;
java.lang.Object[] v, v, v, v;
com.bettercloud.vault.Vault v, v, v, v;
oadd.org.apache.drill.exec.rpc.user.security.VaultUserAuthenticator v;
int v, v;
java.lang.String v, v, v, v, v, v, v, v, v, v;
com.bettercloud.vault.VaultConfig v, v, v, v, v;
org.slf4j.Logger v, v, v;
oadd.org.apache.drill.exec.rpc.user.security.VaultUserAuthenticator$VaultAuthMethod v, v, v, v, v;
v := @this: oadd.org.apache.drill.exec.rpc.user.security.VaultUserAuthenticator;
v := @parameter: java.lang.String;
v := @parameter: java.lang.String;
label:
v = <oadd.org.apache.drill.exec.rpc.user.security.VaultUserAuthenticator: org.slf4j.Logger logger>;
v = v.<oadd.org.apache.drill.exec.rpc.user.security.VaultUserAuthenticator: oadd.org.apache.drill.exec.rpc.user.security.VaultUserAuthenticator$VaultAuthMethod authMethod>;
interfaceinvoke v.<org.slf4j.Logger: void debug(java.lang.String,java.lang.Object,java.lang.Object)>("Tries to authenticate user {} using {}", v, v);
v = <oadd.org.apache.drill.exec.rpc.user.security.VaultUserAuthenticator$1: int[] $SwitchMap$org$apache$drill$exec$rpc$user$security$VaultUserAuthenticator$VaultAuthMethod>;
v = v.<oadd.org.apache.drill.exec.rpc.user.security.VaultUserAuthenticator: oadd.org.apache.drill.exec.rpc.user.security.VaultUserAuthenticator$VaultAuthMethod authMethod>;
v = virtualinvoke v.<oadd.org.apache.drill.exec.rpc.user.security.VaultUserAuthenticator$VaultAuthMethod: int ordinal()>();
v = v[v];
tableswitch(v)
{
case 1: goto label;
case 2: goto label;
case 3: goto label;
case 4: goto label;
default: goto label;
};
label:
v = v.<oadd.org.apache.drill.exec.rpc.user.security.VaultUserAuthenticator: com.bettercloud.vault.Vault vault>;
v = virtualinvoke v.<com.bettercloud.vault.Vault: com.bettercloud.vault.api.Auth auth()>();
virtualinvoke v.<com.bettercloud.vault.api.Auth: com.bettercloud.vault.response.AuthResponse loginByAppRole(java.lang.String,java.lang.String)>(v, v);
goto label;
label:
v = v.<oadd.org.apache.drill.exec.rpc.user.security.VaultUserAuthenticator: com.bettercloud.vault.Vault vault>;
v = virtualinvoke v.<com.bettercloud.vault.Vault: com.bettercloud.vault.api.Auth auth()>();
virtualinvoke v.<com.bettercloud.vault.api.Auth: com.bettercloud.vault.response.AuthResponse loginByLDAP(java.lang.String,java.lang.String)>(v, v);
goto label;
label:
v = v.<oadd.org.apache.drill.exec.rpc.user.security.VaultUserAuthenticator: com.bettercloud.vault.Vault vault>;
v = virtualinvoke v.<com.bettercloud.vault.Vault: com.bettercloud.vault.api.Auth auth()>();
virtualinvoke v.<com.bettercloud.vault.api.Auth: com.bettercloud.vault.response.AuthResponse loginByUserPass(java.lang.String,java.lang.String)>(v, v);
goto label;
label:
v = new com.bettercloud.vault.VaultConfig;
specialinvoke v.<com.bettercloud.vault.VaultConfig: void <init>()>();
v = v.<oadd.org.apache.drill.exec.rpc.user.security.VaultUserAuthenticator: com.bettercloud.vault.VaultConfig vaultConfig>;
v = virtualinvoke v.<com.bettercloud.vault.VaultConfig: java.lang.String getAddress()>();
v = virtualinvoke v.<com.bettercloud.vault.VaultConfig: com.bettercloud.vault.VaultConfig address(java.lang.String)>(v);
v = virtualinvoke v.<com.bettercloud.vault.VaultConfig: com.bettercloud.vault.VaultConfig token(java.lang.String)>(v);
v = virtualinvoke v.<com.bettercloud.vault.VaultConfig: com.bettercloud.vault.VaultConfig build()>();
v = new com.bettercloud.vault.Vault;
specialinvoke v.<com.bettercloud.vault.Vault: void <init>(com.bettercloud.vault.VaultConfig)>(v);
v = virtualinvoke v.<com.bettercloud.vault.Vault: com.bettercloud.vault.api.Auth auth()>();
v = virtualinvoke v.<com.bettercloud.vault.api.Auth: com.bettercloud.vault.response.LookupResponse lookupSelf()>();
v = virtualinvoke v.<com.bettercloud.vault.response.LookupResponse: java.lang.String getPath()>();
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[])>("/\u0001");
v = virtualinvoke v.<java.lang.String: boolean endsWith(java.lang.String)>(v);
if v != 0 goto label;
v = new oadd.org.apache.drill.exec.rpc.user.security.UserAuthenticationException;
v = newarray (java.lang.Object)[2];
v[0] = v;
v = virtualinvoke v.<com.bettercloud.vault.response.LookupResponse: java.lang.String getPath()>();
v[1] = v;
v = staticinvoke <java.lang.String: java.lang.String format(java.lang.String,java.lang.Object[])>("Attempted to authenticate user %s with a Vault token that is  valid but has path %s!", v);
specialinvoke v.<oadd.org.apache.drill.exec.rpc.user.security.UserAuthenticationException: void <init>(java.lang.String)>(v);
throw v;
label:
v = new oadd.org.apache.drill.exec.rpc.user.security.UserAuthenticationException;
v = newarray (java.lang.Object)[1];
v = v.<oadd.org.apache.drill.exec.rpc.user.security.VaultUserAuthenticator: oadd.org.apache.drill.exec.rpc.user.security.VaultUserAuthenticator$VaultAuthMethod authMethod>;
v[0] = v;
v = staticinvoke <java.lang.String: java.lang.String format(java.lang.String,java.lang.Object[])>("The Vault authentication method \'%s\' is not supported", v);
specialinvoke v.<oadd.org.apache.drill.exec.rpc.user.security.UserAuthenticationException: void <init>(java.lang.String)>(v);
throw v;
label:
v := @caughtexception;
v = <oadd.org.apache.drill.exec.rpc.user.security.VaultUserAuthenticator: org.slf4j.Logger logger>;
v = newarray (java.lang.Object)[3];
v[0] = v;
v = v.<oadd.org.apache.drill.exec.rpc.user.security.VaultUserAuthenticator: oadd.org.apache.drill.exec.rpc.user.security.VaultUserAuthenticator$VaultAuthMethod authMethod>;
v[1] = v;
v[2] = v;
interfaceinvoke v.<org.slf4j.Logger: void warn(java.lang.String,java.lang.Object[])>("Failed to authenticate user {} using {}: {}.", v);
v = new oadd.org.apache.drill.exec.rpc.user.security.UserAuthenticationException;
v = newarray (java.lang.Object)[3];
v[0] = v;
v = v.<oadd.org.apache.drill.exec.rpc.user.security.VaultUserAuthenticator: oadd.org.apache.drill.exec.rpc.user.security.VaultUserAuthenticator$VaultAuthMethod authMethod>;
v[1] = v;
v = virtualinvoke v.<com.bettercloud.vault.VaultException: java.lang.String getMessage()>();
v[2] = v;
v = staticinvoke <java.lang.String: java.lang.String format(java.lang.String,java.lang.Object[])>("Failed to authenticate user %s using %s: %s", v);
specialinvoke v.<oadd.org.apache.drill.exec.rpc.user.security.UserAuthenticationException: void <init>(java.lang.String)>(v);
throw v;
label:
v = <oadd.org.apache.drill.exec.rpc.user.security.VaultUserAuthenticator: org.slf4j.Logger logger>;
interfaceinvoke v.<org.slf4j.Logger: void info(java.lang.String,java.lang.Object)>("User {} authenticated against Vault successfully.", v);
return;
catch com.bettercloud.vault.VaultException from label to label with label;
}
public void close() throws java.io.IOException
{
org.slf4j.Logger v;
oadd.org.apache.drill.exec.rpc.user.security.VaultUserAuthenticator v;
v := @this: oadd.org.apache.drill.exec.rpc.user.security.VaultUserAuthenticator;
v.<oadd.org.apache.drill.exec.rpc.user.security.VaultUserAuthenticator: com.bettercloud.vault.Vault vault> = null;
v = <oadd.org.apache.drill.exec.rpc.user.security.VaultUserAuthenticator: org.slf4j.Logger logger>;
interfaceinvoke v.<org.slf4j.Logger: void debug(java.lang.String)>("Has been closed.");
return;
}
public boolean equals(java.lang.Object)
{
com.bettercloud.vault.VaultConfig v, v;
oadd.org.apache.drill.exec.rpc.user.security.VaultUserAuthenticator$VaultAuthMethod v, v;
com.bettercloud.vault.Vault v, v;
oadd.org.apache.drill.exec.rpc.user.security.VaultUserAuthenticator v;
java.lang.Class v, v;
java.lang.Object v;
boolean v, v, v;
v := @this: oadd.org.apache.drill.exec.rpc.user.security.VaultUserAuthenticator;
v := @parameter: java.lang.Object;
if v != v goto label;
return 1;
label:
if v == null goto label;
v = virtualinvoke v.<java.lang.Object: java.lang.Class getClass()>();
v = virtualinvoke v.<java.lang.Object: java.lang.Class getClass()>();
if v == v goto label;
label:
return 0;
label:
v = v.<oadd.org.apache.drill.exec.rpc.user.security.VaultUserAuthenticator: com.bettercloud.vault.VaultConfig vaultConfig>;
v = v.<oadd.org.apache.drill.exec.rpc.user.security.VaultUserAuthenticator: com.bettercloud.vault.VaultConfig vaultConfig>;
v = staticinvoke <java.util.Objects: boolean equals(java.lang.Object,java.lang.Object)>(v, v);
if v == 0 goto label;
v = v.<oadd.org.apache.drill.exec.rpc.user.security.VaultUserAuthenticator: com.bettercloud.vault.Vault vault>;
v = v.<oadd.org.apache.drill.exec.rpc.user.security.VaultUserAuthenticator: com.bettercloud.vault.Vault vault>;
v = staticinvoke <java.util.Objects: boolean equals(java.lang.Object,java.lang.Object)>(v, v);
if v == 0 goto label;
v = v.<oadd.org.apache.drill.exec.rpc.user.security.VaultUserAuthenticator: oadd.org.apache.drill.exec.rpc.user.security.VaultUserAuthenticator$VaultAuthMethod authMethod>;
v = v.<oadd.org.apache.drill.exec.rpc.user.security.VaultUserAuthenticator: oadd.org.apache.drill.exec.rpc.user.security.VaultUserAuthenticator$VaultAuthMethod authMethod>;
if v != v goto label;
v = 1;
goto label;
label:
v = 0;
label:
return v;
}
public int hashCode()
{
com.bettercloud.vault.VaultConfig v;
java.lang.Object[] v;
com.bettercloud.vault.Vault v;
oadd.org.apache.drill.exec.rpc.user.security.VaultUserAuthenticator v;
int v;
oadd.org.apache.drill.exec.rpc.user.security.VaultUserAuthenticator$VaultAuthMethod v;
v := @this: oadd.org.apache.drill.exec.rpc.user.security.VaultUserAuthenticator;
v = newarray (java.lang.Object)[3];
v = v.<oadd.org.apache.drill.exec.rpc.user.security.VaultUserAuthenticator: com.bettercloud.vault.VaultConfig vaultConfig>;
v[0] = v;
v = v.<oadd.org.apache.drill.exec.rpc.user.security.VaultUserAuthenticator: com.bettercloud.vault.Vault vault>;
v[1] = v;
v = v.<oadd.org.apache.drill.exec.rpc.user.security.VaultUserAuthenticator: oadd.org.apache.drill.exec.rpc.user.security.VaultUserAuthenticator$VaultAuthMethod authMethod>;
v[2] = v;
v = staticinvoke <java.util.Objects: int hash(java.lang.Object[])>(v);
return v;
}
static void <clinit>()
{
org.slf4j.Logger v;
v = staticinvoke <org.slf4j.LoggerFactory: org.slf4j.Logger getLogger(java.lang.Class)>(class "Loadd/org/apache/drill/exec/rpc/user/security/VaultUserAuthenticator;");
<oadd.org.apache.drill.exec.rpc.user.security.VaultUserAuthenticator: org.slf4j.Logger logger> = v;
return;
}
}