From a19f8f8dadb0fc79d397caf04a5bee02cd3e307d Mon Sep 17 00:00:00 2001 From: Titouan Compiegne Date: Tue, 30 May 2023 09:17:02 +0200 Subject: [PATCH] feat(idp): support Oracle database for JDBC IdP closes AM-586 --- .../gravitee-am-identityprovider-jdbc/pom.xml | 88 ++++++++----------- .../JdbcIdentityProviderConfiguration.java | 7 +- .../jdbc/user/JdbcUserProvider.java | 11 ++- .../jdbc/utils/ColumnMapRowMapper.java | 7 +- .../jdbc/utils/ParametersUtils.java | 4 +- .../src/main/resources/database/oracle.schema | 7 ++ .../main/resources/schemas/schema-form.json | 10 ++- ...JdbcAuthenticationProvider_OracleTest.java | 28 ++++++ ...ationProviderConfigurationTest_Oracle.java | 35 ++++++++ .../user/JdbcUserProvider_OracleTest.java | 28 ++++++ .../gravitee-am-reporter-jdbc/pom.xml | 8 +- .../jdbc/JdbcReporterConfiguration.java | 4 +- .../audit/JdbcReporterJUnitConfiguration.java | 15 ++-- .../gravitee-am-repository-jdbc-api/pom.xml | 9 +- .../impl/ConnectionFactoryProvider.java | 20 +++-- .../gravitee-am-repository-jdbc/pom.xml | 54 +++--------- .../AbstractTestRepositoryConfiguration.java | 4 +- 17 files changed, 203 insertions(+), 136 deletions(-) create mode 100644 gravitee-am-identityprovider/gravitee-am-identityprovider-jdbc/src/main/resources/database/oracle.schema create mode 100644 gravitee-am-identityprovider/gravitee-am-identityprovider-jdbc/src/test/java/io/gravitee/am/identityprovider/jdbc/authentication/JdbcAuthenticationProvider_OracleTest.java create mode 100644 gravitee-am-identityprovider/gravitee-am-identityprovider-jdbc/src/test/java/io/gravitee/am/identityprovider/jdbc/configuration/JdbcAuthenticationProviderConfigurationTest_Oracle.java create mode 100644 gravitee-am-identityprovider/gravitee-am-identityprovider-jdbc/src/test/java/io/gravitee/am/identityprovider/jdbc/user/JdbcUserProvider_OracleTest.java diff --git a/gravitee-am-identityprovider/gravitee-am-identityprovider-jdbc/pom.xml b/gravitee-am-identityprovider/gravitee-am-identityprovider-jdbc/pom.xml index 74eead03a5a..7d24e3a6218 100644 --- a/gravitee-am-identityprovider/gravitee-am-identityprovider-jdbc/pom.xml +++ b/gravitee-am-identityprovider/gravitee-am-identityprovider-jdbc/pom.xml @@ -33,15 +33,23 @@ Gravitee IO - Access Management - Identity Provider - JDBC - 0.8.6.RELEASE - 0.8.11.RELEASE - 0.8.7.RELEASE - 0.8.2.RELEASE - 1.0.0 - 0.8.4.RELEASE + Borca-SR2 + 0.9.3 1.4.1 + + + + io.r2dbc + r2dbc-bom + ${r2dbc-releasetrain.version} + pom + import + + + + @@ -86,64 +94,30 @@ - io.r2dbc + org.postgresql r2dbc-postgresql - ${r2dbc-postgresql.version} - - - r2dbc-spi - io.r2dbc - - - reactor-core - io.projectreactor - - + provided io.r2dbc r2dbc-mssql - ${r2dbc-mssql.version} - - - r2dbc-spi - io.r2dbc - - - reactor-core - io.projectreactor - - + provided - dev.miku + io.asyncer r2dbc-mysql ${r2dbc-mysql.version} - - - r2dbc-spi - io.r2dbc - - - reactor-core - io.projectreactor - - + provided org.mariadb r2dbc-mariadb - ${r2dbc-mariadb.version} - - - r2dbc-spi - io.r2dbc - - - reactor-core - io.projectreactor - - + provided + + + com.oracle.database.r2dbc + oracle-r2dbc + provided @@ -214,6 +188,18 @@ ${test-container.version} test + + org.testcontainers + oracle-xe + 1.18.1 + test + + + com.oracle.database.jdbc + ojdbc11 + 21.7.0.0 + test + - io.r2dbc + org.postgresql r2dbc-postgresql - - - reactor-core - io.projectreactor - - - r2dbc-spi - io.r2dbc - - provided io.r2dbc r2dbc-mssql - - - reactor-core - io.projectreactor - - - r2dbc-spi - io.r2dbc - - provided - dev.miku + io.asyncer r2dbc-mysql - - - reactor-core - io.projectreactor - - - r2dbc-spi - io.r2dbc - - + ${r2dbc-mysql.version} provided org.mariadb r2dbc-mariadb - - - reactor-core - io.projectreactor - - - r2dbc-spi - io.r2dbc - - + provided + + + com.oracle.database.r2dbc + oracle-r2dbc provided @@ -224,7 +191,6 @@ provided - com.github.dozermapper diff --git a/gravitee-am-repository/gravitee-am-repository-jdbc/src/test/java/io/gravitee/am/repository/jdbc/common/AbstractTestRepositoryConfiguration.java b/gravitee-am-repository/gravitee-am-repository-jdbc/src/test/java/io/gravitee/am/repository/jdbc/common/AbstractTestRepositoryConfiguration.java index 1b95acd5324..1d8e77644a5 100644 --- a/gravitee-am-repository/gravitee-am-repository-jdbc/src/test/java/io/gravitee/am/repository/jdbc/common/AbstractTestRepositoryConfiguration.java +++ b/gravitee-am-repository/gravitee-am-repository-jdbc/src/test/java/io/gravitee/am/repository/jdbc/common/AbstractTestRepositoryConfiguration.java @@ -64,7 +64,7 @@ protected void initializeDatabaseSchema(ConnectionFactoryOptions options, Enviro final String jdbcUrl = container.getJdbcUrl(); try (Connection connection = DriverManager.getConnection(jdbcUrl, - options.getValue(USER), options.getValue(PASSWORD).toString())) { + options.getValue(USER).toString(), options.getValue(PASSWORD).toString())) { LOGGER.debug("Running Liquibase on {}", jdbcUrl); runLiquibase(connection); runLiquibase_addSpecificTestIndexes(connection); @@ -124,7 +124,7 @@ public ConnectionFactory connectionFactory() { options = ConnectionFactoryOptions.builder() .from(options) .option(DRIVER, "pool") - .option(PROTOCOL, options.getValue(DRIVER)) + .option(PROTOCOL, options.getValue(DRIVER).toString()) .build(); return ConnectionFactories.get(options); }