From 5f4e876cda4a92f33d6e286975b8604b5a9fc268 Mon Sep 17 00:00:00 2001 From: OZGCloud <ozgcloud@mgm-tp.com> Date: Wed, 5 Jul 2023 22:44:08 +0200 Subject: [PATCH] OZG-3961 - add realm settings --- .../keycloak/realm/KeycloakRealmMapper.java | 14 +++++++ .../user/KeycloakUserPreconditionService.java | 2 +- .../realm/KeycloakRealmMapperTest.java | 42 +++++++++++++++++++ 3 files changed, 57 insertions(+), 1 deletion(-) diff --git a/src/main/java/de/ozgcloud/operator/keycloak/realm/KeycloakRealmMapper.java b/src/main/java/de/ozgcloud/operator/keycloak/realm/KeycloakRealmMapper.java index 0825f21a..a8828cf0 100644 --- a/src/main/java/de/ozgcloud/operator/keycloak/realm/KeycloakRealmMapper.java +++ b/src/main/java/de/ozgcloud/operator/keycloak/realm/KeycloakRealmMapper.java @@ -1,13 +1,27 @@ package de.ozgcloud.operator.keycloak.realm; +import java.util.Set; + import org.keycloak.representations.idm.RealmRepresentation; import org.mapstruct.Mapper; import org.mapstruct.Mapping; +import org.mapstruct.Named; import org.mapstruct.ReportingPolicy; @Mapper(unmappedTargetPolicy = ReportingPolicy.IGNORE, unmappedSourcePolicy = ReportingPolicy.IGNORE) interface KeycloakRealmMapper { @Mapping(target = "displayName", source = "displayName") + @Mapping(target = "enabled", constant = "true") + @Mapping(target = "resetPasswordAllowed", constant = "true") + @Mapping(target = "supportedLocales", source = ".", qualifiedByName = "supportedLocales") + @Mapping(target = "defaultLocale", constant = "de") + @Mapping(target = "internationalizationEnabled", constant = "true") + @Mapping(target = "passwordPolicy", constant = "upperCase(1) and lowerCase(1) and length(8) and notUsername") RealmRepresentation map(OzgKeycloakRealmSpec realm); + + @Named("supportedLocales") + default Set<String> mapPassword(OzgKeycloakRealmSpec spec) { + return Set.of("de"); + } } diff --git a/src/main/java/de/ozgcloud/operator/keycloak/user/KeycloakUserPreconditionService.java b/src/main/java/de/ozgcloud/operator/keycloak/user/KeycloakUserPreconditionService.java index 13272c24..dc2b4a65 100644 --- a/src/main/java/de/ozgcloud/operator/keycloak/user/KeycloakUserPreconditionService.java +++ b/src/main/java/de/ozgcloud/operator/keycloak/user/KeycloakUserPreconditionService.java @@ -41,7 +41,7 @@ class KeycloakUserPreconditionService { .map(KeycloakUserSpecClientRole::getClientId) .map(clientId -> keycloakGenericRemoteService.getByClientId(clientId, realm)) .filter(Optional::isEmpty) - .map(clientId -> "Cient " + clientId + " does not yet exist") + .map(clientId -> "Client " + clientId + " does not yet exist") .findAny(); } diff --git a/src/test/java/de/ozgcloud/operator/keycloak/realm/KeycloakRealmMapperTest.java b/src/test/java/de/ozgcloud/operator/keycloak/realm/KeycloakRealmMapperTest.java index d750842e..42e37add 100644 --- a/src/test/java/de/ozgcloud/operator/keycloak/realm/KeycloakRealmMapperTest.java +++ b/src/test/java/de/ozgcloud/operator/keycloak/realm/KeycloakRealmMapperTest.java @@ -17,4 +17,46 @@ class KeycloakRealmMapperTest { assertThat(mapped.getDisplayName()).isEqualTo(OzgKeycloakRealmSpecTestFactory.DISPLAY_NAME); } + + @Test + void shouldBeEnabled() { + var mapped = mapper.map(OzgKeycloakRealmSpecTestFactory.create()); + + assertThat(mapped.isEnabled()).isTrue(); + } + + @Test + void shouldBeResetPasswordAllowed() { + var mapped = mapper.map(OzgKeycloakRealmSpecTestFactory.create()); + + assertThat(mapped.isResetPasswordAllowed()).isTrue(); + } + + @Test + void shouldBeSupportedLocaleDe() { + var mapped = mapper.map(OzgKeycloakRealmSpecTestFactory.create()); + + assertThat(mapped.getSupportedLocales()).containsExactly("de"); + } + + @Test + void shouldBeDefaultLocaleDe() { + var mapped = mapper.map(OzgKeycloakRealmSpecTestFactory.create()); + + assertThat(mapped.getDefaultLocale()).isEqualTo("de"); + } + + @Test + void shouldBeInternationalizationEnabled() { + var mapped = mapper.map(OzgKeycloakRealmSpecTestFactory.create()); + + assertThat(mapped.isInternationalizationEnabled()).isTrue(); + } + + @Test + void checkPasswordPolicy() { + var mapped = mapper.map(OzgKeycloakRealmSpecTestFactory.create()); + + assertThat(mapped.getPasswordPolicy()).isEqualTo("upperCase(1) and lowerCase(1) and length(8) and notUsername"); + } } -- GitLab