diff --git a/src/main/java/de/ozgcloud/admin/keycloak/KeyCloakRootProcessor.java b/src/main/java/de/ozgcloud/admin/keycloak/KeyCloakRootProcessor.java index a17e7fd98c7ac90aa22def1f361c6ee876aedbda..55d7d5fc3385d7741aafcf87c36bfeb7c4524b31 100644 --- a/src/main/java/de/ozgcloud/admin/keycloak/KeyCloakRootProcessor.java +++ b/src/main/java/de/ozgcloud/admin/keycloak/KeyCloakRootProcessor.java @@ -23,6 +23,8 @@ */ package de.ozgcloud.admin.keycloak; +import java.util.Map; + import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty; import org.springframework.hateoas.EntityModel; import org.springframework.hateoas.Link; @@ -41,6 +43,10 @@ import lombok.RequiredArgsConstructor; @ConditionalOnProperty(prefix = FeatureToggleProperties.FEATURE_TOGGLE_PREFIX, name = "benutzer-rollen", havingValue = "true") class KeyCloakRootProcessor implements RepresentationModelProcessor<EntityModel<Root>> { + private static final String REALM_KEY = "realm"; + private static final String BASE_URL_KEY = "baseUrl"; + private static final String KEYCLOAK_API_TEMPLATE = "{baseUrl}/admin/realms/{realm}/users"; + public static final String REL_USERS = "users"; private final KeycloakApiProperties keycloakApiProperties; @@ -52,8 +58,8 @@ class KeyCloakRootProcessor implements RepresentationModelProcessor<EntityModel< } String buildUsersHref() { - return UriComponentsBuilder.fromUriString(keycloakApiProperties.getUrl()) - .pathSegment("admin", "realms", keycloakApiProperties.getRealm(), "users") // NOSONAR + Map<String, Object> pathVariableMap = Map.of(BASE_URL_KEY, keycloakApiProperties.getUrl(), REALM_KEY, keycloakApiProperties.getRealm()); + return UriComponentsBuilder.fromUriString(KEYCLOAK_API_TEMPLATE).uriVariables(pathVariableMap) .build().toUriString(); } }