From d9eb1639386514dbb32b5269fd0756ef971ada59 Mon Sep 17 00:00:00 2001 From: OZGCloud <ozgcloud@mgm-tp.com> Date: Mon, 8 Apr 2024 22:00:58 +0200 Subject: [PATCH] OZG-4870 add smtpServer config in keycloak realm --- .../keycloak/realm/KeycloakRealmMapper.java | 15 ++++++++++++ .../realm/OzgCloudKeycloakRealmSpec.java | 23 +++++++++++++++++++ 2 files changed, 38 insertions(+) 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 2c3da92..51e74c9 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 0a23abf..750563d 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; +} + } -- GitLab