Class PasswordAuthenticator

java.lang.Object
com.couchbase.client.core.env.PasswordAuthenticator
All Implemented Interfaces:
Authenticator

public class PasswordAuthenticator extends Object implements Authenticator
Performs authentication against a Couchbase server cluster using username and password.
  • Method Details

    • builder

      @Deprecated public static PasswordAuthenticator.Builder builder()
      Deprecated.
      Please use one of the "See Also" methods instead, to ensure all required builder properties are set.
      Creates a new PasswordAuthenticator.Builder which allows to customize this authenticator.
      See Also:
    • builder

      public static PasswordAuthenticator.Builder builder(String username, String password)
      Creates a builder for an authenticator that uses the given credentials.
    • builder

      public static PasswordAuthenticator.Builder builder(Supplier<UsernameAndPassword> supplier)
      Creates a builder for an authenticator that uses dynamic credentials. This enables updating credentials without having to restart your application.

      IMPORTANT: The supplier's get() method must not do blocking IO. It is called from async contexts, where blocking IO can starve important SDK resources like async event loops.

      Instead of blocking inside the supplier, the supplier should return a value from a volatile field.

      One way to keep the supplier's value up to date is to schedule a recurring task that reads new credentials from an external source and stores them in the volatile field.

    • create

      public static PasswordAuthenticator create(String username, String password)
      Creates a new password authenticator with the default settings.
      Parameters:
      username - the username to use for all authentication.
      password - the password to use alongside the username.
      Returns:
      the instantiated PasswordAuthenticator.
      See Also:
    • ldapCompatible

      public static PasswordAuthenticator ldapCompatible(String username, String password)
      Creates an LDAP compatible password authenticator which is INSECURE if not used with TLS.

      Please note that this is INSECURE and will leak user credentials on the wire to eavesdroppers. This should only be enabled in trusted environments.

      Parameters:
      username - the username to use for all authentication.
      password - the password to use alongside the username.
      Returns:
      the instantiated PasswordAuthenticator.
    • authKeyValueConnection

      public void authKeyValueConnection(EndpointContext ctx, com.couchbase.client.core.deps.io.netty.channel.ChannelPipeline pipeline)
      Description copied from interface: Authenticator
      Allows the authenticator to add KV handlers during connection bootstrap to perform authentication.
      Specified by:
      authKeyValueConnection in interface Authenticator
      Parameters:
      ctx - the endpoint context.
      pipeline - the pipeline when the endpoint is constructed.
    • authHttpRequest

      public void authHttpRequest(ServiceType serviceType, com.couchbase.client.core.deps.io.netty.handler.codec.http.HttpRequest request)
      Description copied from interface: Authenticator
      Allows to add authentication credentials to the http request for the given service.
      Specified by:
      authHttpRequest in interface Authenticator
      Parameters:
      serviceType - the service for this request.
      request - the http request.
    • protostellarCallCredentials

      public com.couchbase.client.core.deps.io.grpc.CallCredentials protostellarCallCredentials()
      Specified by:
      protostellarCallCredentials in interface Authenticator