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,
boolean acceptDelegateUrls) |
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,
boolean acceptDelegateUrls) |
| 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,
boolean acceptDelegateUrls)
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,
boolean acceptDelegateUrls)
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