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 Detail

      • getUsername

        java.lang.String getUsername​(java.util.Map<OracleResourceProvider.Parameter,​java.lang.CharSequence> parameterValues)

        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:
        java.lang.IllegalArgumentException - If the value of a parameter can not be parsed or interpreted.
        java.lang.IllegalStateException - If an implementation-specific failure prevents a resource from being provided.