diff --git a/jans-scim/service/pom.xml b/jans-scim/service/pom.xml index b0d8fcacfbe..42df51574c3 100644 --- a/jans-scim/service/pom.xml +++ b/jans-scim/service/pom.xml @@ -86,6 +86,10 @@ io.jans jans-core-cache + + io.jans + jans-core-message + io.jans jans-core-radius diff --git a/jans-scim/service/src/main/java/io/jans/scim/model/GluuConfiguration.java b/jans-scim/service/src/main/java/io/jans/scim/model/GluuConfiguration.java index fecdfaa2616..535112b0b65 100644 --- a/jans-scim/service/src/main/java/io/jans/scim/model/GluuConfiguration.java +++ b/jans-scim/service/src/main/java/io/jans/scim/model/GluuConfiguration.java @@ -21,6 +21,7 @@ import io.jans.orm.model.base.InumEntry; import io.jans.service.cache.CacheConfiguration; import io.jans.service.document.store.conf.DocumentStoreConfiguration; +import io.jans.service.message.model.config.MessageConfiguration; /** * GluuConfiguration @@ -76,6 +77,10 @@ public class GluuConfiguration extends InumEntry implements Serializable { @JsonObject private CacheConfiguration cacheConfiguration; + @AttributeName(name = "jansMessageConf") + @JsonObject + private MessageConfiguration messageConfiguration; + @AttributeName(name = "jansDocStoreConf") @JsonObject private DocumentStoreConfiguration documentStoreConfiguration; @@ -190,6 +195,14 @@ public void setCacheConfiguration(CacheConfiguration cacheConfiguration) { this.cacheConfiguration = cacheConfiguration; } + public MessageConfiguration getMessageConfiguration() { + return messageConfiguration; + } + + public void setMessageConfiguration(MessageConfiguration messageConfiguration) { + this.messageConfiguration = messageConfiguration; + } + public DocumentStoreConfiguration getDocumentStoreConfiguration() { return documentStoreConfiguration; } diff --git a/jans-scim/service/src/main/java/io/jans/scim/service/ApplicationFactory.java b/jans-scim/service/src/main/java/io/jans/scim/service/ApplicationFactory.java index f3d1db2733a..f62e12eeb94 100644 --- a/jans-scim/service/src/main/java/io/jans/scim/service/ApplicationFactory.java +++ b/jans-scim/service/src/main/java/io/jans/scim/service/ApplicationFactory.java @@ -6,23 +6,25 @@ package io.jans.scim.service; -import jakarta.enterprise.context.ApplicationScoped; -import jakarta.enterprise.context.RequestScoped; -import jakarta.enterprise.inject.Produces; -import jakarta.inject.Inject; +import org.slf4j.Logger; -import io.jans.scim.model.conf.AppConfiguration; import io.jans.model.SmtpConfiguration; import io.jans.orm.PersistenceEntryManagerFactory; import io.jans.orm.model.PersistenceConfiguration; import io.jans.orm.service.PersistanceFactoryService; +import io.jans.scim.model.GluuConfiguration; +import io.jans.scim.model.conf.AppConfiguration; import io.jans.service.cache.CacheConfiguration; import io.jans.service.cache.InMemoryConfiguration; import io.jans.service.document.store.conf.DocumentStoreConfiguration; import io.jans.service.document.store.conf.LocalDocumentStoreConfiguration; -import org.slf4j.Logger; - -import io.jans.scim.model.GluuConfiguration; +import io.jans.service.message.model.config.MessageConfiguration; +import io.jans.service.message.model.config.MessageProviderType; +import io.jans.service.message.model.config.NullMessageConfiguration; +import jakarta.enterprise.context.ApplicationScoped; +import jakarta.enterprise.context.RequestScoped; +import jakarta.enterprise.inject.Produces; +import jakarta.inject.Inject; /** * Holds factory methods to create services @@ -75,6 +77,26 @@ public CacheConfiguration getCacheConfiguration() { return cacheConfiguration; } + @Produces + @ApplicationScoped + public MessageConfiguration getMessageConfiguration() { + MessageConfiguration messageConfiguration = configurationService.getConfiguration().getMessageConfiguration(); + if (messageConfiguration == null || messageConfiguration.getMessageProviderType() == null) { + log.error("Failed to read message configuration from DB. Please check configuration jsMessageConf attribute " + + "that must contain message configuration JSON represented by MessageConfiguration.class. Appliance DN: " + configurationService.getConfiguration().getDn()); + log.info("Creating fallback Null message configuration ... "); + + messageConfiguration = new MessageConfiguration(); + messageConfiguration.setMessageProviderType(MessageProviderType.NULL); + messageConfiguration.setNullConfiguration(new NullMessageConfiguration()); + + log.info("NULL message configuration is created."); + } + + log.info("Message configuration: " + messageConfiguration); + return messageConfiguration; + } + @Produces @ApplicationScoped public DocumentStoreConfiguration getDocumentStoreConfiguration() { DocumentStoreConfiguration documentStoreConfiguration = configurationService.getConfiguration().getDocumentStoreConfiguration();