Class AuthenticationPluginManager

java.lang.Object
org.postgresql.core.v3.AuthenticationPluginManager

class AuthenticationPluginManager extends Object
  • Field Details

    • LOGGER

      private static final Logger LOGGER
  • Constructor Details

    • AuthenticationPluginManager

      private AuthenticationPluginManager()
  • Method Details

    • withPassword

      public static <T> T withPassword(AuthenticationRequestType type, Properties info, AuthenticationPluginManager.PasswordAction<char[],T> action) throws PSQLException, IOException
      If a password is requested by the server during connection initiation, this method will be invoked to supply the password. This method will only be invoked if the server actually requests a password, e.g. trust authentication will skip it entirely.

      The caller provides a action method that will be invoked with the char[] password. After completion, for security reasons the char[] array will be wiped by filling it with zeroes. Callers must not rely on being able to read the password char[] after the action has completed.

      Parameters:
      type - The authentication type that is being requested
      info - The connection properties for the connection
      action - The action to invoke with the password
      Throws:
      PSQLException - Throws a PSQLException if the plugin class cannot be instantiated
      IOException - Bubbles up any thrown IOException from the provided action
    • withEncodedPassword

      public static <T> T withEncodedPassword(AuthenticationRequestType type, Properties info, AuthenticationPluginManager.PasswordAction<byte[],T> action) throws PSQLException, IOException
      Helper that wraps withPassword(AuthenticationRequestType, Properties, PasswordAction), checks that it is not-null, and encodes it as a byte array. Used by internal code paths that require an encoded password that may be an empty string, but not null.

      The caller provides a callback method that will be invoked with the byte[] encoded password. After completion, for security reasons the byte[] array will be wiped by filling it with zeroes. Callers must not rely on being able to read the password byte[] after the callback has completed.

      Parameters:
      type - The authentication type that is being requested
      info - The connection properties for the connection
      action - The action to invoke with the encoded password
      Throws:
      PSQLException - Throws a PSQLException if the plugin class cannot be instantiated or if the retrieved password is null.
      IOException - Bubbles up any thrown IOException from the provided callback