DRILL-4280: CORE (security package)
+ Add AuthenticatorFactory interface
+ Kerberos implementation
+ includes SaslServer and SaslClient wrappers
+ Plain implementation
+ PlainServer implements SaslServer (unavailable in Java)
for username/password based authentication
+ retrofit user authenticator
+ add logic for backward compatibility
+ Add AuthenticatorProvider interface to provide authenticator
factories, and add two implementations:
+ DrillConfig and ScanResult based AuthenticatorProviderImpl
+ Default and system property based ClientAuthenticatorProvider
+ FastSaslServerFactory caches SaslServer factories
+ FastSaslClientFactory caches SaslClient factories
+ ServerAuthenticationHandler handles authentication on server-side
+ FailingRequestHandler to fail any message received
+ AuthenticationOutcomeListener handles authentication on client-side
security