8000 is-45364 Proposal for getClientApi() helper method by robson90 · Pull Request #47527 · keycloak/keycloak · GitHub
[go: up one dir, main page]

Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,10 @@

import jakarta.ws.rs.core.HttpHeaders;

import org.keycloak.admin.api.client.ClientApi;
import org.keycloak.admin.client.Keycloak;
import org.keycloak.services.client.ClientServiceHelper;
import org.keycloak.testframework.realm.ManagedRealm;
import org.keycloak.testframework.remote.runonserver.InjectRunOnServer;
import org.keycloak.testframework.remote.runonserver.RunOnServerClient;

Expand All @@ -14,6 +16,8 @@
import org.junit.jupiter.api.BeforeEach;

public abstract class AbstractClientApiV2Test {
protected abstract Keycloak getAdminClient();
protected abstract ManagedRealm getTestRealm();
protected static ObjectMapper mapper;

public String getRealmName() {
Expand All @@ -27,6 +31,10 @@ public String getClientApiUrl(String clientId) {
return "http://localhost:8080/admin/api/%s/clients/v2/%s".formatted(getRealmName(), clientId);
}

public ClientApi getClientApi(String clientId) {
return getAdminClient().clients(getTestRealm().getName()).v2().client(clientId);
}

@BeforeAll
public static void setupMapper() {
mapper = new ObjectMapper();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -86,6 +86,16 @@ public class AdminEventV2Test extends AbstractClientApiV2Test {
@InjectRunOnServer
RunOnServerClient runOnServer;

@Override
protected Keycloak getAdminClient() {
return this.adminClient;
}

@Override
protected ManagedRealm getTestRealm() {
return this.masterRealm;
}

@BeforeEach
public void setupAndClearEvents() {
runOnServer.run(session -> {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,7 @@
import org.keycloak.services.PatchTypeNames;
import org.keycloak.services.client.ClientServiceHelper;
import org.keycloak.testframework.admin.AdminClientFactory;
import org.keycloak.testframework.annotations.InjectAdminClient;
import org.keycloak.testframework.annotations.InjectAdminClientFactory;
import org.keycloak.testframework.annotations.InjectClient;
import org.keycloak.testframework.annotations.InjectHttpClient;
Expand Down Expand Up @@ -66,6 +67,9 @@
public class ClientApiV2AuthorizationTest extends AbstractClientApiV2Test {
private static final String FGAP_USER_ID = "00000000000000000000";

@InjectAdminClient
Keycloak adminClient;

@InjectHttpClient
CloseableHttpClient client;

Expand All @@ -78,6 +82,16 @@ public class ClientApiV2AuthorizationTest extends AbstractClientApiV2Test {
@InjectClient(attachTo = Constants.ADMIN_PERMISSIONS_CLIENT_ID)
ManagedClient adminPermissionClient;

@Override
protected Keycloak getAdminClient() {
return this.adminClient;
}

@Override
protected ManagedRealm getTestRealm() {
return this.testRealm;
}

@Override
public String getRealmName() {
return "authztest";
Expand Down
10BC8
Original file line number Diff line number Diff line change
@@ -1,13 +1,19 @@
package org.keycloak.tests.admin.client.v2;

import jakarta.ws.rs.NotFoundException;

import org.keycloak.admin.client.Keycloak;
import org.keycloak.testframework.annotations.InjectAdminClient;
import org.keycloak.testframework.annotations.InjectHttpClient;
import org.keycloak.testframework.annotations.InjectRealm;
import org.keycloak.testframework.annotations.KeycloakIntegrationTest;
import org.keycloak.testframework.realm.ManagedRealm;

import org.apache.http.client.methods.HttpGet;
import org.apache.http.impl.client.CloseableHttpClient;
import org.junit.jupiter.api.Test;

import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.junit.jupiter.api.Assertions.assertThrows;
import static org.junit.jupiter.api.Assertions.assertTrue;

/**
* @author Vaclav Muzikar <vmuzikar@redhat.com>
Expand All @@ -17,11 +23,29 @@ public class ClientApiV2DisabledTest extends AbstractClientApiV2Test {
@InjectHttpClient
CloseableHttpClient client;

@InjectAdminClient
Keycloak adminClient;

@InjectRealm(attachTo = "master", ref = "master")
ManagedRealm masterRealm;

@Override
protected Keycloak getAdminClient() {
return this.adminClient;
}

@Override
protected ManagedRealm getTestRealm() {
return this.masterRealm;
}

@Test
public void getClient() throws Exception {
HttpGet request = new HttpGet(getClientsApiUrl() + "/realms/master/clients/account");
try (var response = client.execute(request)) {
assertEquals(404, response.getStatusLine().getStatusCode());
}
public void getClient() {
NotFoundException ex = assertThrows(
NotFoundException.class,
() -> getClientApi("account").getClient()
);

assertTrue(ex.getMessage().contains("HTTP 404 Not Found"));
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -100,9 +100,19 @@ public class ClientApiV2Test extends AbstractClientApiV2Test{
@InjectClient(realmRef = "master")
ManagedClient testClient;

@Override
protected Keycloak getAdminClient() {
return this.adminClient;
}

@Override
protected ManagedRealm getTestRealm() {
return this.testRealm;
}

@Test
public void getClient() {
var client = adminClient.clients(testRealm.getName()).v2().client("account").getClient();
var client = getClientApi("account").getClient();
assertEquals("account", client.getClientId());
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -50,7 +50,9 @@
import org.keycloak.services.clientpolicy.executor.SecureClientAuthenticatorExecutorFactory;
import org.keycloak.testframework.annotations.InjectAdminClient;
import org.keycloak.testframework.annotations.InjectHttpClient;
import org.keycloak.testframework.annotations.InjectRealm;
import org.keycloak.testframework.annotations.KeycloakIntegrationTest;
import org.keycloak.testframework.realm.ManagedRealm;
import org.keycloak.testframework.remote.runonserver.InjectRunOnServer;
import org.keycloak.testframework.remote.runonserver.RunOnServerClient;
import org.keycloak.testframework.server.KeycloakServerConfig;
Expand Down Expand Up @@ -110,6 +112,19 @@ public class ClientPoliciesV2Test extends AbstractClientApiV2Test {
@InjectRunOnServer
RunOnServerClient runOnServer;

@InjectRealm
ManagedRealm testRealm;

@Override
protected Keycloak getAdminClient() {
return this.adminClient;
}

@Override
protected ManagedRealm getTestRealm() {
return this.testRealm;
}

@AfterEach
public void cleanup() {
// Clean up any test clients
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,9 @@
import org.keycloak.representations.idm.RoleRepresentation;
import org.keycloak.testframework.annotations.InjectAdminClient;
import org.keycloak.testframework.annotations.InjectHttpClient;
import org.keycloak.testframework.annotations.InjectRealm;
import org.keycloak.testframework.annotations.KeycloakIntegrationTest;
import org.keycloak.testframework.realm.ManagedRealm;
import org.keycloak.testframework.server.KeycloakServerConfig;
import org.keycloak.testframework.server.KeycloakServerConfigBuilder;
import org.keycloak.testframework.util.ApiUtil;
Expand Down Expand Up @@ -76,6 +78,19 @@ public class InteropTest extends AbstractClientApiV2Test {
@InjectAdminClient
Keycloak adminClient;

@InjectRealm
ManagedRealm testRealm;

@Override
protected Keycloak getAdminClient() {
return this.adminClient;
}

@Override
protected ManagedRealm getTestRealm() {
return this.testRealm;
}

/**
* Test: Create a client using v1 API, then assert/read using v2 API.
*/
Expand Down
Loading
0