From a3811e1b20698907aa0b21881c7e5f5e2696ac28 Mon Sep 17 00:00:00 2001 From: Stefan Guilhen Date: Mon, 27 Apr 2026 08:41:10 -0300 Subject: [PATCH] Add id and description when building ResourceType representation Closes #48464 Signed-off-by: Stefan Guilhen --- .../scim/resource/spi/ScimResourceTypeProvider.java | 9 +++++++++ .../scim/model/resourcetype/ResourceTypeProvider.java | 2 ++ .../scim/model/user/UserResourceTypeProvider.java | 5 +++++ .../org/keycloak/tests/scim/tck/ResourceTypeTest.java | 9 ++++++--- 4 files changed, 22 insertions(+), 3 deletions(-) diff --git a/scim/core/src/main/java/org/keycloak/scim/resource/spi/ScimResourceTypeProvider.java b/scim/core/src/main/java/org/keycloak/scim/resource/spi/ScimResourceTypeProvider.java index 1948678b96cd..e1ecd5d936bc 100644 --- a/scim/core/src/main/java/org/keycloak/scim/resource/spi/ScimResourceTypeProvider.java +++ b/scim/core/src/main/java/org/keycloak/scim/resource/spi/ScimResourceTypeProvider.java @@ -36,6 +36,15 @@ default String getName() { return getResourceType().getSimpleName(); } + /** + * Returns a human-readable description of the resource type managed by this provider. + * + * @return the description of the resource type + */ + default String getDescription() { + return getName(); + } + /** * Returns the schema name of the resource type managed by this provider. * diff --git a/scim/model/src/main/java/org/keycloak/scim/model/resourcetype/ResourceTypeProvider.java b/scim/model/src/main/java/org/keycloak/scim/model/resourcetype/ResourceTypeProvider.java index 8bdc7f36fd14..fe83a0b9e864 100644 --- a/scim/model/src/main/java/org/keycloak/scim/model/resourcetype/ResourceTypeProvider.java +++ b/scim/model/src/main/java/org/keycloak/scim/model/resourcetype/ResourceTypeProvider.java @@ -84,7 +84,9 @@ private ResourceType toRepresentation(ScimResourceTypeProviderFactory response, Class resourceType, List expectedSchemaExtensions) { + private static void assertResourceType(ListResponse response, Class resourceType, + String expectedDescription, List expectedSchemaExtensions) { ResourceType representation = response.getResources().stream().filter(r -> r.getName().equals(resourceType.getSimpleName())).findAny().orElse(null); assertNotNull(representation); + assertEquals(resourceType.getSimpleName(), representation.getId()); + assertEquals(expectedDescription, representation.getDescription()); assertEquals("/" + representation.getName() + "s", representation.getEndpoint()); assertEquals(getCoreSchema(resourceType), representation.getSchema());