From 5e54ebde1866616891ac2686e80af268bc7bd284 Mon Sep 17 00:00:00 2001 From: Stian Thorgersen Date: Tue, 19 Nov 2024 12:24:44 +0100 Subject: [PATCH] Move Nimbus OAuth client into separate module (#35090) Closes #34487 Signed-off-by: stianst --- test-framework/bom/pom.xml | 6 +++ test-framework/core/pom.xml | 6 --- .../framework/CoreTestFrameworkExtension.java | 4 +- test-framework/examples/tests/pom.xml | 4 ++ .../keycloak/test/examples/EventsTest.java | 4 +- .../test/examples/OAuthClientTest.java | 4 +- test-framework/oauth-nimbus-poc/pom.xml | 50 +++++++++++++++++++ .../DefaultOAuthClientConfiguration.java | 2 +- .../nimbus/NimbusTestFrameworkExtension.java | 15 ++++++ .../oauth/nimbus}/OAuthCallbackServer.java | 2 +- .../framework/oauth/nimbus}/OAuthClient.java | 2 +- .../oauth/nimbus}/OAuthClientSupplier.java | 4 +- .../annotations/InjectOAuthClient.java | 4 +- ...loak.test.framework.TestFrameworkExtension | 1 + test-framework/pom.xml | 1 + 15 files changed, 89 insertions(+), 20 deletions(-) create mode 100755 test-framework/oauth-nimbus-poc/pom.xml rename test-framework/{core/src/main/java/org/keycloak/test/framework/oauth => oauth-nimbus-poc/src/main/java/org/keycloak/test/framework/oauth/nimbus}/DefaultOAuthClientConfiguration.java (90%) create mode 100644 test-framework/oauth-nimbus-poc/src/main/java/org/keycloak/test/framework/oauth/nimbus/NimbusTestFrameworkExtension.java rename test-framework/{core/src/main/java/org/keycloak/test/framework/oauth => oauth-nimbus-poc/src/main/java/org/keycloak/test/framework/oauth/nimbus}/OAuthCallbackServer.java (97%) rename test-framework/{core/src/main/java/org/keycloak/test/framework/oauth => oauth-nimbus-poc/src/main/java/org/keycloak/test/framework/oauth/nimbus}/OAuthClient.java (99%) rename test-framework/{core/src/main/java/org/keycloak/test/framework/oauth => oauth-nimbus-poc/src/main/java/org/keycloak/test/framework/oauth/nimbus}/OAuthClientSupplier.java (92%) rename test-framework/{core/src/main/java/org/keycloak/test/framework => oauth-nimbus-poc/src/main/java/org/keycloak/test/framework/oauth/nimbus}/annotations/InjectOAuthClient.java (74%) create mode 100644 test-framework/oauth-nimbus-poc/src/main/resources/META-INF/services/org.keycloak.test.framework.TestFrameworkExtension diff --git a/test-framework/bom/pom.xml b/test-framework/bom/pom.xml index 890effeb194..5a5576e8c5a 100755 --- a/test-framework/bom/pom.xml +++ b/test-framework/bom/pom.xml @@ -45,6 +45,12 @@ ${project.version} test + + org.keycloak.test + keycloak-test-framework-oauth-nimbus-poc + ${project.version} + test + org.keycloak.test keycloak-test-framework-db-mariadb diff --git a/test-framework/core/pom.xml b/test-framework/core/pom.xml index 02469beb226..9a5a807f86d 100755 --- a/test-framework/core/pom.xml +++ b/test-framework/core/pom.xml @@ -44,12 +44,6 @@ org.keycloak keycloak-junit5 - - - com.nimbusds - oauth2-oidc-sdk - 11.13 - diff --git a/test-framework/core/src/main/java/org/keycloak/test/framework/CoreTestFrameworkExtension.java b/test-framework/core/src/main/java/org/keycloak/test/framework/CoreTestFrameworkExtension.java index 80f49f25c20..1c629a795e8 100644 --- a/test-framework/core/src/main/java/org/keycloak/test/framework/CoreTestFrameworkExtension.java +++ b/test-framework/core/src/main/java/org/keycloak/test/framework/CoreTestFrameworkExtension.java @@ -9,15 +9,14 @@ import org.keycloak.test.framework.events.EventsSupplier; import org.keycloak.test.framework.events.SysLogServerSupplier; import org.keycloak.test.framework.http.HttpClientSupplier; import org.keycloak.test.framework.injection.Supplier; -import org.keycloak.test.framework.oauth.OAuthClientSupplier; import org.keycloak.test.framework.realm.ClientSupplier; import org.keycloak.test.framework.realm.RealmSupplier; import org.keycloak.test.framework.realm.UserSupplier; import org.keycloak.test.framework.server.DistributionKeycloakTestServerSupplier; import org.keycloak.test.framework.server.EmbeddedKeycloakTestServerSupplier; import org.keycloak.test.framework.server.KeycloakTestServer; -import org.keycloak.test.framework.server.RemoteKeycloakTestServerSupplier; import org.keycloak.test.framework.server.KeycloakUrlsSupplier; +import org.keycloak.test.framework.server.RemoteKeycloakTestServerSupplier; import java.util.List; import java.util.Map; @@ -37,7 +36,6 @@ public class CoreTestFrameworkExtension implements TestFrameworkExtension { new KeycloakUrlsSupplier(), new DevMemDatabaseSupplier(), new DevFileDatabaseSupplier(), - new OAuthClientSupplier(), new SysLogServerSupplier(), new EventsSupplier(), new AdminEventsSupplier(), diff --git a/test-framework/examples/tests/pom.xml b/test-framework/examples/tests/pom.xml index 0c7cd6c7151..ebdacdcb31e 100644 --- a/test-framework/examples/tests/pom.xml +++ b/test-framework/examples/tests/pom.xml @@ -68,6 +68,10 @@ org.keycloak.test keycloak-test-framework-db-postgres + + org.keycloak.test + keycloak-test-framework-oauth-nimbus-poc + org.keycloak.test keycloak-test-framework-ui diff --git a/test-framework/examples/tests/src/test/java/org/keycloak/test/examples/EventsTest.java b/test-framework/examples/tests/src/test/java/org/keycloak/test/examples/EventsTest.java index 295cd534399..7f9a0b3c6f5 100644 --- a/test-framework/examples/tests/src/test/java/org/keycloak/test/examples/EventsTest.java +++ b/test-framework/examples/tests/src/test/java/org/keycloak/test/examples/EventsTest.java @@ -5,12 +5,12 @@ import org.junit.jupiter.api.Assertions; import org.junit.jupiter.api.Test; import org.keycloak.events.EventType; import org.keycloak.test.framework.annotations.InjectEvents; -import org.keycloak.test.framework.annotations.InjectOAuthClient; +import org.keycloak.test.framework.oauth.nimbus.annotations.InjectOAuthClient; import org.keycloak.test.framework.ui.annotations.InjectPage; import org.keycloak.test.framework.ui.annotations.InjectWebDriver; import org.keycloak.test.framework.annotations.KeycloakIntegrationTest; import org.keycloak.test.framework.events.Events; -import org.keycloak.test.framework.oauth.OAuthClient; +import org.keycloak.test.framework.oauth.nimbus.OAuthClient; import org.keycloak.test.framework.ui.page.LoginPage; import org.keycloak.test.framework.server.KeycloakTestServerConfig; import org.openqa.selenium.WebDriver; diff --git a/test-framework/examples/tests/src/test/java/org/keycloak/test/examples/OAuthClientTest.java b/test-framework/examples/tests/src/test/java/org/keycloak/test/examples/OAuthClientTest.java index 95a55a25f34..35c81578cc0 100644 --- a/test-framework/examples/tests/src/test/java/org/keycloak/test/examples/OAuthClientTest.java +++ b/test-framework/examples/tests/src/test/java/org/keycloak/test/examples/OAuthClientTest.java @@ -7,10 +7,10 @@ import com.nimbusds.oauth2.sdk.token.AccessToken; import jakarta.ws.rs.core.Response; import org.junit.jupiter.api.Assertions; import org.junit.jupiter.api.Test; -import org.keycloak.test.framework.annotations.InjectOAuthClient; +import org.keycloak.test.framework.oauth.nimbus.annotations.InjectOAuthClient; import org.keycloak.test.framework.annotations.InjectUser; import org.keycloak.test.framework.annotations.KeycloakIntegrationTest; -import org.keycloak.test.framework.oauth.OAuthClient; +import org.keycloak.test.framework.oauth.nimbus.OAuthClient; import org.keycloak.test.framework.realm.ManagedUser; import org.keycloak.test.framework.realm.UserConfig; import org.keycloak.test.framework.realm.UserConfigBuilder; diff --git a/test-framework/oauth-nimbus-poc/pom.xml b/test-framework/oauth-nimbus-poc/pom.xml new file mode 100755 index 00000000000..e7057502e75 --- /dev/null +++ b/test-framework/oauth-nimbus-poc/pom.xml @@ -0,0 +1,50 @@ + + + + + + keycloak-test-framework-parent + org.keycloak.test + 999.0.0-SNAPSHOT + ../pom.xml + + 4.0.0 + + keycloak-test-framework-oauth-nimbus-poc + Keycloak Test Framework + jar + Nimbus OAuth PoC extension for Keycloak Test Framework + + + 11.13 + + + + + org.keycloak.test + keycloak-test-framework-core + ${project.version} + + + com.nimbusds + oauth2-oidc-sdk + ${nimbus-sdk.version} + + + diff --git a/test-framework/core/src/main/java/org/keycloak/test/framework/oauth/DefaultOAuthClientConfiguration.java b/test-framework/oauth-nimbus-poc/src/main/java/org/keycloak/test/framework/oauth/nimbus/DefaultOAuthClientConfiguration.java similarity index 90% rename from test-framework/core/src/main/java/org/keycloak/test/framework/oauth/DefaultOAuthClientConfiguration.java rename to test-framework/oauth-nimbus-poc/src/main/java/org/keycloak/test/framework/oauth/nimbus/DefaultOAuthClientConfiguration.java index 83baf53a06d..245cdb835b9 100644 --- a/test-framework/core/src/main/java/org/keycloak/test/framework/oauth/DefaultOAuthClientConfiguration.java +++ b/test-framework/oauth-nimbus-poc/src/main/java/org/keycloak/test/framework/oauth/nimbus/DefaultOAuthClientConfiguration.java @@ -1,4 +1,4 @@ -package org.keycloak.test.framework.oauth; +package org.keycloak.test.framework.oauth.nimbus; import org.keycloak.test.framework.realm.ClientConfig; import org.keycloak.test.framework.realm.ClientConfigBuilder; diff --git a/test-framework/oauth-nimbus-poc/src/main/java/org/keycloak/test/framework/oauth/nimbus/NimbusTestFrameworkExtension.java b/test-framework/oauth-nimbus-poc/src/main/java/org/keycloak/test/framework/oauth/nimbus/NimbusTestFrameworkExtension.java new file mode 100644 index 00000000000..f8fb49e974b --- /dev/null +++ b/test-framework/oauth-nimbus-poc/src/main/java/org/keycloak/test/framework/oauth/nimbus/NimbusTestFrameworkExtension.java @@ -0,0 +1,15 @@ +package org.keycloak.test.framework.oauth.nimbus; + +import org.keycloak.test.framework.TestFrameworkExtension; +import org.keycloak.test.framework.injection.Supplier; + +import java.util.List; + +public class NimbusTestFrameworkExtension implements TestFrameworkExtension { + + @Override + public List> suppliers() { + return List.of(new OAuthClientSupplier()); + } + +} diff --git a/test-framework/core/src/main/java/org/keycloak/test/framework/oauth/OAuthCallbackServer.java b/test-framework/oauth-nimbus-poc/src/main/java/org/keycloak/test/framework/oauth/nimbus/OAuthCallbackServer.java similarity index 97% rename from test-framework/core/src/main/java/org/keycloak/test/framework/oauth/OAuthCallbackServer.java rename to test-framework/oauth-nimbus-poc/src/main/java/org/keycloak/test/framework/oauth/nimbus/OAuthCallbackServer.java index 2a96b51b9b1..2bd726c62f7 100644 --- a/test-framework/core/src/main/java/org/keycloak/test/framework/oauth/OAuthCallbackServer.java +++ b/test-framework/oauth-nimbus-poc/src/main/java/org/keycloak/test/framework/oauth/nimbus/OAuthCallbackServer.java @@ -1,4 +1,4 @@ -package org.keycloak.test.framework.oauth; +package org.keycloak.test.framework.oauth.nimbus; import com.sun.net.httpserver.HttpExchange; import com.sun.net.httpserver.HttpHandler; diff --git a/test-framework/core/src/main/java/org/keycloak/test/framework/oauth/OAuthClient.java b/test-framework/oauth-nimbus-poc/src/main/java/org/keycloak/test/framework/oauth/nimbus/OAuthClient.java similarity index 99% rename from test-framework/core/src/main/java/org/keycloak/test/framework/oauth/OAuthClient.java rename to test-framework/oauth-nimbus-poc/src/main/java/org/keycloak/test/framework/oauth/nimbus/OAuthClient.java index 393591197d7..73c4fd5878a 100644 --- a/test-framework/core/src/main/java/org/keycloak/test/framework/oauth/OAuthClient.java +++ b/test-framework/oauth-nimbus-poc/src/main/java/org/keycloak/test/framework/oauth/nimbus/OAuthClient.java @@ -1,4 +1,4 @@ -package org.keycloak.test.framework.oauth; +package org.keycloak.test.framework.oauth.nimbus; import com.nimbusds.oauth2.sdk.AuthorizationCode; import com.nimbusds.oauth2.sdk.AuthorizationCodeGrant; diff --git a/test-framework/core/src/main/java/org/keycloak/test/framework/oauth/OAuthClientSupplier.java b/test-framework/oauth-nimbus-poc/src/main/java/org/keycloak/test/framework/oauth/nimbus/OAuthClientSupplier.java similarity index 92% rename from test-framework/core/src/main/java/org/keycloak/test/framework/oauth/OAuthClientSupplier.java rename to test-framework/oauth-nimbus-poc/src/main/java/org/keycloak/test/framework/oauth/nimbus/OAuthClientSupplier.java index 66b7b6b64b1..abe55dc8f08 100644 --- a/test-framework/core/src/main/java/org/keycloak/test/framework/oauth/OAuthClientSupplier.java +++ b/test-framework/oauth-nimbus-poc/src/main/java/org/keycloak/test/framework/oauth/nimbus/OAuthClientSupplier.java @@ -1,6 +1,6 @@ -package org.keycloak.test.framework.oauth; +package org.keycloak.test.framework.oauth.nimbus; -import org.keycloak.test.framework.annotations.InjectOAuthClient; +import org.keycloak.test.framework.oauth.nimbus.annotations.InjectOAuthClient; import org.keycloak.test.framework.injection.InstanceContext; import org.keycloak.test.framework.injection.LifeCycle; import org.keycloak.test.framework.injection.RequestedInstance; diff --git a/test-framework/core/src/main/java/org/keycloak/test/framework/annotations/InjectOAuthClient.java b/test-framework/oauth-nimbus-poc/src/main/java/org/keycloak/test/framework/oauth/nimbus/annotations/InjectOAuthClient.java similarity index 74% rename from test-framework/core/src/main/java/org/keycloak/test/framework/annotations/InjectOAuthClient.java rename to test-framework/oauth-nimbus-poc/src/main/java/org/keycloak/test/framework/oauth/nimbus/annotations/InjectOAuthClient.java index e4404a3b221..c18055f09a5 100644 --- a/test-framework/core/src/main/java/org/keycloak/test/framework/annotations/InjectOAuthClient.java +++ b/test-framework/oauth-nimbus-poc/src/main/java/org/keycloak/test/framework/oauth/nimbus/annotations/InjectOAuthClient.java @@ -1,6 +1,6 @@ -package org.keycloak.test.framework.annotations; +package org.keycloak.test.framework.oauth.nimbus.annotations; -import org.keycloak.test.framework.oauth.DefaultOAuthClientConfiguration; +import org.keycloak.test.framework.oauth.nimbus.DefaultOAuthClientConfiguration; import org.keycloak.test.framework.realm.ClientConfig; import java.lang.annotation.ElementType; diff --git a/test-framework/oauth-nimbus-poc/src/main/resources/META-INF/services/org.keycloak.test.framework.TestFrameworkExtension b/test-framework/oauth-nimbus-poc/src/main/resources/META-INF/services/org.keycloak.test.framework.TestFrameworkExtension new file mode 100644 index 00000000000..eb7234c6ab0 --- /dev/null +++ b/test-framework/oauth-nimbus-poc/src/main/resources/META-INF/services/org.keycloak.test.framework.TestFrameworkExtension @@ -0,0 +1 @@ +org.keycloak.test.framework.oauth.nimbus.NimbusTestFrameworkExtension \ No newline at end of file diff --git a/test-framework/pom.xml b/test-framework/pom.xml index 52a50b75d92..4c0ef7beb5c 100755 --- a/test-framework/pom.xml +++ b/test-framework/pom.xml @@ -40,6 +40,7 @@ db-mysql db-oracle db-postgres + oauth-nimbus-poc ui examples