ACCUMULO-2815 Support for Kerberos client authentication.

Leverage SASL transport provided by Thrift which can speak GSSAPI,
which Kerberos implements. Introduced...

* An Accumulo KerberosToken which is an AuthenticationToken to
    validate users.
* Custom thrift processor and invocation handler to ensure server
    RPCs have a valid KRB identity and Accumulo authentication.
* Authenticator, Authorizor and PermissionHandler for kerberos
* New ClientConf variables to use SASL transport and pass KRB
    server primary (from principal)
* Updated ClientOpts and Shell opts to transparently use a
    KerberosToken when SASL is enabled (no extra client work).
* Ensure existing unit tests still function.
* Throw ThriftSecurityExceptions on bad authentication to ensure
    proper client action is taken.
* Fall back to krb principal before local OS user
* Initialize accepts a "root" user and defaults to not prompting
    for a password to that user acct w/ SASL enabled.
* Use properties specific to server primary and realm for
    clients to connect to servers (required for SASL handshake).
* Basic KerberosIT testing basic functionality (MiniKdc)
* Introduction of useKrbForIT option to run AccumuloClusterITs
    with Kerberos (not 100% coverage) (MiniKdc)
* Ensure system user doesn't get a "real" user acct.
* Ensure that start-all.sh and stop-all.sh don't require krb creds
* Add user manual documentation
* Use the full krb principal as the accumulo principal
1 file changed
tree: 6a08fbe814ba65a260d50d44338a2e4f57675bfd
  1. examples/
  2. src/
  3. .gitignore
  4. pom.xml
  5. proxy.properties
  6. README