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 2c3da928213a93fe77b9d5ea8e8bfb204b255cc2..51e74c989c1a5b25c883019b39e71b4444e8d6cb 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 @@ -23,6 +23,8 @@ */ package de.ozgcloud.operator.keycloak.realm; +import java.util.HashMap; +import java.util.Map; import java.util.Set; import org.keycloak.representations.idm.RealmRepresentation; @@ -42,10 +44,23 @@ interface KeycloakRealmMapper { @Mapping(target = "internationalizationEnabled", constant = "true") @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") public RealmRepresentation map(OzgCloudKeycloakRealmSpec realm); @Named("supportedLocales") default Set<String> mapPassword(OzgCloudKeycloakRealmSpec spec) { return Set.of("de"); } + + @Named("smtpServer") + default Map<String, String> mapsmtpServer(OzgCloudKeycloakRealmSpec.KeycloakRealmSMTPServer server) { + Map<String, String> smtpServer = new HashMap<>(); + smtpServer.put("host", server.getHost()); + smtpServer.put("port", server.getPort()); + smtpServer.put("user", server.getUser()); + smtpServer.put("password", server.getPassword()); + smtpServer.put("starttls", server.getStarttls()); + return smtpServer; + } + } 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 0a23abfd2ed15f8744855b5e8d0bc406913b2fd5..750563d44e0b93cf95f4ec892c51acf1cccf0a72 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 @@ -44,4 +44,27 @@ class OzgCloudKeycloakRealmSpec { private boolean keepAfterDelete; private String displayName; + + @Builder.Default + private KeycloakRealmSMTPServer smtpServer = new KeycloakRealmSMTPServer(); + + +@Getter +@Setter +@Builder +@NoArgsConstructor +@AllArgsConstructor +static class KeycloakRealmSMTPServer { + + private String host; + + private String user; + + private String password; + + private String port; + + private String starttls; +} + }