diff --git a/airbyte-integrations/connectors/source-mssql/src/test-integration/java/io/airbyte/integrations/source/mssql/CloudDeploymentSslEnabledMssqlSourceAcceptanceTest.java b/airbyte-integrations/connectors/source-mssql/src/test-integration/java/io/airbyte/integrations/source/mssql/CloudDeploymentSslEnabledMssqlSourceAcceptanceTest.java index 37767d5f99b2..f2a311d6b455 100644 --- a/airbyte-integrations/connectors/source-mssql/src/test-integration/java/io/airbyte/integrations/source/mssql/CloudDeploymentSslEnabledMssqlSourceAcceptanceTest.java +++ b/airbyte-integrations/connectors/source-mssql/src/test-integration/java/io/airbyte/integrations/source/mssql/CloudDeploymentSslEnabledMssqlSourceAcceptanceTest.java @@ -8,7 +8,6 @@ import io.airbyte.cdk.integrations.standardtest.source.TestDestinationEnv; import io.airbyte.commons.features.FeatureFlags; import io.airbyte.commons.features.FeatureFlagsWrapper; -import java.util.Map; public class CloudDeploymentSslEnabledMssqlSourceAcceptanceTest extends MssqlSourceAcceptanceTest { @@ -38,7 +37,7 @@ protected FeatureFlags featureFlags() { @Override protected JsonNode getConfig() { return testdb.integrationTestConfigBuilder() - .withSsl(Map.of("ssl_method", "encrypted_trust_server_certificate")) + .withEncrytedTrustServerCertificate() .build(); } diff --git a/airbyte-integrations/connectors/source-mssql/src/test-integration/java/io/airbyte/integrations/source/mssql/SslEnabledMssqlSourceAcceptanceTest.java b/airbyte-integrations/connectors/source-mssql/src/test-integration/java/io/airbyte/integrations/source/mssql/SslEnabledMssqlSourceAcceptanceTest.java index cd6a6e209146..ccd887c9a4b9 100644 --- a/airbyte-integrations/connectors/source-mssql/src/test-integration/java/io/airbyte/integrations/source/mssql/SslEnabledMssqlSourceAcceptanceTest.java +++ b/airbyte-integrations/connectors/source-mssql/src/test-integration/java/io/airbyte/integrations/source/mssql/SslEnabledMssqlSourceAcceptanceTest.java @@ -6,14 +6,13 @@ import com.fasterxml.jackson.databind.JsonNode; import io.airbyte.cdk.integrations.standardtest.source.TestDestinationEnv; -import java.util.Map; public class SslEnabledMssqlSourceAcceptanceTest extends MssqlSourceAcceptanceTest { @Override protected JsonNode getConfig() { return testdb.integrationTestConfigBuilder() - .withSsl(Map.of("ssl_method", "encrypted_trust_server_certificate")) + .withEncrytedTrustServerCertificate() .build(); } diff --git a/airbyte-integrations/connectors/source-mssql/src/test/java/io/airbyte/integrations/source/mssql/CloudDeploymentMssqlTest.java b/airbyte-integrations/connectors/source-mssql/src/test/java/io/airbyte/integrations/source/mssql/CloudDeploymentMssqlTest.java index 97508ceae381..1889315bea6f 100644 --- a/airbyte-integrations/connectors/source-mssql/src/test/java/io/airbyte/integrations/source/mssql/CloudDeploymentMssqlTest.java +++ b/airbyte-integrations/connectors/source-mssql/src/test/java/io/airbyte/integrations/source/mssql/CloudDeploymentMssqlTest.java @@ -15,7 +15,6 @@ import io.airbyte.commons.features.EnvVariableFeatureFlags; import io.airbyte.commons.features.FeatureFlagsWrapper; import io.airbyte.protocol.models.v0.AirbyteConnectionStatus; -import java.util.Map; import org.junit.jupiter.api.Test; import org.junit.jupiter.api.parallel.Execution; import org.junit.jupiter.api.parallel.ExecutionMode; @@ -61,7 +60,7 @@ void testStrictSSLUnsecuredNoTunnel() throws Exception { void testStrictSSLSecuredNoTunnel() throws Exception { try (final var testdb = createTestDatabase()) { final var config = testdb.testConfigBuilder() - .withSsl(Map.of("ssl_method", "encrypted_trust_server_certificate")) + .withEncrytedTrustServerCertificate() .with("tunnel_method", ImmutableMap.builder().put("tunnel_method", "NO_TUNNEL").build()) .build(); final AirbyteConnectionStatus actual = source().check(config); @@ -77,7 +76,7 @@ void testStrictSSLSecuredWithTunnel() throws Exception { .withDatabase() .with(JdbcUtils.USERNAME_KEY, testdb.getUserName()) .with(JdbcUtils.PASSWORD_KEY, "fake") - .withSsl(Map.of("ssl_method", "encrypted_trust_server_certificate")) + .withEncrytedTrustServerCertificate() .with("tunnel_method", ImmutableMap.builder().put("tunnel_method", "SSH_KEY_AUTH").build()) .build(); final AirbyteConnectionStatus actual = source().check(config); @@ -94,7 +93,7 @@ void testStrictSSLUnsecuredWithTunnel() throws Exception { .withDatabase() .with(JdbcUtils.USERNAME_KEY, testdb.getUserName()) .with(JdbcUtils.PASSWORD_KEY, "fake") - .withSsl(Map.of("ssl_method", "encrypted_trust_server_certificate")) + .withEncrytedTrustServerCertificate() .with("tunnel_method", ImmutableMap.builder().put("tunnel_method", "SSH_KEY_AUTH").build()) .build(); final AirbyteConnectionStatus actual = source().check(config); diff --git a/airbyte-integrations/connectors/source-mssql/src/test/java/io/airbyte/integrations/source/mssql/MssqlSslSourceTest.java b/airbyte-integrations/connectors/source-mssql/src/test/java/io/airbyte/integrations/source/mssql/MssqlSslSourceTest.java index c59d6a925ed5..3d5119c6c5cc 100644 --- a/airbyte-integrations/connectors/source-mssql/src/test/java/io/airbyte/integrations/source/mssql/MssqlSslSourceTest.java +++ b/airbyte-integrations/connectors/source-mssql/src/test/java/io/airbyte/integrations/source/mssql/MssqlSslSourceTest.java @@ -15,7 +15,6 @@ import io.airbyte.integrations.source.mssql.MsSQLTestDatabase.ContainerModifier; import io.airbyte.protocol.models.v0.AirbyteCatalog; import java.net.InetAddress; -import java.util.Map; import org.junit.jupiter.api.AfterEach; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.params.ParameterizedTest; @@ -43,8 +42,7 @@ public void tearDown() { public void testDiscoverWithCertificateTrustHostname(CertificateKey certificateKey) throws Exception { String certificate = testDb.getCertificate(certificateKey); JsonNode config = testDb.testConfigBuilder() - .withSsl(Map.of("ssl_method", "encrypted_verify_certificate", - "certificate", certificate)) + .withEncrytedVerifyServerCertificate(certificate, null) .build(); try { AirbyteCatalog catalog = new MssqlSource().discover(config); @@ -63,8 +61,7 @@ public void testDiscoverWithCertificateNoTrustHostnameWrongHostname(CertificateK String containerIp = InetAddress.getByName(testDb.getContainer().getHost()).getHostAddress(); String certificate = testDb.getCertificate(certificateKey); JsonNode config = testDb.configBuilder() - .withSsl(Map.of("ssl_method", "encrypted_verify_certificate", - "certificate", certificate)) + .withEncrytedVerifyServerCertificate(certificate, null) .with(JdbcUtils.HOST_KEY, containerIp) .with(JdbcUtils.PORT_KEY, testDb.getContainer().getFirstMappedPort()) .withCredentials() @@ -90,9 +87,7 @@ public void testDiscoverWithCertificateNoTrustHostnameAlternateHostname(Certific if (certificateKey.isValid) { String certificate = testDb.getCertificate(certificateKey); JsonNode config = testDb.configBuilder() - .withSsl(Map.of("ssl_method", "encrypted_verify_certificate", - "certificate", certificate, - "hostNameInCertificate", testDb.getContainer().getHost())) + .withEncrytedVerifyServerCertificate(certificate, testDb.getContainer().getHost()) .with(JdbcUtils.HOST_KEY, containerIp) .with(JdbcUtils.PORT_KEY, testDb.getContainer().getFirstMappedPort()) .withCredentials() diff --git a/airbyte-integrations/connectors/source-mssql/src/testFixtures/java/io/airbyte/integrations/source/mssql/MsSQLTestDatabase.java b/airbyte-integrations/connectors/source-mssql/src/testFixtures/java/io/airbyte/integrations/source/mssql/MsSQLTestDatabase.java index 8b570846cb69..3b79d8d496d7 100644 --- a/airbyte-integrations/connectors/source-mssql/src/testFixtures/java/io/airbyte/integrations/source/mssql/MsSQLTestDatabase.java +++ b/airbyte-integrations/connectors/source-mssql/src/testFixtures/java/io/airbyte/integrations/source/mssql/MsSQLTestDatabase.java @@ -44,7 +44,8 @@ private BaseImage(String reference) { public static enum ContainerModifier { NETWORK("withNetwork"), - AGENT("withAgent"); + AGENT("withAgent"), + WITH_SSL_CERTIFICATES("withSslCertificates"); private final String methodName; @@ -273,11 +274,26 @@ public MsSQLConfigBuilder withoutSsl() { return withSsl(Map.of("ssl_method", "unencrypted")); } - @Override + @Deprecated public MsSQLConfigBuilder withSsl(Map sslMode) { return with("ssl_method", sslMode); } + public MsSQLConfigBuilder withEncrytedTrustServerCertificate() { + return withSsl(Map.of("ssl_method", "encrypted_trust_server_certificate")); + } + + public MsSQLConfigBuilder withEncrytedVerifyServerCertificate(String certificate, String hostnameInCertificate) { + if (hostnameInCertificate != null) { + return withSsl(Map.of("ssl_method", "encrypted_verify_certificate", + "certificate", certificate, + "hostNameInCertificate", hostnameInCertificate)); + } else { + return withSsl(Map.of("ssl_method", "encrypted_verify_certificate", + "certificate", certificate)); + } + } + } }