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

      Deprecated.
      This method is difficult to use safely, because it's easy to accidentally do blocking IO inside the supplier. Please use cluster.authenticator(newAuthenticator) instead.
      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.
    • getAuthHeaderValue

      public String getAuthHeaderValue()
      Description copied from interface: Authenticator
      Returns the value of the Authorization header to apply to HTTP requests, or null if no header should be applied.
      Specified by:
      getAuthHeaderValue in interface Authenticator
    • 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.
    • requiresTls

      public boolean requiresTls()
      Specified by:
      requiresTls in interface Authenticator
    • toString

      public String toString()
      Overrides:
      toString in class Object