From 85e1ea98d59b63ec39b4489cded8969a05faec30 Mon Sep 17 00:00:00 2001 From: OZGCloud <ozgcloud@mgm-tp.com> Date: Wed, 17 Apr 2024 10:14:52 +0200 Subject: [PATCH] OZG-5422 simplify maping for realm roles --- .../keycloak/realm/KeycloakRealmMapper.java | 33 +++---------------- .../realm/OzgCloudKeycloakRealmSpec.java | 4 --- .../realm/KeycloakRealmMapperTest.java | 9 +---- .../realm/KeycloakRealmReconcilerTest.java | 3 ++ 4 files changed, 9 insertions(+), 40 deletions(-) diff --git a/ozgcloud-keycloak-operator/src/main/java/de/ozgcloud/operator/keycloak/realm/KeycloakRealmMapper.java b/ozgcloud-keycloak-operator/src/main/java/de/ozgcloud/operator/keycloak/realm/KeycloakRealmMapper.java index 7fed6fd..7c989b0 100644 --- a/ozgcloud-keycloak-operator/src/main/java/de/ozgcloud/operator/keycloak/realm/KeycloakRealmMapper.java +++ b/ozgcloud-keycloak-operator/src/main/java/de/ozgcloud/operator/keycloak/realm/KeycloakRealmMapper.java @@ -52,9 +52,13 @@ interface KeycloakRealmMapper { @Mapping(target = "passwordPolicy", constant = "upperCase(1) and lowerCase(1) and length(8) and notUsername") @Mapping(target = "actionTokenGeneratedByUserLifespan", constant = "900") @Mapping(target = "smtpServer", source = "smtpServer", qualifiedByName = "smtpServer") - @Mapping(target = "roles", source = "realmRoles", qualifiedByName = "roles") + @Mapping(target = "roles.realm", source = "realmRoles") public RealmRepresentation map(OzgCloudKeycloakRealmSpec realm); + + @Mapping(target = "name", source = "name") + RoleRepresentation map(OzgCloudKeycloakRealmSpec.RealmRole role); + @Named("supportedLocales") default Set<String> mapPassword(OzgCloudKeycloakRealmSpec spec) { return Set.of("de"); @@ -78,31 +82,4 @@ interface KeycloakRealmMapper { } - - @Named("roles") - default RolesRepresentation maprealmRoles(List<OzgCloudKeycloakRealmSpec.RealmRole> realmRoles) { - RolesRepresentation roles = new RolesRepresentation(); - - if (realmRoles != null) { - List<String> roleNames = realmRoles.stream() - .map(RealmRole::getName) - .collect(Collectors.toList()); - List<RoleRepresentation> rolerepresentationList = new ArrayList<>(roleNames.size()); - - roleNames.forEach(roleName -> { - RoleRepresentation newRepresentation = new RoleRepresentation(); - newRepresentation.setName(roleName); - rolerepresentationList.add(newRepresentation); - }); - - roles.setRealm(rolerepresentationList); - - Map<String, List<RoleRepresentation>> client = new HashMap<>(); - roles.setClient(client); - - } - return roles; - - } - } diff --git a/ozgcloud-keycloak-operator/src/main/java/de/ozgcloud/operator/keycloak/realm/OzgCloudKeycloakRealmSpec.java b/ozgcloud-keycloak-operator/src/main/java/de/ozgcloud/operator/keycloak/realm/OzgCloudKeycloakRealmSpec.java index 4154b4d..7736f40 100644 --- a/ozgcloud-keycloak-operator/src/main/java/de/ozgcloud/operator/keycloak/realm/OzgCloudKeycloakRealmSpec.java +++ b/ozgcloud-keycloak-operator/src/main/java/de/ozgcloud/operator/keycloak/realm/OzgCloudKeycloakRealmSpec.java @@ -51,9 +51,7 @@ class OzgCloudKeycloakRealmSpec { private KeycloakRealmSMTPServer smtpServer; @Getter - @Setter @Builder - @NoArgsConstructor @AllArgsConstructor static class KeycloakRealmSMTPServer { @@ -77,9 +75,7 @@ class OzgCloudKeycloakRealmSpec { private List<RealmRole> realmRoles = new ArrayList<>(); @Getter - @Setter @Builder - @NoArgsConstructor @AllArgsConstructor static class RealmRole { diff --git a/ozgcloud-keycloak-operator/src/test/java/de/ozgcloud/operator/keycloak/realm/KeycloakRealmMapperTest.java b/ozgcloud-keycloak-operator/src/test/java/de/ozgcloud/operator/keycloak/realm/KeycloakRealmMapperTest.java index 1d78429..f36b39c 100644 --- a/ozgcloud-keycloak-operator/src/test/java/de/ozgcloud/operator/keycloak/realm/KeycloakRealmMapperTest.java +++ b/ozgcloud-keycloak-operator/src/test/java/de/ozgcloud/operator/keycloak/realm/KeycloakRealmMapperTest.java @@ -123,7 +123,7 @@ class KeycloakRealmMapperTest { void shouldMapRealmRoles() { var mapped = mapper.map(OzgCloudKeycloakRealmSpecTestFactory.create()); - assertThat(mapped.getRoles().getRealm().size()).isEqualTo(2); + assertThat(mapped.getRoles().getRealm()).hasSize(2); } @Test @@ -134,11 +134,4 @@ class KeycloakRealmMapperTest { assertThat(mappedRealmRoles.getRealm().get(0).getName()).isEqualTo(OzgCloudKeycloakRealmSpecTestFactory.ROLE_NAME_1); assertThat(mappedRealmRoles.getRealm().get(1).getName()).isEqualTo(OzgCloudKeycloakRealmSpecTestFactory.ROLE_NAME_2); } - - @Test - void shouldMapWhenRealmRolesIsNull() { - var mapped = mapper.map(OzgCloudKeycloakRealmSpecTestFactory.createBuilder().realmRoles(null).build()); - - assertThat(mapped.getRoles()).isNotNull(); - } } diff --git a/ozgcloud-keycloak-operator/src/test/java/de/ozgcloud/operator/keycloak/realm/KeycloakRealmReconcilerTest.java b/ozgcloud-keycloak-operator/src/test/java/de/ozgcloud/operator/keycloak/realm/KeycloakRealmReconcilerTest.java index 9d36675..76e8fad 100644 --- a/ozgcloud-keycloak-operator/src/test/java/de/ozgcloud/operator/keycloak/realm/KeycloakRealmReconcilerTest.java +++ b/ozgcloud-keycloak-operator/src/test/java/de/ozgcloud/operator/keycloak/realm/KeycloakRealmReconcilerTest.java @@ -72,6 +72,9 @@ class KeycloakRealmReconcilerTest { assertThat(response.getResource().getStatus().getStatus()).isEqualTo(OzgCloudCustomResourceStatus.OK); } + + + } @DisplayName("Reconciler Cleanup") -- GitLab