Interface UsernameProvider

All Superinterfaces:
OracleResourceProvider

public interface UsernameProvider extends OracleResourceProvider

A provider of usernames for authentication with Oracle Database.

The oracle.jdbc.provider.username connection property identifies the name of a UsernameProvider implementation. Connection properties under the namespace of oracle.jdbc.provider.username configure any parameters that an implementation defines. To illustrate, the connection properties below would identify a provider named "example-provider", and configure a parameter named "vaultId":

  oracle.jdbc.provider.username=example-provider
  oracle.jdbc.provider.username.vaultId=9999-8888-7777

ServiceLoader locates implementations of UsernameProvider declared by a META-INF/services/oracle.jdbc.spi.UsernameProvider file in the class path, or by a module-info.java file with a "provides oracle.jdbc.spi.UsernameProvider" directive in the module path. Typically, these files are distributed within a jar file that contains a UsernameProvider implementation.

Since:
23
  • Method Details

    • getUsername

      Returns a username for authentication with Oracle Database.

      The parameterValues passed to this method is a Map comprised as follows:

      • The key set is the same as, or a subset of, the Parameter objects returned by an invocation of OracleResourceProvider.getParameters() on this provider.
      • If no value is configured for a parameter, then the Map contains the default value of that Parameter, if any. If the parameter has no default value, then the map does not contain an entry for that Parameter.
      • The Map does not contain entries having null values.
      The parameterValues Map may contain a CharSequence having a security sensitive value. After this method returns, the caller may wipe the contents of these CharSequence values from memory. Implementations of this method should not retain a reference to these CharSequence objects.

      Parameters:
      parameterValues - Parameters configured by connection properties . Not null. May be empty.
      Returns:
      A username. Not null.
      Throws:
      IllegalArgumentException - If the value of a parameter can not be parsed or interpreted.
      IllegalStateException - If an implementation-specific failure prevents a resource from being provided.