From 0e3f1c916c74837da038a8547785115987f4843c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Michal=20Vav=C5=99=C3=ADk?= Date: Wed, 16 Oct 2024 21:27:29 +0200 Subject: [PATCH] Fix MSSQL tests in FIPS-enabled environment --- .../reactive/MsSQLDatabaseHibernateReactiveIT.java | 4 ++-- .../MssqlTransactionGeneralUsageIT.java | 3 +-- .../rest/data/panache/MssqlPanacheResourceIT.java | 4 ++-- ...odeReactiveMssqlDevServiceUserExperienceIT.java | 3 +-- .../ts/sqldb/compatibility/MssqlDatabaseIT.java | 4 ++-- .../DevModeMssqlDevServicesUserExperienceIT.java | 3 +-- .../quarkus/ts/sqldb/sqlapp/MssqlDatabaseIT.java | 14 +++++++++++--- .../ts/vertx/sql/handlers/MssqlHandlerIT.java | 4 ++-- 8 files changed, 22 insertions(+), 17 deletions(-) diff --git a/sql-db/hibernate-reactive/src/test/java/io/quarkus/ts/hibernate/reactive/MsSQLDatabaseHibernateReactiveIT.java b/sql-db/hibernate-reactive/src/test/java/io/quarkus/ts/hibernate/reactive/MsSQLDatabaseHibernateReactiveIT.java index 9324b9e89..061865596 100644 --- a/sql-db/hibernate-reactive/src/test/java/io/quarkus/ts/hibernate/reactive/MsSQLDatabaseHibernateReactiveIT.java +++ b/sql-db/hibernate-reactive/src/test/java/io/quarkus/ts/hibernate/reactive/MsSQLDatabaseHibernateReactiveIT.java @@ -1,15 +1,15 @@ package io.quarkus.ts.hibernate.reactive; +import org.junit.jupiter.api.Tag; import org.junit.jupiter.api.condition.DisabledIfSystemProperty; import io.quarkus.test.bootstrap.RestService; import io.quarkus.test.bootstrap.SqlServerService; import io.quarkus.test.scenarios.QuarkusScenario; -import io.quarkus.test.scenarios.annotations.DisabledOnFipsAndJava17; import io.quarkus.test.services.QuarkusApplication; import io.quarkus.test.services.SqlServerContainer; -@DisabledOnFipsAndJava17(reason = "https://github.com/quarkusio/quarkus/issues/40813") +@Tag("fips-incompatible") // MSSQL works with BC JSSE FIPS which is not native-compatible, we test FIPS elsewhere @DisabledIfSystemProperty(named = "ts.arm.missing.services.excludes", matches = "true", disabledReason = "https://github.com/quarkus-qe/quarkus-test-suite/issues/2017") @QuarkusScenario public class MsSQLDatabaseHibernateReactiveIT extends AbstractDatabaseHibernateReactiveIT { diff --git a/sql-db/narayana-transactions/src/test/java/io/quarkus/ts/transactions/MssqlTransactionGeneralUsageIT.java b/sql-db/narayana-transactions/src/test/java/io/quarkus/ts/transactions/MssqlTransactionGeneralUsageIT.java index 18fea2345..0bcf98023 100644 --- a/sql-db/narayana-transactions/src/test/java/io/quarkus/ts/transactions/MssqlTransactionGeneralUsageIT.java +++ b/sql-db/narayana-transactions/src/test/java/io/quarkus/ts/transactions/MssqlTransactionGeneralUsageIT.java @@ -17,13 +17,12 @@ import io.quarkus.test.bootstrap.RestService; import io.quarkus.test.bootstrap.SqlServerService; import io.quarkus.test.scenarios.QuarkusScenario; -import io.quarkus.test.scenarios.annotations.DisabledOnFipsAndJava17; import io.quarkus.test.services.QuarkusApplication; import io.quarkus.test.services.SqlServerContainer; import io.quarkus.ts.transactions.recovery.TransactionExecutor; import io.restassured.response.Response; -@DisabledOnFipsAndJava17(reason = "https://github.com/quarkusio/quarkus/issues/40813") +@Tag("fips-incompatible") // MSSQL works with BC JSSE FIPS which is not native-compatible, we test FIPS elsewhere @DisabledIfSystemProperty(named = "ts.arm.missing.services.excludes", matches = "true", disabledReason = "https://github.com/quarkus-qe/quarkus-test-suite/issues/2017") @QuarkusScenario public class MssqlTransactionGeneralUsageIT extends TransactionCommons { diff --git a/sql-db/reactive-rest-data-panache/src/test/java/io/quarkus/ts/reactive/rest/data/panache/MssqlPanacheResourceIT.java b/sql-db/reactive-rest-data-panache/src/test/java/io/quarkus/ts/reactive/rest/data/panache/MssqlPanacheResourceIT.java index b8b1fe38b..819b4817f 100644 --- a/sql-db/reactive-rest-data-panache/src/test/java/io/quarkus/ts/reactive/rest/data/panache/MssqlPanacheResourceIT.java +++ b/sql-db/reactive-rest-data-panache/src/test/java/io/quarkus/ts/reactive/rest/data/panache/MssqlPanacheResourceIT.java @@ -1,15 +1,15 @@ package io.quarkus.ts.reactive.rest.data.panache; +import org.junit.jupiter.api.Tag; import org.junit.jupiter.api.condition.DisabledIfSystemProperty; import io.quarkus.test.bootstrap.RestService; import io.quarkus.test.bootstrap.SqlServerService; import io.quarkus.test.scenarios.QuarkusScenario; -import io.quarkus.test.scenarios.annotations.DisabledOnFipsAndJava17; import io.quarkus.test.services.QuarkusApplication; import io.quarkus.test.services.SqlServerContainer; -@DisabledOnFipsAndJava17(reason = "https://github.com/quarkusio/quarkus/issues/40813") +@Tag("fips-incompatible") // MSSQL works with BC JSSE FIPS which is not native-compatible, we test FIPS elsewhere @DisabledIfSystemProperty(named = "ts.arm.missing.services.excludes", matches = "true", disabledReason = "https://github.com/quarkus-qe/quarkus-test-suite/issues/2017") @QuarkusScenario public class MssqlPanacheResourceIT extends AbstractPanacheResourceIT { diff --git a/sql-db/reactive-vanilla/src/test/java/io/quarkus/ts/reactive/db/clients/DevModeReactiveMssqlDevServiceUserExperienceIT.java b/sql-db/reactive-vanilla/src/test/java/io/quarkus/ts/reactive/db/clients/DevModeReactiveMssqlDevServiceUserExperienceIT.java index 490679644..71882b114 100644 --- a/sql-db/reactive-vanilla/src/test/java/io/quarkus/ts/reactive/db/clients/DevModeReactiveMssqlDevServiceUserExperienceIT.java +++ b/sql-db/reactive-vanilla/src/test/java/io/quarkus/ts/reactive/db/clients/DevModeReactiveMssqlDevServiceUserExperienceIT.java @@ -12,11 +12,10 @@ import io.quarkus.test.bootstrap.RestService; import io.quarkus.test.scenarios.QuarkusScenario; -import io.quarkus.test.scenarios.annotations.DisabledOnFipsAndJava17; import io.quarkus.test.services.DevModeQuarkusApplication; import io.quarkus.test.utils.DockerUtils; -@DisabledOnFipsAndJava17(reason = "https://github.com/quarkusio/quarkus/issues/40813") +@Tag("fips-incompatible") // MSSQL works with BC JSSE FIPS which is not native-compatible, we test FIPS elsewhere @DisabledIfSystemProperty(named = "ts.arm.missing.services.excludes", matches = "true", disabledReason = "https://github.com/quarkusio/quarkus/issues/43375") @Tag("QUARKUS-1408") @QuarkusScenario diff --git a/sql-db/sql-app-compatibility/src/test/java/io/quarkus/ts/sqldb/compatibility/MssqlDatabaseIT.java b/sql-db/sql-app-compatibility/src/test/java/io/quarkus/ts/sqldb/compatibility/MssqlDatabaseIT.java index cdb6f1d41..da8c82eca 100644 --- a/sql-db/sql-app-compatibility/src/test/java/io/quarkus/ts/sqldb/compatibility/MssqlDatabaseIT.java +++ b/sql-db/sql-app-compatibility/src/test/java/io/quarkus/ts/sqldb/compatibility/MssqlDatabaseIT.java @@ -1,15 +1,15 @@ package io.quarkus.ts.sqldb.compatibility; +import org.junit.jupiter.api.Tag; import org.junit.jupiter.api.condition.DisabledIfSystemProperty; import io.quarkus.test.bootstrap.RestService; import io.quarkus.test.bootstrap.SqlServerService; import io.quarkus.test.scenarios.QuarkusScenario; -import io.quarkus.test.scenarios.annotations.DisabledOnFipsAndJava17; import io.quarkus.test.services.QuarkusApplication; import io.quarkus.test.services.SqlServerContainer; -@DisabledOnFipsAndJava17(reason = "https://github.com/quarkusio/quarkus/issues/40813") +@Tag("fips-incompatible") // MSSQL works with BC JSSE FIPS which is not native-compatible, we test FIPS elsewhere @DisabledIfSystemProperty(named = "ts.arm.missing.services.excludes", matches = "true", disabledReason = "https://github.com/quarkus-qe/quarkus-test-suite/issues/2017") @QuarkusScenario public class MssqlDatabaseIT extends AbstractSqlDatabaseIT { diff --git a/sql-db/sql-app/src/test/java/io/quarkus/ts/sqldb/sqlapp/DevModeMssqlDevServicesUserExperienceIT.java b/sql-db/sql-app/src/test/java/io/quarkus/ts/sqldb/sqlapp/DevModeMssqlDevServicesUserExperienceIT.java index 4b5fa1458..beb87ffb4 100644 --- a/sql-db/sql-app/src/test/java/io/quarkus/ts/sqldb/sqlapp/DevModeMssqlDevServicesUserExperienceIT.java +++ b/sql-db/sql-app/src/test/java/io/quarkus/ts/sqldb/sqlapp/DevModeMssqlDevServicesUserExperienceIT.java @@ -13,12 +13,11 @@ import io.quarkus.test.bootstrap.RestService; import io.quarkus.test.scenarios.QuarkusScenario; -import io.quarkus.test.scenarios.annotations.DisabledOnFipsAndJava17; import io.quarkus.test.services.DevModeQuarkusApplication; import io.quarkus.test.utils.DockerUtils; import io.quarkus.test.utils.SocketUtils; -@DisabledOnFipsAndJava17(reason = "https://github.com/quarkusio/quarkus/issues/40813") +@Tag("fips-incompatible") // MSSQL works with BC JSSE FIPS which is not native-compatible, we test FIPS elsewhere @DisabledIfSystemProperty(named = "ts.arm.missing.services.excludes", matches = "true", disabledReason = "https://github.com/quarkusio/quarkus/issues/43375") @Tag("QUARKUS-959") @QuarkusScenario diff --git a/sql-db/sql-app/src/test/java/io/quarkus/ts/sqldb/sqlapp/MssqlDatabaseIT.java b/sql-db/sql-app/src/test/java/io/quarkus/ts/sqldb/sqlapp/MssqlDatabaseIT.java index 9f4e16962..b09b05794 100644 --- a/sql-db/sql-app/src/test/java/io/quarkus/ts/sqldb/sqlapp/MssqlDatabaseIT.java +++ b/sql-db/sql-app/src/test/java/io/quarkus/ts/sqldb/sqlapp/MssqlDatabaseIT.java @@ -5,11 +5,12 @@ import io.quarkus.test.bootstrap.RestService; import io.quarkus.test.bootstrap.SqlServerService; import io.quarkus.test.scenarios.QuarkusScenario; -import io.quarkus.test.scenarios.annotations.DisabledOnFipsAndJava17; +import io.quarkus.test.scenarios.annotations.DisabledOnNative; +import io.quarkus.test.services.Dependency; import io.quarkus.test.services.QuarkusApplication; import io.quarkus.test.services.SqlServerContainer; -@DisabledOnFipsAndJava17(reason = "https://github.com/quarkusio/quarkus/issues/40813") +@DisabledOnNative(reason = "BouncyCastle JSSE FIPS doesn't work in native but is required for FIPS-enabled environments") @DisabledIfSystemProperty(named = "ts.arm.missing.services.excludes", matches = "true", disabledReason = "https://github.com/quarkus-qe/quarkus-test-suite/issues/2017") @QuarkusScenario public class MssqlDatabaseIT extends AbstractSqlDatabaseIT { @@ -17,10 +18,17 @@ public class MssqlDatabaseIT extends AbstractSqlDatabaseIT { @SqlServerContainer(tlsEnabled = true) static SqlServerService database = new SqlServerService(); - @QuarkusApplication + @QuarkusApplication(dependencies = { + // added here as BouncyCastle JSSE FIPS is not compatible with native mode + @Dependency(groupId = "io.quarkus", artifactId = "quarkus-security"), + @Dependency(groupId = "org.bouncycastle", artifactId = "bctls-jdk18on"), + @Dependency(groupId = "org.bouncycastle", artifactId = "bctls-fips"), + @Dependency(groupId = "org.bouncycastle", artifactId = "bc-fips") + }) static final RestService app = new RestService() .withProperties(database::getTlsProperties) .withProperties("mssql.properties") + .withProperty("quarkus.security.security-providers", "BCFIPSJSSE") .withProperty("quarkus.datasource.username", database.getUser()) .withProperty("quarkus.datasource.password", database.getPassword()) .withProperty("quarkus.datasource.jdbc.url", database::getJdbcUrl); diff --git a/sql-db/vertx-sql/src/test/java/io/quarkus/ts/vertx/sql/handlers/MssqlHandlerIT.java b/sql-db/vertx-sql/src/test/java/io/quarkus/ts/vertx/sql/handlers/MssqlHandlerIT.java index cffaccc5c..c548550fe 100644 --- a/sql-db/vertx-sql/src/test/java/io/quarkus/ts/vertx/sql/handlers/MssqlHandlerIT.java +++ b/sql-db/vertx-sql/src/test/java/io/quarkus/ts/vertx/sql/handlers/MssqlHandlerIT.java @@ -1,15 +1,15 @@ package io.quarkus.ts.vertx.sql.handlers; +import org.junit.jupiter.api.Tag; import org.junit.jupiter.api.condition.DisabledIfSystemProperty; import io.quarkus.test.bootstrap.RestService; import io.quarkus.test.bootstrap.SqlServerService; import io.quarkus.test.scenarios.QuarkusScenario; -import io.quarkus.test.scenarios.annotations.DisabledOnFipsAndJava17; import io.quarkus.test.services.QuarkusApplication; import io.quarkus.test.services.SqlServerContainer; -@DisabledOnFipsAndJava17(reason = "https://github.com/quarkusio/quarkus/issues/40813") +@Tag("fips-incompatible") // MSSQL works with BC JSSE FIPS which is not native-compatible, we test FIPS elsewhere @DisabledIfSystemProperty(named = "ts.arm.missing.services.excludes", matches = "true", disabledReason = "https://github.com/quarkus-qe/quarkus-test-suite/issues/2017") @QuarkusScenario public class MssqlHandlerIT extends CommonTestCases {