Interface AccessTokenProvider

  • All Superinterfaces:
    OracleResourceProvider

    public interface AccessTokenProvider
    extends OracleResourceProvider

    A provider of OAUTH access tokens that authorize logins to Oracle Database.

    The oracle.jdbc.provider.accessToken connection property identifies the name of an AccessTokenProvider implementation. Connection properties under the namespace of oracle.jdbc.provider.accessToken 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 "scope":

      oracle.jdbc.provider.accessToken=example-provider
      oracle.jdbc.provider.accessToken.scope=example.database:connect

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

    Since:
    23
    • Method Detail

      • getAccessToken

        AccessToken getAccessToken​(java.util.Map<OracleResourceProvider.Parameter,​java.lang.CharSequence> parameterValues)

        Returns a OAUTH access token that authorizes logins to 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:
        An access token. 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.