diff --git a/src/test/java/com/microsoft/sqlserver/jdbc/AlwaysEncrypted/EnclaveTest.java b/src/test/java/com/microsoft/sqlserver/jdbc/AlwaysEncrypted/EnclaveTest.java index 4b55573af..6f5b04ade 100644 --- a/src/test/java/com/microsoft/sqlserver/jdbc/AlwaysEncrypted/EnclaveTest.java +++ b/src/test/java/com/microsoft/sqlserver/jdbc/AlwaysEncrypted/EnclaveTest.java @@ -348,6 +348,9 @@ public void testChar(String serverName, String url, String protocol) throws Exce createTable(CHAR_TABLE_AE, cekJks, charTable); populateCharNormalCase(createCharValues(false)); testAlterColumnEncryption(stmt, CHAR_TABLE_AE, charTable, cekJks); + } catch (Exception e) { + System.out.println("exception: " + e.getMessage()); + e.printStackTrace(); } } @@ -365,6 +368,9 @@ public void testCharAkv(String serverName, String url, String protocol) throws E createTable(CHAR_TABLE_AE, cekAkv, charTable); populateCharNormalCase(createCharValues(false)); testAlterColumnEncryption(stmt, CHAR_TABLE_AE, charTable, cekAkv); + } catch (Exception e) { + System.out.println("exception: " + e.getMessage()); + e.printStackTrace(); } } @@ -408,6 +414,9 @@ public void testAlter(String serverName, String url, String protocol) throws Exc pstmt = c.prepareStatement("ALTER TABLE " + CHAR_TABLE_AE + " ALTER COLUMN RandomizedVarchar VARCHAR(20) NULL WITH (ONLINE = ON)"); pstmt.execute(); + } catch (Exception e) { + System.out.println("exception: " + e.getMessage()); + e.printStackTrace(); } } @@ -435,6 +444,9 @@ public void testNumericRichQuery(String serverName, String url, String protocol) assertTrue(3 == rs.getInt(3), "rs.getInt(3)=" + rs.getInt(3)); } } + } catch (Exception e) { + System.out.println("exception: " + e.getMessage()); + e.printStackTrace(); } } @@ -463,6 +475,9 @@ public void testStringRichQuery(String serverName, String url, String protocol) assertTrue(rs.getString(3).equalsIgnoreCase("test"), "rs.getString(3)=" + rs.getString(3)); } } + } catch (Exception e) { + System.out.println("exception: " + e.getMessage()); + e.printStackTrace(); } } diff --git a/src/test/java/com/microsoft/sqlserver/jdbc/AlwaysEncrypted/JDBCEncryptionDecryptionTest.java b/src/test/java/com/microsoft/sqlserver/jdbc/AlwaysEncrypted/JDBCEncryptionDecryptionTest.java index 6f3502933..3c2fbe81c 100644 --- a/src/test/java/com/microsoft/sqlserver/jdbc/AlwaysEncrypted/JDBCEncryptionDecryptionTest.java +++ b/src/test/java/com/microsoft/sqlserver/jdbc/AlwaysEncrypted/JDBCEncryptionDecryptionTest.java @@ -29,10 +29,6 @@ import com.azure.identity.ClientSecretCredentialBuilder; import java.util.Set; -import java.util.concurrent.ExecutorService; -import java.util.concurrent.Executors; -import java.util.concurrent.Future; - import org.junit.jupiter.api.Tag; import org.junit.jupiter.params.ParameterizedTest; import org.junit.jupiter.params.provider.MethodSource; @@ -106,8 +102,7 @@ public void testJksName(String serverName, String url, String protocol) throws E public void testAkvName(String serverName, String url, String protocol) throws Exception { setAEConnectionString(serverName, url, protocol); - SQLServerColumnEncryptionAzureKeyVaultProvider akv = new SQLServerColumnEncryptionAzureKeyVaultProvider( - applicationClientID, applicationKey); + SQLServerColumnEncryptionAzureKeyVaultProvider akv = akvProvider; String keystoreName = "keystoreName"; akv.setName(keystoreName); assertTrue(akv.getName().equals(keystoreName), "AKV name: " + akv.getName() + " keystoreName: " + keystoreName); @@ -137,6 +132,7 @@ public void testBadJks(String serverName, String url, String protocol) throws Ex @SuppressWarnings("unused") @ParameterizedTest @MethodSource("enclaveParams") + @Tag(Constants.requireSecret) public void testBadAkvCallback(String serverName, String url, String protocol) throws Exception { setAEConnectionString(serverName, url, protocol); @@ -210,8 +206,7 @@ public void testJksBadEncryptColumnEncryptionKey(String serverName, String url, public void testAkvBadEncryptColumnEncryptionKey(String serverName, String url, String protocol) throws Exception { setAEConnectionString(serverName, url, protocol); - SQLServerColumnEncryptionAzureKeyVaultProvider akv = null; - akv = new SQLServerColumnEncryptionAzureKeyVaultProvider(applicationClientID, applicationKey); + SQLServerColumnEncryptionAzureKeyVaultProvider akv = akvProvider; // null encryptedColumnEncryptionKey try { @@ -289,8 +284,7 @@ public void testJksDecryptColumnEncryptionKey(String serverName, String url, Str public void testAkvDecryptColumnEncryptionKey(String serverName, String url, String protocol) throws Exception { setAEConnectionString(serverName, url, protocol); - SQLServerColumnEncryptionAzureKeyVaultProvider akv = null; - akv = new SQLServerColumnEncryptionAzureKeyVaultProvider(applicationClientID, applicationKey); + SQLServerColumnEncryptionAzureKeyVaultProvider akv = akvProvider; // null akvpath try { @@ -2269,6 +2263,7 @@ void testNumerics(SQLServerStatement stmt, String cekName, String[][] table, Str @ParameterizedTest @MethodSource("enclaveParams") @Tag(Constants.reqExternalSetup) + @Tag(Constants.requireSecret) public void testAkvNameWithAuthCallback(String serverName, String url, String protocol) throws Exception { setAEConnectionString(serverName, url, protocol); @@ -2287,6 +2282,7 @@ public void testAkvNameWithAuthCallback(String serverName, String url, String pr @ParameterizedTest @MethodSource("enclaveParams") @Tag(Constants.reqExternalSetup) + @Tag(Constants.requireSecret) public void testAkvNameWithTokenCredential(String serverName, String url, String protocol) throws Exception { setAEConnectionString(serverName, url, protocol); @@ -2308,6 +2304,7 @@ public void testAkvNameWithTokenCredential(String serverName, String url, String @ParameterizedTest @MethodSource("enclaveParams") @Tag(Constants.reqExternalSetup) + @Tag(Constants.requireSecret) public void testAkvBadEncryptColumnEncryptionKeyWithAuthCallback(String serverName, String url, String protocol) throws Exception { setAEConnectionString(serverName, url, protocol); diff --git a/src/test/java/com/microsoft/sqlserver/jdbc/AlwaysEncrypted/MultiUserAKVTest.java b/src/test/java/com/microsoft/sqlserver/jdbc/AlwaysEncrypted/MultiUserAKVTest.java index 2619a79b5..1f1c544d7 100644 --- a/src/test/java/com/microsoft/sqlserver/jdbc/AlwaysEncrypted/MultiUserAKVTest.java +++ b/src/test/java/com/microsoft/sqlserver/jdbc/AlwaysEncrypted/MultiUserAKVTest.java @@ -112,7 +112,7 @@ public static void testCleanUp() throws Exception { @Test @Tag(Constants.reqExternalSetup) public void decryptedCekIsCachedDuringDecryption() throws Exception { - SQLServerColumnEncryptionAzureKeyVaultProvider provider = createAKVProvider(); + SQLServerColumnEncryptionAzureKeyVaultProvider provider = akvProvider; if (null == provider) { fail(TestResource.getResource("R_AKVProviderNull")); @@ -153,7 +153,7 @@ public void decryptedCekIsCachedDuringDecryption() throws Exception { @Test @Tag(Constants.reqExternalSetup) public void signatureVerificationResultIsCachedDuringVerification() throws Exception { - SQLServerColumnEncryptionAzureKeyVaultProvider provider = createAKVProvider(); + SQLServerColumnEncryptionAzureKeyVaultProvider provider = akvProvider; if (provider == null) { fail(TestResource.getResource("R_AKVProviderNull")); @@ -185,7 +185,7 @@ public void signatureVerificationResultIsCachedDuringVerification() throws Excep @Test @Tag(Constants.reqExternalSetup) public void cekCacheEntryIsEvictedAfterTtlExpires() throws Exception { - SQLServerColumnEncryptionAzureKeyVaultProvider provider = createAKVProvider(); + SQLServerColumnEncryptionAzureKeyVaultProvider provider = akvProvider; if (provider == null) { fail(TestResource.getResource("R_AKVProviderNull")); @@ -213,7 +213,7 @@ public void cekCacheEntryIsEvictedAfterTtlExpires() throws Exception { @Test @Tag(Constants.reqExternalSetup) public void cekCacheShouldBeDisabledWhenAkvProviderIsRegisteredGlobally() throws Exception { - SQLServerColumnEncryptionAzureKeyVaultProvider provider = createAKVProvider(); + SQLServerColumnEncryptionAzureKeyVaultProvider provider = akvProvider; if (provider == null) { fail(TestResource.getResource("R_AKVProviderNull")); @@ -258,7 +258,7 @@ public void cekCacheShouldBeDisabledWhenAkvProviderIsRegisteredGlobally() throws @Test @Tag(Constants.reqExternalSetup) public void testLocalCekCacheIsScopedToProvider() throws Exception { - SQLServerColumnEncryptionAzureKeyVaultProvider provider = createAKVProvider(); + SQLServerColumnEncryptionAzureKeyVaultProvider provider = akvProvider; if (provider == null) { fail(TestResource.getResource("R_AKVProviderNull")); @@ -609,31 +609,4 @@ private int getCacheSize(String methodName, return (int) method.invoke(provider); } - - private SQLServerColumnEncryptionAzureKeyVaultProvider createAKVProvider() throws Exception { - - SQLServerColumnEncryptionAzureKeyVaultProvider azureKeyVaultProvider = null; - - if (null != applicationClientID && null != applicationKey) { - File file = null; - try { - file = new File(Constants.MSSQL_JDBC_PROPERTIES); - try (OutputStream os = new FileOutputStream(file);) { - Properties props = new Properties(); - // Append to the list of hardcoded endpoints - props.setProperty(Constants.AKV_TRUSTED_ENDPOINTS_KEYWORD, ";vault.azure.net"); - props.store(os, ""); - } - azureKeyVaultProvider = new SQLServerColumnEncryptionAzureKeyVaultProvider(applicationClientID, - applicationKey); - - } finally { - if (null != file) { - file.delete(); - } - } - } - - return azureKeyVaultProvider; - } }