@ThreadSafe public abstract class PlainTextAuthProviderBase extends Object implements AuthProvider
This can be reused to write an implementation that retrieves the credentials from another
source than the configuration. The driver offers one built-in implementation: ProgrammaticPlainTextAuthProvider
.
Modifier and Type | Class and Description |
---|---|
static class |
PlainTextAuthProviderBase.Credentials |
protected static class |
PlainTextAuthProviderBase.PlainTextAuthenticator |
Modifier | Constructor and Description |
---|---|
protected |
PlainTextAuthProviderBase(String logPrefix) |
Modifier and Type | Method and Description |
---|---|
void |
close() |
protected abstract PlainTextAuthProviderBase.Credentials |
getCredentials(EndPoint endPoint,
String serverAuthenticator)
Retrieves the credentials from the underlying source.
|
Authenticator |
newAuthenticator(EndPoint endPoint,
String serverAuthenticator)
The authenticator to use when connecting to
host . |
void |
onMissingChallenge(EndPoint endPoint)
What to do if the server does not send back an authentication challenge (in other words, lets
the client connect without any form of authentication).
|
protected PlainTextAuthProviderBase(@NonNull String logPrefix)
logPrefix
- a string that will get prepended to the logs (this is used for discrimination
when you have multiple driver instances executing in the same JVM). Built-in
implementations fill this with Session.getName()
.@NonNull protected abstract PlainTextAuthProviderBase.Credentials getCredentials(@NonNull EndPoint endPoint, @NonNull String serverAuthenticator)
This is invoked every time the driver opens a new connection.
endPoint
- The endpoint being contacted.serverAuthenticator
- The authenticator class sent by the endpoint.@NonNull public Authenticator newAuthenticator(@NonNull EndPoint endPoint, @NonNull String serverAuthenticator) throws AuthenticationException
AuthProvider
host
.newAuthenticator
in interface AuthProvider
endPoint
- the Cassandra host to connect to.serverAuthenticator
- the configured authenticator on the host.AuthenticationException
public void onMissingChallenge(@NonNull EndPoint endPoint)
AuthProvider
This is suspicious because having authentication enabled on the client but not on the server is probably a configuration mistake.
Provider implementations are free to handle this however they want; typical approaches are:
AuthenticationException
to abort the connection (but note that it
will be retried according to the ReconnectionPolicy
).
onMissingChallenge
in interface AuthProvider
public void close()
close
in interface AutoCloseable
Copyright © 2017–2024. All rights reserved.