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 0825f21a89e73867584a00ac0521419ccf1d4123..a8828cf0b577406feec01af6191185bedcb1d8ad 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 13272c24f7ffb8ceb52788ee6c6df1aed4bdf893..dc2b4a6538233b38dccedc9193a0c1a029f2e019 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 d750842ecdaa7c7ad81839d1504e57c99add6bdd..42e37add45d173ee547594ae1e190d532c174490 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"); + } }