Search in sources :

Example 21 with NonTransientRpcException

use of org.apache.drill.exec.rpc.NonTransientRpcException in project drill by apache.

the class TestUserBitSaslCompatibility method testDisableDrillbitAuth_EnableClientEncryption.

/**
 * Test showing failure before SASL handshake when Drillbit is not configured for authentication whereas client
 * explicitly requested for encrypted connection.
 * @throws Exception
 */
@Test
public void testDisableDrillbitAuth_EnableClientEncryption() throws Exception {
    final DrillConfig newConfig = new DrillConfig(DrillConfig.create(cloneDefaultTestConfigProperties()).withValue(ExecConstants.USER_AUTHENTICATION_ENABLED, ConfigValueFactory.fromAnyRef(false)));
    final Properties connectionProps = new Properties();
    connectionProps.setProperty(DrillProperties.USER, "anonymous");
    connectionProps.setProperty(DrillProperties.PASSWORD, "anything works!");
    connectionProps.setProperty(DrillProperties.SASL_ENCRYPT, "true");
    try {
        updateTestCluster(1, newConfig, connectionProps);
        fail();
    } catch (Exception ex) {
        assertTrue(ex.getCause() instanceof NonTransientRpcException);
        assertTrue(!(ex.getCause().getCause() instanceof SaslException));
    }
}
Also used : DrillConfig(org.apache.drill.common.config.DrillConfig) NonTransientRpcException(org.apache.drill.exec.rpc.NonTransientRpcException) Properties(java.util.Properties) DrillProperties(org.apache.drill.common.config.DrillProperties) SaslException(javax.security.sasl.SaslException) SaslException(javax.security.sasl.SaslException) NonTransientRpcException(org.apache.drill.exec.rpc.NonTransientRpcException) Test(org.junit.Test) SecurityTest(org.apache.drill.categories.SecurityTest)

Example 22 with NonTransientRpcException

use of org.apache.drill.exec.rpc.NonTransientRpcException in project drill by apache.

the class TestUserBitSaslCompatibility method testEnableDrillbitAuth_DisableClientAuth.

/**
 * Test showing failure in SASL handshake when Drillbit is configured for authentication only whereas client doesn't
 * provide any security properties like username/password in this case.
 * @throws Exception
 */
@Test
public void testEnableDrillbitAuth_DisableClientAuth() throws Exception {
    final DrillConfig newConfig = new DrillConfig(DrillConfig.create(cloneDefaultTestConfigProperties()).withValue(ExecConstants.USER_AUTHENTICATION_ENABLED, ConfigValueFactory.fromAnyRef(true)).withValue(ExecConstants.USER_AUTHENTICATOR_IMPL, ConfigValueFactory.fromAnyRef(UserAuthenticatorTestImpl.TYPE)).withValue(ExecConstants.AUTHENTICATION_MECHANISMS, ConfigValueFactory.fromIterable(Lists.newArrayList("plain"))).withValue(ExecConstants.USER_ENCRYPTION_SASL_ENABLED, ConfigValueFactory.fromAnyRef(false)));
    final Properties connectionProps = new Properties();
    try {
        updateTestCluster(1, newConfig, connectionProps);
        fail();
    } catch (Exception ex) {
        assertTrue(ex.getCause() instanceof NonTransientRpcException);
        assertTrue(ex.getCause().getCause() instanceof SaslException);
    }
}
Also used : DrillConfig(org.apache.drill.common.config.DrillConfig) NonTransientRpcException(org.apache.drill.exec.rpc.NonTransientRpcException) Properties(java.util.Properties) DrillProperties(org.apache.drill.common.config.DrillProperties) SaslException(javax.security.sasl.SaslException) SaslException(javax.security.sasl.SaslException) NonTransientRpcException(org.apache.drill.exec.rpc.NonTransientRpcException) Test(org.junit.Test) SecurityTest(org.apache.drill.categories.SecurityTest)

Example 23 with NonTransientRpcException

use of org.apache.drill.exec.rpc.NonTransientRpcException in project drill by apache.

the class TestUserBitSaslCompatibility method testEnableDrillbitEncryption_DisableClientAuth.

/**
 * Test showing failure in SASL handshake when Drillbit is configured for encryption whereas client doesn't provide any
 * security properties like username/password in this case.
 * @throws Exception
 */
@Test
public void testEnableDrillbitEncryption_DisableClientAuth() throws Exception {
    final DrillConfig newConfig = new DrillConfig(DrillConfig.create(cloneDefaultTestConfigProperties()).withValue(ExecConstants.USER_AUTHENTICATION_ENABLED, ConfigValueFactory.fromAnyRef(true)).withValue(ExecConstants.USER_AUTHENTICATOR_IMPL, ConfigValueFactory.fromAnyRef(UserAuthenticatorTestImpl.TYPE)).withValue(ExecConstants.AUTHENTICATION_MECHANISMS, ConfigValueFactory.fromIterable(Lists.newArrayList("plain"))).withValue(ExecConstants.USER_ENCRYPTION_SASL_ENABLED, ConfigValueFactory.fromAnyRef(true)));
    final Properties connectionProps = new Properties();
    connectionProps.setProperty(DrillProperties.USER, "anonymous");
    connectionProps.setProperty(DrillProperties.PASSWORD, "anything works!");
    try {
        updateTestCluster(1, newConfig, connectionProps);
        fail();
    } catch (Exception ex) {
        assertTrue(ex.getCause() instanceof NonTransientRpcException);
        assertTrue(ex.getCause().getCause() instanceof SaslException);
    }
}
Also used : DrillConfig(org.apache.drill.common.config.DrillConfig) NonTransientRpcException(org.apache.drill.exec.rpc.NonTransientRpcException) Properties(java.util.Properties) DrillProperties(org.apache.drill.common.config.DrillProperties) SaslException(javax.security.sasl.SaslException) SaslException(javax.security.sasl.SaslException) NonTransientRpcException(org.apache.drill.exec.rpc.NonTransientRpcException) Test(org.junit.Test) SecurityTest(org.apache.drill.categories.SecurityTest)

Aggregations

NonTransientRpcException (org.apache.drill.exec.rpc.NonTransientRpcException)23 Properties (java.util.Properties)20 SecurityTest (org.apache.drill.categories.SecurityTest)20 DrillConfig (org.apache.drill.common.config.DrillConfig)20 DrillProperties (org.apache.drill.common.config.DrillProperties)20 Test (org.junit.Test)20 SaslException (javax.security.sasl.SaslException)13 RpcException (org.apache.drill.exec.rpc.RpcException)10 JsonProcessingException (com.fasterxml.jackson.core.JsonProcessingException)2 IOException (java.io.IOException)2 ArrayList (java.util.ArrayList)2 SynchronousQueue (java.util.concurrent.SynchronousQueue)2 ThreadPoolExecutor (java.util.concurrent.ThreadPoolExecutor)2 UserException (org.apache.drill.common.exceptions.UserException)2 ZKClusterCoordinator (org.apache.drill.exec.coord.zk.ZKClusterCoordinator)2 OutOfMemoryException (org.apache.drill.exec.exception.OutOfMemoryException)2 DrillbitEndpoint (org.apache.drill.exec.proto.CoordinationProtos.DrillbitEndpoint)2 ChannelClosedException (org.apache.drill.exec.rpc.ChannelClosedException)2 NamedThreadFactory (org.apache.drill.exec.rpc.NamedThreadFactory)2 UserClient (org.apache.drill.exec.rpc.user.UserClient)2