-
Notifications
You must be signed in to change notification settings - Fork 443
Constructors for SQLServerColumnEncryptionAzureKeyVaultProvider
With JDBC drivers v6.2.1 and below that support Azure Key Vault in order to construct SQLServerColumnEncryptionAzureKeyVaultProvider object, client applications needed to construct a SQLServerKeyVaultAuthenticationCallback object by implementing SQLServerKeyVaultAuthenticationCallback interface and provide an ExecutorService object.
//Supported by v6.2.1 and before, and v7.0.0 (@deprecated)
public SQLServerColumnEncryptionAzureKeyVaultProvider(
SQLServerKeyVaultAuthenticationCallback authenticationCallback,
ExecutorService executorService) throws SQLServerException;Starting with JDBC Driver v6.2.2, the driver introduced new constructor and replaced the above constructor to construct SQLServerColumnEncryptionAzureKeyVaultProvider directly with clientID and clientKey, without implementing interface or providing ExecutorService, this was meant to reduce the complexity on the user's side but also caused a breaking change in client applications.
//Supported by v6.2.2 and above
public SQLServerColumnEncryptionAzureKeyVaultProvider(
String clientId, String clientKey) throws SQLServerException;With JDBC Driver v7.0.0, the driver supports both constructors as specified above along with a new constructor that only needs an implemented object of SQLServerKeyVaultAuthenticationCallback interface in order to call getAccessToken() function.
//Supported by v7.0.0 and above
public SQLServerColumnEncryptionAzureKeyVaultProvider(
SQLServerKeyVaultAuthenticationCallback authenticationCallback) throws SQLServerException;With JDBC Driver v8.3.0, the driver introduced a new constructor that only needs the clientID to authenticate to the Azure Key Vault using Managed Identity.
//Supported by v8.3.0 and above
public SQLServerColumnEncryptionAzureKeyVaultProvider(
String clientId) throws SQLServerException;With JDBC Driver v9.2.0, the driver supports constructors as specified above along with a new constructor using the provided TokenCredential to authenticate to Azure Active Directory.
//Supported by v9.2.0 and above
public SQLServerColumnEncryptionAzureKeyVaultProvider(
TokenCredential tokenCredential) throws SQLServerException;Note that the first constructor that uses ExecutorService exists only for backwards compatibility and has been marked @deprecated. It is scheduled to be removed in a future stable release. Customers using this constructor should switch to the new constructors.