public abstract class oadd.org.apache.drill.exec.rpc.BitConnectionConfig extends oadd.org.apache.drill.exec.rpc.AbstractConnectionConfig
{
private static final org.slf4j.Logger logger;
private final java.lang.String authMechanismToUse;
private final boolean useLoginPrincipal;
protected void <init>(oadd.org.apache.drill.exec.memory.BufferAllocator, oadd.org.apache.drill.exec.server.BootStrapContext) throws oadd.org.apache.drill.exec.exception.DrillbitStartupException
{
java.lang.Object[] v, v;
oadd.org.apache.drill.common.config.DrillConfig v;
javax.security.sasl.SaslException v;
java.lang.Integer v, v, v;
oadd.org.apache.drill.exec.exception.DrillbitStartupException v, v, v;
oadd.org.apache.drill.exec.rpc.BitConnectionConfig v;
oadd.org.apache.drill.exec.rpc.security.AuthenticatorProvider v;
int v;
java.lang.String v, v, v, v, v, v, v;
boolean v, v, v, v;
org.slf4j.Logger v, v;
oadd.org.apache.drill.exec.server.BootStrapContext v;
oadd.org.apache.drill.exec.rpc.EncryptionContext v, v, v;
oadd.org.apache.drill.exec.memory.BufferAllocator v;
v := @this: oadd.org.apache.drill.exec.rpc.BitConnectionConfig;
v := @parameter: oadd.org.apache.drill.exec.memory.BufferAllocator;
v := @parameter: oadd.org.apache.drill.exec.server.BootStrapContext;
specialinvoke v.<oadd.org.apache.drill.exec.rpc.AbstractConnectionConfig: void <init>(oadd.org.apache.drill.exec.memory.BufferAllocator,oadd.org.apache.drill.exec.server.BootStrapContext)>(v, v);
v = virtualinvoke v.<oadd.org.apache.drill.exec.server.BootStrapContext: oadd.org.apache.drill.common.config.DrillConfig getConfig()>();
v = virtualinvoke v.<oadd.org.apache.drill.exec.rpc.BitConnectionConfig: oadd.org.apache.drill.exec.rpc.security.AuthenticatorProvider getAuthProvider()>();
v = virtualinvoke v.<oadd.org.apache.drill.common.config.DrillConfig: boolean getBoolean(java.lang.String)>("drill.exec.security.bit.auth.enabled");
if v == 0 goto label;
v = virtualinvoke v.<oadd.org.apache.drill.common.config.DrillConfig: java.lang.String getString(java.lang.String)>("drill.exec.security.bit.auth.mechanism");
v.<oadd.org.apache.drill.exec.rpc.BitConnectionConfig: java.lang.String authMechanismToUse> = v;
label:
v = v.<oadd.org.apache.drill.exec.rpc.BitConnectionConfig: java.lang.String authMechanismToUse>;
interfaceinvoke v.<oadd.org.apache.drill.exec.rpc.security.AuthenticatorProvider: oadd.org.apache.drill.exec.rpc.security.AuthenticatorFactory getAuthenticatorFactory(java.lang.String)>(v);
label:
goto label;
label:
v := @caughtexception;
v = new oadd.org.apache.drill.exec.exception.DrillbitStartupException;
v = newarray (java.lang.Object)[1];
v = v.<oadd.org.apache.drill.exec.rpc.BitConnectionConfig: java.lang.String authMechanismToUse>;
v[0] = v;
v = staticinvoke <java.lang.String: java.lang.String format(java.lang.String,java.lang.Object[])>("\'%s\' mechanism not found for bit-to-bit authentication. Please check authentication configuration.", v);
specialinvoke v.<oadd.org.apache.drill.exec.exception.DrillbitStartupException: void <init>(java.lang.String)>(v);
throw v;
label:
v = v.<oadd.org.apache.drill.exec.rpc.BitConnectionConfig: oadd.org.apache.drill.exec.rpc.EncryptionContext encryptionContext>;
v = virtualinvoke v.<oadd.org.apache.drill.common.config.DrillConfig: boolean getBoolean(java.lang.String)>("drill.exec.security.bit.encryption.sasl.enabled");
interfaceinvoke v.<oadd.org.apache.drill.exec.rpc.EncryptionContext: void setEncryption(boolean)>(v);
v = virtualinvoke v.<oadd.org.apache.drill.common.config.DrillConfig: int getInt(java.lang.String)>("drill.exec.security.bit.encryption.sasl.max_wrapped_size");
if v > 0 goto label;
v = new oadd.org.apache.drill.exec.exception.DrillbitStartupException;
v = newarray (java.lang.Object)[1];
v = staticinvoke <java.lang.Integer: java.lang.Integer valueOf(int)>(16777215);
v[0] = v;
v = staticinvoke <java.lang.String: java.lang.String format(java.lang.String,java.lang.Object[])>("Invalid value configured for bit.encryption.sasl.max_wrapped_size. Must be a positive integer in bytes with a recommended max value of %s", v);
specialinvoke v.<oadd.org.apache.drill.exec.exception.DrillbitStartupException: void <init>(java.lang.String)>(v);
throw v;
label:
if v <= 16777215 goto label;
v = <oadd.org.apache.drill.exec.rpc.BitConnectionConfig: org.slf4j.Logger logger>;
v = staticinvoke <java.lang.Integer: java.lang.Integer valueOf(int)>(v);
v = staticinvoke <java.lang.Integer: java.lang.Integer valueOf(int)>(16777215);
interfaceinvoke v.<org.slf4j.Logger: void warn(java.lang.String,java.lang.Object,java.lang.Object)>("The configured value of bit.encryption.sasl.max_wrapped_size: {} is too big. This may cause higher memory pressure. [Details: Recommended max value is {}]", v, v);
label:
v = v.<oadd.org.apache.drill.exec.rpc.BitConnectionConfig: oadd.org.apache.drill.exec.rpc.EncryptionContext encryptionContext>;
interfaceinvoke v.<oadd.org.apache.drill.exec.rpc.EncryptionContext: void setMaxWrappedSize(int)>(v);
v = <oadd.org.apache.drill.exec.rpc.BitConnectionConfig: org.slf4j.Logger logger>;
v = v.<oadd.org.apache.drill.exec.rpc.BitConnectionConfig: java.lang.String authMechanismToUse>;
v = v.<oadd.org.apache.drill.exec.rpc.BitConnectionConfig: oadd.org.apache.drill.exec.rpc.EncryptionContext encryptionContext>;
v = interfaceinvoke v.<oadd.org.apache.drill.exec.rpc.EncryptionContext: java.lang.String getEncryptionCtxtString()>();
interfaceinvoke v.<org.slf4j.Logger: void info(java.lang.String,java.lang.Object,java.lang.Object)>("Configured bit-to-bit connections to require authentication using: {} with encryption: {}", v, v);
goto label;
label:
v = virtualinvoke v.<oadd.org.apache.drill.common.config.DrillConfig: boolean getBoolean(java.lang.String)>("drill.exec.security.bit.encryption.sasl.enabled");
if v == 0 goto label;
v = new oadd.org.apache.drill.exec.exception.DrillbitStartupException;
specialinvoke v.<oadd.org.apache.drill.exec.exception.DrillbitStartupException: void <init>(java.lang.String)>("Invalid security configuration. Encryption using SASL is enabled with authentication disabled. Please check the security.bit configurations.");
throw v;
label:
v.<oadd.org.apache.drill.exec.rpc.BitConnectionConfig: java.lang.String authMechanismToUse> = null;
label:
v = virtualinvoke v.<oadd.org.apache.drill.common.config.DrillConfig: boolean getBoolean(java.lang.String)>("drill.exec.security.bit.auth.use_login_principal");
v.<oadd.org.apache.drill.exec.rpc.BitConnectionConfig: boolean useLoginPrincipal> = v;
return;
catch javax.security.sasl.SaslException from label to label with label;
}
public java.lang.String getAuthMechanismToUse()
{
java.lang.String v;
oadd.org.apache.drill.exec.rpc.BitConnectionConfig v;
v := @this: oadd.org.apache.drill.exec.rpc.BitConnectionConfig;
v = v.<oadd.org.apache.drill.exec.rpc.BitConnectionConfig: java.lang.String authMechanismToUse>;
return v;
}
public oadd.org.apache.drill.exec.rpc.security.AuthenticatorFactory getAuthFactory(java.util.List) throws javax.security.sasl.SaslException
{
java.lang.Object[] v;
javax.security.sasl.SaslException v, v;
oadd.org.apache.drill.exec.rpc.BitConnectionConfig v;
java.util.List v;
oadd.org.apache.drill.exec.rpc.security.AuthenticatorProvider v;
oadd.org.apache.drill.exec.rpc.security.AuthenticatorFactory v;
java.lang.String v, v, v, v, v;
boolean v;
v := @this: oadd.org.apache.drill.exec.rpc.BitConnectionConfig;
v := @parameter: java.util.List;
v = v.<oadd.org.apache.drill.exec.rpc.BitConnectionConfig: java.lang.String authMechanismToUse>;
if v != null goto label;
v = new javax.security.sasl.SaslException;
specialinvoke v.<javax.security.sasl.SaslException: void <init>(java.lang.String)>("Authentication is not enabled");
throw v;
label:
v = v.<oadd.org.apache.drill.exec.rpc.BitConnectionConfig: java.lang.String authMechanismToUse>;
v = staticinvoke <oadd.org.apache.drill.exec.rpc.security.AuthStringUtil: boolean listContains(java.util.List,java.lang.String)>(v, v);
if v != 0 goto label;
v = new javax.security.sasl.SaslException;
v = newarray (java.lang.Object)[1];
v = v.<oadd.org.apache.drill.exec.rpc.BitConnectionConfig: java.lang.String authMechanismToUse>;
v[0] = v;
v = staticinvoke <java.lang.String: java.lang.String format(java.lang.String,java.lang.Object[])>("Remote does not support authentication using \'%s\'", v);
specialinvoke v.<javax.security.sasl.SaslException: void <init>(java.lang.String)>(v);
throw v;
label:
v = virtualinvoke v.<oadd.org.apache.drill.exec.rpc.BitConnectionConfig: oadd.org.apache.drill.exec.rpc.security.AuthenticatorProvider getAuthProvider()>();
v = v.<oadd.org.apache.drill.exec.rpc.BitConnectionConfig: java.lang.String authMechanismToUse>;
v = interfaceinvoke v.<oadd.org.apache.drill.exec.rpc.security.AuthenticatorProvider: oadd.org.apache.drill.exec.rpc.security.AuthenticatorFactory getAuthenticatorFactory(java.lang.String)>(v);
return v;
}
public java.util.Map getSaslClientProperties(oadd.org.apache.drill.exec.proto.CoordinationProtos$DrillbitEndpoint, java.util.Map) throws java.io.IOException
{
oadd.org.apache.hadoop.security.UserGroupInformation$AuthenticationMethod v, v;
oadd.org.apache.drill.common.config.DrillProperties v;
oadd.org.apache.drill.exec.rpc.BitConnectionConfig v;
oadd.org.apache.drill.exec.proto.CoordinationProtos$DrillbitEndpoint v;
oadd.org.apache.hadoop.security.HadoopKerberosName v;
java.util.Map v, v;
java.lang.String v, v, v, v, v, v;
boolean v;
oadd.org.apache.hadoop.security.UserGroupInformation v;
v := @this: oadd.org.apache.drill.exec.rpc.BitConnectionConfig;
v := @parameter: oadd.org.apache.drill.exec.proto.CoordinationProtos$DrillbitEndpoint;
v := @parameter: java.util.Map;
v = staticinvoke <oadd.org.apache.drill.common.config.DrillProperties: oadd.org.apache.drill.common.config.DrillProperties createEmpty()>();
v = staticinvoke <oadd.org.apache.hadoop.security.UserGroupInformation: oadd.org.apache.hadoop.security.UserGroupInformation getLoginUser()>();
v = virtualinvoke v.<oadd.org.apache.hadoop.security.UserGroupInformation: oadd.org.apache.hadoop.security.UserGroupInformation$AuthenticationMethod getAuthenticationMethod()>();
v = <oadd.org.apache.hadoop.security.UserGroupInformation$AuthenticationMethod: oadd.org.apache.hadoop.security.UserGroupInformation$AuthenticationMethod KERBEROS>;
if v != v goto label;
v = new oadd.org.apache.hadoop.security.HadoopKerberosName;
v = virtualinvoke v.<oadd.org.apache.hadoop.security.UserGroupInformation: java.lang.String getUserName()>();
specialinvoke v.<oadd.org.apache.hadoop.security.HadoopKerberosName: void <init>(java.lang.String)>(v);
v = v.<oadd.org.apache.drill.exec.rpc.BitConnectionConfig: boolean useLoginPrincipal>;
if v != 0 goto label;
v = virtualinvoke v.<oadd.org.apache.hadoop.security.HadoopKerberosName: java.lang.String getShortName()>();
v = virtualinvoke v.<oadd.org.apache.drill.exec.proto.CoordinationProtos$DrillbitEndpoint: java.lang.String getAddress()>();
v = virtualinvoke v.<oadd.org.apache.hadoop.security.HadoopKerberosName: java.lang.String getRealm()>();
v = staticinvoke <oadd.org.apache.drill.common.KerberosUtil: java.lang.String getPrincipalFromParts(java.lang.String,java.lang.String,java.lang.String)>(v, v, v);
virtualinvoke v.<oadd.org.apache.drill.common.config.DrillProperties: java.lang.Object setProperty(java.lang.String,java.lang.String)>("principal", v);
goto label;
label:
v = virtualinvoke v.<oadd.org.apache.hadoop.security.HadoopKerberosName: java.lang.String toString()>();
virtualinvoke v.<oadd.org.apache.drill.common.config.DrillProperties: java.lang.Object setProperty(java.lang.String,java.lang.String)>("principal", v);
label:
virtualinvoke v.<oadd.org.apache.drill.common.config.DrillProperties: void merge(java.util.Map)>(v);
v = virtualinvoke v.<oadd.org.apache.drill.common.config.DrillProperties: java.util.Map stringPropertiesAsMap()>();
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/BitConnectionConfig;");
<oadd.org.apache.drill.exec.rpc.BitConnectionConfig: org.slf4j.Logger logger> = v;
return;
}
}