public class IamAuthJdbcDriverWrapper
extends java.lang.Object
implements java.sql.Driver
| Modifier and Type | Field and Description |
|---|---|
static java.lang.String |
AWS_ACCESS_KEY_ID_PROPERTY
An optional AWS access key to use as credentials when requesting an RDS token.
|
static java.lang.String |
AWS_PROFILE_PROPERTY
The optional name of an AWS profile to source credentials/region configuration from.
|
static java.lang.String |
AWS_REGION_PROPERTY
The optional AWS region to use, if not specified, will use the
DefaultAwsRegionProviderChain or a region from a configured profile |
static java.lang.String |
AWS_SECRET_ACCESS_KEY_PROPERTY
An optional AWS secret key to use as credentials when requesting an RDS token.
|
static java.lang.String |
AWS_STS_CREDENTIAL_EXTERNAL_ID_PROPERTY
An optional external ID to pass in the assume role call.
|
static java.lang.String |
AWS_STS_CREDENTIAL_ROLE_ARN_PROPERTY
An optional role ARN to assume before requesting RDS iam credentials
|
static java.lang.String |
AWS_STS_CREDENTIAL_SESSION_NAME_PROPERTY
An optional session name to use if assuming a role.
|
static java.lang.String |
DEFAULT_PASSWORD_PROPERTY |
static java.lang.String |
DEFAULT_USER_PROPERTY |
static java.lang.String |
DELEGATE_DRIVER_CLASS_PROPERTY
The JDBC driver class to delegate calls to, if not already configured.
|
static java.lang.String |
DELEGATE_DRIVER_SCHEME_NAME_PROPERTY
The JDBC url scheme of the driver to delegate calls to.
|
| Constructor and Description |
|---|
IamAuthJdbcDriverWrapper()
Creates a delegateless IAM Auth JDBC wrapper.
|
IamAuthJdbcDriverWrapper(java.lang.String wrapperSchemeName,
java.lang.String delegateSchemeName,
java.lang.Integer defaultPort,
java.lang.String driverClassName) |
IamAuthJdbcDriverWrapper(java.lang.String wrapperSchemeName,
java.lang.String delegateSchemeName,
java.lang.String passwordProperty,
java.lang.String userProperty,
java.lang.Integer defaultPort,
java.lang.String driverClassName) |
| Modifier and Type | Method and Description |
|---|---|
boolean |
acceptsURL(java.lang.String url) |
java.sql.Connection |
connect(java.lang.String url,
java.util.Properties connectionProperties) |
java.lang.String |
generateRdsIamAuthToken(java.lang.String host,
int port,
java.util.Map<java.lang.String,java.lang.String> properties) |
int |
getMajorVersion() |
int |
getMinorVersion() |
java.util.logging.Logger |
getParentLogger() |
java.sql.DriverPropertyInfo[] |
getPropertyInfo(java.lang.String url,
java.util.Properties properties) |
protected static void |
initialiseDriverRegistration(IamAuthJdbcDriverWrapper driver) |
boolean |
jdbcCompliant() |
static java.util.Map<java.lang.String,java.lang.String> |
parseQueryString(java.net.URI uri) |
public static final java.lang.String DELEGATE_DRIVER_CLASS_PROPERTY
Only required if using a wrapper instance with no pre-configured driver class
public static final java.lang.String DELEGATE_DRIVER_SCHEME_NAME_PROPERTY
For example "mysql" or "postgresql"
Only required if using a wrapper instance with no pre-configured driver class
public static final java.lang.String AWS_REGION_PROPERTY
DefaultAwsRegionProviderChain or a region from a configured profilepublic static final java.lang.String AWS_PROFILE_PROPERTY
public static final java.lang.String AWS_STS_CREDENTIAL_ROLE_ARN_PROPERTY
public static final java.lang.String AWS_STS_CREDENTIAL_SESSION_NAME_PROPERTY
AWS_STS_CREDENTIAL_ROLE_ARN_PROPERTY
is not configuredpublic static final java.lang.String AWS_STS_CREDENTIAL_EXTERNAL_ID_PROPERTY
AWS_STS_CREDENTIAL_ROLE_ARN_PROPERTY is not configuredpublic static final java.lang.String AWS_ACCESS_KEY_ID_PROPERTY
AWS_SECRET_ACCESS_KEY_PROPERTY or will be
ignoredpublic static final java.lang.String AWS_SECRET_ACCESS_KEY_PROPERTY
AWS_ACCESS_KEY_ID_PROPERTY or will be ignoredpublic static final java.lang.String DEFAULT_PASSWORD_PROPERTY
public static final java.lang.String DEFAULT_USER_PROPERTY
public IamAuthJdbcDriverWrapper()
Delegate driver class must later be configured with DELEGATE_DRIVER_CLASS_PROPERTY
public IamAuthJdbcDriverWrapper(java.lang.String wrapperSchemeName,
java.lang.String delegateSchemeName,
java.lang.Integer defaultPort,
java.lang.String driverClassName)
public IamAuthJdbcDriverWrapper(java.lang.String wrapperSchemeName,
java.lang.String delegateSchemeName,
java.lang.String passwordProperty,
java.lang.String userProperty,
java.lang.Integer defaultPort,
java.lang.String driverClassName)
protected static void initialiseDriverRegistration(IamAuthJdbcDriverWrapper driver)
public static java.util.Map<java.lang.String,java.lang.String> parseQueryString(java.net.URI uri)
public boolean acceptsURL(java.lang.String url)
throws java.sql.SQLException
acceptsURL in interface java.sql.Driverjava.sql.SQLExceptionpublic java.sql.Connection connect(java.lang.String url,
java.util.Properties connectionProperties)
throws java.sql.SQLException
connect in interface java.sql.Driverjava.sql.SQLExceptionpublic java.lang.String generateRdsIamAuthToken(java.lang.String host,
int port,
java.util.Map<java.lang.String,java.lang.String> properties)
public int getMajorVersion()
getMajorVersion in interface java.sql.Driverpublic int getMinorVersion()
getMinorVersion in interface java.sql.Driverpublic java.util.logging.Logger getParentLogger()
throws java.sql.SQLFeatureNotSupportedException
getParentLogger in interface java.sql.Driverjava.sql.SQLFeatureNotSupportedExceptionpublic java.sql.DriverPropertyInfo[] getPropertyInfo(java.lang.String url,
java.util.Properties properties)
throws java.sql.SQLException
getPropertyInfo in interface java.sql.Driverjava.sql.SQLExceptionpublic boolean jdbcCompliant()
jdbcCompliant in interface java.sql.Driver