Skip to content
Snippets Groups Projects
Commit e4b321d8 authored by OZGCloud's avatar OZGCloud
Browse files

Merge pull request 'OZG-4870 add smtpServer config in keycloak realm' (#20)...

Merge pull request 'OZG-4870 add smtpServer config in keycloak realm' (#20) from OZG-4870 into master
parents 7cfbd8b7 a701138b
No related branches found
No related tags found
No related merge requests found
......@@ -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,30 @@ 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<>();
if (server != null) {
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());
smtpServer.put("auth", server.getAuth());
smtpServer.put("from", server.getFrom());
smtpServer.put("fromDisplayName", server.getFromDisplayName());
}
return smtpServer;
}
}
......@@ -44,4 +44,29 @@ class OzgCloudKeycloakRealmSpec {
private boolean keepAfterDelete;
private String displayName;
private KeycloakRealmSMTPServer smtpServer;
@Getter
@Setter
@Builder
@NoArgsConstructor
@AllArgsConstructor
static class KeycloakRealmSMTPServer {
private String user;
private String password;
private String host;
private String port;
private String starttls;
private String auth;
private String from;
private String fromDisplayName;
}
}
......@@ -89,4 +89,33 @@ class KeycloakRealmMapperTest {
assertThat(mapped.getActionTokenGeneratedByUserLifespan()).isEqualTo(900);
}
@Test
void shouldMapSmtpServer() {
var mapped = mapper.map(OzgCloudKeycloakRealmSpecTestFactory.create());
assertThat(mapped.getSmtpServer().size()).isEqualTo(8);
}
@Test
void shouldContainSmtpServerKeysValues() {
var mapped = mapper.map(OzgCloudKeycloakRealmSpecTestFactory.create());
assertThat(mapped.getSmtpServer())
.containsEntry("user", KeycloakRealmSmtpServerTestFactory.SMTP_SERVER_USER)
.containsEntry("password", KeycloakRealmSmtpServerTestFactory.SMTP_SERVER_PASSWORD)
.containsEntry("host", KeycloakRealmSmtpServerTestFactory.SMTP_SERVER_HOST)
.containsEntry("port", KeycloakRealmSmtpServerTestFactory.SMTP_SERVER_PORT)
.containsEntry("starttls", KeycloakRealmSmtpServerTestFactory.SMTP_SERVER_STARTTLS)
.containsEntry("auth", KeycloakRealmSmtpServerTestFactory.SMTP_SERVER_AUTH)
.containsEntry("from", KeycloakRealmSmtpServerTestFactory.SMTP_SERVER_FROM)
.containsEntry("fromDisplayName", KeycloakRealmSmtpServerTestFactory.SMTP_SERVER_FROM_DISPLAY_NAME);
}
@Test
void shouldMapWhenSmtpServerIsNull() {
var mapped = mapper.map(OzgCloudKeycloakRealmSpecTestFactory.createBuilder().smtpServer(null).build());
assertThat(mapped.getSmtpServer()).isEmpty();
}
}
package de.ozgcloud.operator.keycloak.realm;
import de.ozgcloud.operator.keycloak.realm.OzgCloudKeycloakRealmSpec.KeycloakRealmSMTPServer;
public class KeycloakRealmSmtpServerTestFactory {
public final static String SMTP_SERVER_PORT = "432";
public final static String SMTP_SERVER_HOST = "host";
public final static String SMTP_SERVER_FROM = "test@test.de";
public final static String SMTP_SERVER_FROM_DISPLAY_NAME = "displayed name";
public final static String SMTP_SERVER_USER = "user";
public final static String SMTP_SERVER_PASSWORD = "psw";
public final static String SMTP_SERVER_AUTH = "true";
public final static String SMTP_SERVER_STARTTLS = "true";
public static OzgCloudKeycloakRealmSpec.KeycloakRealmSMTPServer create() {
return createBuilder().build();
}
public static OzgCloudKeycloakRealmSpec.KeycloakRealmSMTPServer.KeycloakRealmSMTPServerBuilder createBuilder() {
return KeycloakRealmSMTPServer.builder()
.host(SMTP_SERVER_HOST)
.user(SMTP_SERVER_USER)
.password(SMTP_SERVER_PASSWORD)
.port(SMTP_SERVER_PORT)
.starttls(SMTP_SERVER_STARTTLS)
.auth(SMTP_SERVER_AUTH)
.from(SMTP_SERVER_FROM)
.fromDisplayName(SMTP_SERVER_FROM_DISPLAY_NAME);
}
}
......@@ -35,6 +35,7 @@ public class OzgCloudKeycloakRealmSpecTestFactory {
public static OzgCloudKeycloakRealmSpec.OzgCloudKeycloakRealmSpecBuilder createBuilder() {
return OzgCloudKeycloakRealmSpec.builder()
.keepAfterDelete(KEEP_AFTER_DELETE)
.displayName(DISPLAY_NAME);
.displayName(DISPLAY_NAME)
.smtpServer(KeycloakRealmSmtpServerTestFactory.create());
}
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment