diff --git a/README.md b/README.md index 0309579..f15cc10 100755 --- a/README.md +++ b/README.md @@ -91,6 +91,10 @@ horizon: defaultCacheName: deDuplication ttlInSeconds: 0 maxIdleInSeconds: 1800 + truststore: + enabled: false + location: # no default + password: # no default pandora: tracing: diff --git a/horizon-core/src/main/java/de/telekom/eni/pandora/horizon/kafka/event/EventWriter.java b/horizon-core/src/main/java/de/telekom/eni/pandora/horizon/kafka/event/EventWriter.java index 786c51e..4e11357 100644 --- a/horizon-core/src/main/java/de/telekom/eni/pandora/horizon/kafka/event/EventWriter.java +++ b/horizon-core/src/main/java/de/telekom/eni/pandora/horizon/kafka/event/EventWriter.java @@ -6,12 +6,12 @@ import com.fasterxml.jackson.core.JsonProcessingException; import com.fasterxml.jackson.databind.ObjectMapper; -import de.telekom.eni.pandora.horizon.tracing.Constants; import de.telekom.eni.pandora.horizon.model.event.IdentifiableMessage; import de.telekom.eni.pandora.horizon.model.event.MessageType; import de.telekom.eni.pandora.horizon.model.event.StatusMessage; import de.telekom.eni.pandora.horizon.model.event.SubscriptionEventMessage; import de.telekom.eni.pandora.horizon.model.meta.HorizonComponentId; +import de.telekom.eni.pandora.horizon.tracing.Constants; import de.telekom.eni.pandora.horizon.tracing.HorizonTracer; import lombok.extern.slf4j.Slf4j; import org.apache.kafka.clients.producer.ProducerRecord; diff --git a/horizon-core/src/main/java/de/telekom/eni/pandora/horizon/security/config/TruststoreProperties.java b/horizon-core/src/main/java/de/telekom/eni/pandora/horizon/security/config/TruststoreProperties.java new file mode 100644 index 0000000..24193ae --- /dev/null +++ b/horizon-core/src/main/java/de/telekom/eni/pandora/horizon/security/config/TruststoreProperties.java @@ -0,0 +1,21 @@ +// Copyright 2024 Deutsche Telekom IT GmbH +// +// SPDX-License-Identifier: Apache-2.0 + +package de.telekom.eni.pandora.horizon.security.config; + +import lombok.Getter; +import lombok.Setter; +import org.springframework.boot.context.properties.ConfigurationProperties; + +@Getter +@Setter +@ConfigurationProperties("horizon.truststore") +public class TruststoreProperties { + + private String location; + + private String password; + + private boolean enabled = false; +} diff --git a/horizon-core/src/test/java/de/telekom/eni/pandora/horizon/model/meta/HorizonComponentIdTest.java b/horizon-core/src/test/java/de/telekom/eni/pandora/horizon/model/meta/HorizonComponentIdTest.java index 06cd349..0bab4df 100644 --- a/horizon-core/src/test/java/de/telekom/eni/pandora/horizon/model/meta/HorizonComponentIdTest.java +++ b/horizon-core/src/test/java/de/telekom/eni/pandora/horizon/model/meta/HorizonComponentIdTest.java @@ -6,7 +6,7 @@ import org.junit.jupiter.api.Test; -import static org.junit.jupiter.api.Assertions.*; +import static org.junit.jupiter.api.Assertions.assertEquals; class HorizonComponentIdTest { diff --git a/horizon-core/src/test/java/de/telekom/eni/pandora/horizon/tracing/PandoraTracerTest.java b/horizon-core/src/test/java/de/telekom/eni/pandora/horizon/tracing/PandoraTracerTest.java index 323858e..dabba12 100644 --- a/horizon-core/src/test/java/de/telekom/eni/pandora/horizon/tracing/PandoraTracerTest.java +++ b/horizon-core/src/test/java/de/telekom/eni/pandora/horizon/tracing/PandoraTracerTest.java @@ -11,10 +11,6 @@ import brave.propagation.CurrentTraceContext; import brave.propagation.TraceContext; import brave.propagation.TraceContextOrSamplingFlags; -import de.telekom.eni.pandora.horizon.tracing.PandoraTracer; -import de.telekom.eni.pandora.horizon.tracing.SamplingState; -import de.telekom.eni.pandora.horizon.tracing.ScopedDebugSpanWrapper; -import de.telekom.eni.pandora.horizon.tracing.TracingProperties; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; import org.junit.jupiter.api.extension.ExtendWith; diff --git a/horizon-spring-boot-autoconfigure/src/main/java/de/telekom/eni/pandora/horizon/autoconfigure/security/TruststoreConfiguration.java b/horizon-spring-boot-autoconfigure/src/main/java/de/telekom/eni/pandora/horizon/autoconfigure/security/TruststoreConfiguration.java new file mode 100644 index 0000000..cd73d2a --- /dev/null +++ b/horizon-spring-boot-autoconfigure/src/main/java/de/telekom/eni/pandora/horizon/autoconfigure/security/TruststoreConfiguration.java @@ -0,0 +1,29 @@ +package de.telekom.eni.pandora.horizon.autoconfigure.security; + +import de.telekom.eni.pandora.horizon.security.config.TruststoreProperties; +import org.springframework.boot.autoconfigure.web.ServerProperties; +import org.springframework.boot.context.properties.EnableConfigurationProperties; +import org.springframework.boot.web.server.Ssl; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; + +; + +@Configuration +@EnableConfigurationProperties({TruststoreProperties.class}) +public class TruststoreConfiguration { + + @Bean + public ServerProperties serverProperties(TruststoreProperties truststoreProperties) { + final ServerProperties serverProperties = new ServerProperties(); + + if (truststoreProperties.isEnabled()) { + final Ssl ssl = new Ssl(); + ssl.setTrustStore(truststoreProperties.getLocation()); + ssl.setTrustStorePassword(truststoreProperties.getPassword()); + serverProperties.setSsl(ssl); + } + + return serverProperties; + } +} diff --git a/horizon-spring-boot-autoconfigure/src/main/java/de/telekom/eni/pandora/horizon/autoconfigure/tracing/HorizonTracerAutoConfiguration.java b/horizon-spring-boot-autoconfigure/src/main/java/de/telekom/eni/pandora/horizon/autoconfigure/tracing/HorizonTracerAutoConfiguration.java index 954ba83..de6eb06 100755 --- a/horizon-spring-boot-autoconfigure/src/main/java/de/telekom/eni/pandora/horizon/autoconfigure/tracing/HorizonTracerAutoConfiguration.java +++ b/horizon-spring-boot-autoconfigure/src/main/java/de/telekom/eni/pandora/horizon/autoconfigure/tracing/HorizonTracerAutoConfiguration.java @@ -6,9 +6,9 @@ import brave.Tracing; import brave.TracingCustomizer; +import de.telekom.eni.pandora.horizon.tracing.HorizonTracer; import de.telekom.eni.pandora.horizon.tracing.PandoraTracer; import de.telekom.eni.pandora.horizon.tracing.TracingProperties; -import de.telekom.eni.pandora.horizon.tracing.HorizonTracer; import jakarta.servlet.Filter; import org.springframework.beans.factory.annotation.Value; import org.springframework.boot.actuate.autoconfigure.tracing.BraveAutoConfiguration;