use of org.apache.drill.common.exceptions.DrillException in project drill by apache.
the class SpnegoConfig method loginAndReturnUgi.
// Performs the Server login to KDC for SPNEGO
private UserGroupInformation loginAndReturnUgi() throws DrillException {
validateSpnegoConfig();
UserGroupInformation ugi;
try {
// After the login is performed reset the static UGI state.
if (!UserGroupInformation.isSecurityEnabled()) {
final Configuration newConfig = new Configuration();
newConfig.set(CommonConfigurationKeys.HADOOP_SECURITY_AUTHENTICATION, UserGroupInformation.AuthenticationMethod.KERBEROS.toString());
if (clientNameMapping != null) {
newConfig.set(CommonConfigurationKeys.HADOOP_SECURITY_AUTH_TO_LOCAL, clientNameMapping);
}
UserGroupInformation.setConfiguration(newConfig);
ugi = UserGroupInformation.loginUserFromKeytabAndReturnUGI(principal, keytab);
// Reset the original configuration for static UGI
UserGroupInformation.setConfiguration(new Configuration());
} else {
// Let's not overwrite the rules here since it might be possible that CUSTOM security is configured for
// JDBC/ODBC with default rules. If Kerberos was enabled then the correct rules must already be set
ugi = UserGroupInformation.loginUserFromKeytabAndReturnUGI(principal, keytab);
}
} catch (Exception e) {
throw new DrillException(String.format("Login failed for %s with given keytab", principal), e);
}
return ugi;
}
use of org.apache.drill.common.exceptions.DrillException in project drill by apache.
the class SSLConfigClient method initNettySslContext.
@Override
public SslContext initNettySslContext() throws DrillException {
final SslContext sslCtx;
if (!userSslEnabled) {
return null;
}
TrustManagerFactory tmf;
try {
tmf = initializeTrustManagerFactory();
sslCtx = SslContextBuilder.forClient().sslProvider(getProvider()).trustManager(tmf).protocols(protocol).build();
} catch (Exception e) {
// Catch any SSL initialization Exceptions here and abort.
throw new DrillException(new StringBuilder().append("SSL is enabled but cannot be initialized due to the following exception: ").append("[ ").append(e.getMessage()).append("]. ").toString());
}
this.nettySslContext = sslCtx;
return sslCtx;
}
use of org.apache.drill.common.exceptions.DrillException in project drill by apache.
the class SSLConfigClient method initJDKSSLContext.
@Override
public SSLContext initJDKSSLContext() throws DrillException {
final SSLContext sslCtx;
if (!userSslEnabled) {
return null;
}
TrustManagerFactory tmf;
try {
tmf = initializeTrustManagerFactory();
sslCtx = SSLContext.getInstance(protocol);
sslCtx.init(null, tmf.getTrustManagers(), null);
} catch (Exception e) {
// Catch any SSL initialization Exceptions here and abort.
throw new DrillException(new StringBuilder().append("SSL is enabled but cannot be initialized due to the following exception: ").append("[ ").append(e.getMessage()).append("]. ").toString());
}
this.jdkSSlContext = sslCtx;
return sslCtx;
}
Aggregations