From: Jakub Dudycz Date: Wed, 30 Jan 2019 14:58:36 +0000 (+0100) Subject: Extract HV VES Client ssl-related classes X-Git-Tag: 1.1.3~25 X-Git-Url: https://gerrit.onap.org/r/gitweb?a=commitdiff_plain;h=1442bffa7b80665049d2347f7ba2a03ca6c2bd70;p=dcaegen2%2Fservices%2Fsdk.git Extract HV VES Client ssl-related classes - Create common ssl module - Extract ssl-related classes from HV VES Client module - Mark org.onap.dcaegen2.services.sdk.rest.services.ssl.SslFactory class as deprecated Change-Id: I31ef784e8822981ba541fb3f525f003218cd5c88 Signed-off-by: Jakub Dudycz Issue-ID: DCAEGEN2-1135 --- diff --git a/rest-services/common-dependency/src/main/java/org/onap/dcaegen2/services/sdk/rest/services/ssl/SslFactory.java b/rest-services/common-dependency/src/main/java/org/onap/dcaegen2/services/sdk/rest/services/ssl/SslFactory.java index cce811c5..92de6608 100644 --- a/rest-services/common-dependency/src/main/java/org/onap/dcaegen2/services/sdk/rest/services/ssl/SslFactory.java +++ b/rest-services/common-dependency/src/main/java/org/onap/dcaegen2/services/sdk/rest/services/ssl/SslFactory.java @@ -38,6 +38,10 @@ import java.nio.file.Paths; import java.security.GeneralSecurityException; import java.security.KeyStore; +/** + * @deprecated org.onap.dcaegen2.services.sdk.security.ssl.SslFactory should be used instead + */ +@Deprecated public class SslFactory { private static final Logger LOGGER = LoggerFactory.getLogger(SslFactory.class); diff --git a/security/pom.xml b/security/pom.xml index 9c4412aa..bcd93de1 100644 --- a/security/pom.xml +++ b/security/pom.xml @@ -21,6 +21,7 @@ crypt-password + ssl \ No newline at end of file diff --git a/security/ssl/pom.xml b/security/ssl/pom.xml new file mode 100644 index 00000000..ecccd767 --- /dev/null +++ b/security/ssl/pom.xml @@ -0,0 +1,48 @@ + + 4.0.0 + + + org.onap.dcaegen2.services.sdk.security + dcaegen2-services-sdk-security + 1.1.0-SNAPSHOT + + + ssl + 1.1.1-SNAPSHOT + + SSL + Common SSL-related Classes Library + jar + + + + io.projectreactor.netty + reactor-netty + + + org.immutables + value + + + io.vavr + vavr + + + org.jetbrains + annotations + + + org.junit.jupiter + junit-jupiter-engine + test + + + org.assertj + assertj-core + test + + + + \ No newline at end of file diff --git a/services/hv-ves-client/producer/api/src/main/java/org/onap/dcaegen2/services/sdk/services/hvves/client/producer/api/options/Password.java b/security/ssl/src/main/java/org/onap/dcaegen2/services/sdk/security/ssl/Password.java similarity index 95% rename from services/hv-ves-client/producer/api/src/main/java/org/onap/dcaegen2/services/sdk/services/hvves/client/producer/api/options/Password.java rename to security/ssl/src/main/java/org/onap/dcaegen2/services/sdk/security/ssl/Password.java index 79ae32a8..35fc7bbe 100644 --- a/services/hv-ves-client/producer/api/src/main/java/org/onap/dcaegen2/services/sdk/services/hvves/client/producer/api/options/Password.java +++ b/security/ssl/src/main/java/org/onap/dcaegen2/services/sdk/security/ssl/Password.java @@ -18,12 +18,11 @@ * ============LICENSE_END===================================== */ -package org.onap.dcaegen2.services.sdk.services.hvves.client.producer.api.options; +package org.onap.dcaegen2.services.sdk.security.ssl; import io.vavr.CheckedFunction1; import io.vavr.Function1; import io.vavr.control.Try; -import java.io.IOException; import java.security.GeneralSecurityException; import java.util.Arrays; import org.jetbrains.annotations.NotNull; diff --git a/services/hv-ves-client/producer/api/src/main/java/org/onap/dcaegen2/services/sdk/services/hvves/client/producer/api/options/Passwords.java b/security/ssl/src/main/java/org/onap/dcaegen2/services/sdk/security/ssl/Passwords.java similarity index 97% rename from services/hv-ves-client/producer/api/src/main/java/org/onap/dcaegen2/services/sdk/services/hvves/client/producer/api/options/Passwords.java rename to security/ssl/src/main/java/org/onap/dcaegen2/services/sdk/security/ssl/Passwords.java index cbadfea9..39828086 100644 --- a/services/hv-ves-client/producer/api/src/main/java/org/onap/dcaegen2/services/sdk/services/hvves/client/producer/api/options/Passwords.java +++ b/security/ssl/src/main/java/org/onap/dcaegen2/services/sdk/security/ssl/Passwords.java @@ -18,7 +18,7 @@ * ============LICENSE_END===================================== */ -package org.onap.dcaegen2.services.sdk.services.hvves.client.producer.api.options; +package org.onap.dcaegen2.services.sdk.security.ssl; import io.vavr.control.Try; import java.io.File; diff --git a/services/hv-ves-client/producer/api/src/main/java/org/onap/dcaegen2/services/sdk/services/hvves/client/producer/api/options/SecurityKeys.java b/security/ssl/src/main/java/org/onap/dcaegen2/services/sdk/security/ssl/SecurityKeys.java similarity index 93% rename from services/hv-ves-client/producer/api/src/main/java/org/onap/dcaegen2/services/sdk/services/hvves/client/producer/api/options/SecurityKeys.java rename to security/ssl/src/main/java/org/onap/dcaegen2/services/sdk/security/ssl/SecurityKeys.java index 66af32fa..05c3c470 100644 --- a/services/hv-ves-client/producer/api/src/main/java/org/onap/dcaegen2/services/sdk/services/hvves/client/producer/api/options/SecurityKeys.java +++ b/security/ssl/src/main/java/org/onap/dcaegen2/services/sdk/security/ssl/SecurityKeys.java @@ -18,7 +18,7 @@ * ============LICENSE_END===================================== */ -package org.onap.dcaegen2.services.sdk.services.hvves.client.producer.api.options; +package org.onap.dcaegen2.services.sdk.security.ssl; import java.nio.file.Path; import org.immutables.value.Value; diff --git a/services/hv-ves-client/producer/impl/src/main/java/org/onap/dcaegen2/services/sdk/services/hvves/client/producer/impl/SslFactory.java b/security/ssl/src/main/java/org/onap/dcaegen2/services/sdk/security/ssl/SslFactory.java similarity index 86% rename from services/hv-ves-client/producer/impl/src/main/java/org/onap/dcaegen2/services/sdk/services/hvves/client/producer/impl/SslFactory.java rename to security/ssl/src/main/java/org/onap/dcaegen2/services/sdk/security/ssl/SslFactory.java index 4661f595..15739eb6 100644 --- a/services/hv-ves-client/producer/impl/src/main/java/org/onap/dcaegen2/services/sdk/services/hvves/client/producer/impl/SslFactory.java +++ b/security/ssl/src/main/java/org/onap/dcaegen2/services/sdk/security/ssl/SslFactory.java @@ -18,11 +18,11 @@ * ============LICENSE_END===================================== */ -package org.onap.dcaegen2.services.sdk.services.hvves.client.producer.impl; +package org.onap.dcaegen2.services.sdk.security.ssl; import io.netty.handler.ssl.SslContext; import io.netty.handler.ssl.SslContextBuilder; -import io.vavr.Tuple; +import io.netty.handler.ssl.util.InsecureTrustManagerFactory; import io.vavr.control.Try; import java.io.IOException; import java.nio.file.Files; @@ -32,12 +32,7 @@ import java.security.GeneralSecurityException; import java.security.KeyStore; import javax.net.ssl.KeyManagerFactory; import javax.net.ssl.TrustManagerFactory; -import org.onap.dcaegen2.services.sdk.services.hvves.client.producer.api.options.Password; -import org.onap.dcaegen2.services.sdk.services.hvves.client.producer.api.options.SecurityKeys; -/* - * TODO: To be merged with org.onap.dcaegen2.services.sdk.rest.services.ssl.SslFactory - */ public class SslFactory { /** @@ -80,4 +75,15 @@ public class SslFactory { ks.load(Files.newInputStream(path, StandardOpenOption.READ), keyStorePassword); return ks; } -} \ No newline at end of file + + /** + * Function for creating insecure ssl context. + * + * @return configured insecure ssl context + */ + public Try createInsecureContext() { + return Try.success(SslContextBuilder.forClient()) + .map(ctx -> ctx.trustManager(InsecureTrustManagerFactory.INSTANCE)) + .mapTry(SslContextBuilder::build); + } +} diff --git a/services/hv-ves-client/producer/api/src/test/java/org/onap/dcaegen2/services/sdk/services/hvves/client/producer/api/options/PasswordTest.java b/security/ssl/src/test/java/org/onap/dcaegen2/services/sdk/security/ssl/PasswordTest.java similarity index 97% rename from services/hv-ves-client/producer/api/src/test/java/org/onap/dcaegen2/services/sdk/services/hvves/client/producer/api/options/PasswordTest.java rename to security/ssl/src/test/java/org/onap/dcaegen2/services/sdk/security/ssl/PasswordTest.java index fbfeb5d5..ede227eb 100644 --- a/services/hv-ves-client/producer/api/src/test/java/org/onap/dcaegen2/services/sdk/services/hvves/client/producer/api/options/PasswordTest.java +++ b/security/ssl/src/test/java/org/onap/dcaegen2/services/sdk/security/ssl/PasswordTest.java @@ -18,7 +18,7 @@ * ============LICENSE_END===================================== */ -package org.onap.dcaegen2.services.sdk.services.hvves.client.producer.api.options; +package org.onap.dcaegen2.services.sdk.security.ssl; import static org.assertj.core.api.Assertions.assertThat; import static org.assertj.core.api.Assertions.assertThatExceptionOfType; diff --git a/services/hv-ves-client/producer/api/src/test/java/org/onap/dcaegen2/services/sdk/services/hvves/client/producer/api/options/PasswordsTest.java b/security/ssl/src/test/java/org/onap/dcaegen2/services/sdk/security/ssl/PasswordsTest.java similarity index 95% rename from services/hv-ves-client/producer/api/src/test/java/org/onap/dcaegen2/services/sdk/services/hvves/client/producer/api/options/PasswordsTest.java rename to security/ssl/src/test/java/org/onap/dcaegen2/services/sdk/security/ssl/PasswordsTest.java index 9f91afb7..07c5afe8 100644 --- a/services/hv-ves-client/producer/api/src/test/java/org/onap/dcaegen2/services/sdk/services/hvves/client/producer/api/options/PasswordsTest.java +++ b/security/ssl/src/test/java/org/onap/dcaegen2/services/sdk/security/ssl/PasswordsTest.java @@ -18,10 +18,9 @@ * ============LICENSE_END===================================== */ -package org.onap.dcaegen2.services.sdk.services.hvves.client.producer.api.options; +package org.onap.dcaegen2.services.sdk.security.ssl; import static org.assertj.core.api.Assertions.assertThat; -import static org.assertj.core.api.Fail.fail; import io.vavr.control.Try; import java.io.File; diff --git a/services/hv-ves-client/producer/api/src/test/resources/password.txt b/security/ssl/src/test/resources/password.txt similarity index 100% rename from services/hv-ves-client/producer/api/src/test/resources/password.txt rename to security/ssl/src/test/resources/password.txt diff --git a/services/hv-ves-client/producer/api/pom.xml b/services/hv-ves-client/producer/api/pom.xml index 1804b162..882ac1cd 100644 --- a/services/hv-ves-client/producer/api/pom.xml +++ b/services/hv-ves-client/producer/api/pom.xml @@ -34,7 +34,6 @@ 1.1.1-SNAPSHOT High Volume VES Collector Client :: Producer :: API - jar @@ -44,6 +43,11 @@ ${project.parent.version} compile + + org.onap.dcaegen2.services.sdk.security + ssl + 1.1.1-SNAPSHOT + org.reactivestreams reactive-streams diff --git a/services/hv-ves-client/producer/api/src/main/java/org/onap/dcaegen2/services/sdk/services/hvves/client/producer/api/options/ProducerOptions.java b/services/hv-ves-client/producer/api/src/main/java/org/onap/dcaegen2/services/sdk/services/hvves/client/producer/api/options/ProducerOptions.java index aead5253..921db52b 100644 --- a/services/hv-ves-client/producer/api/src/main/java/org/onap/dcaegen2/services/sdk/services/hvves/client/producer/api/options/ProducerOptions.java +++ b/services/hv-ves-client/producer/api/src/main/java/org/onap/dcaegen2/services/sdk/services/hvves/client/producer/api/options/ProducerOptions.java @@ -24,6 +24,7 @@ import java.net.InetSocketAddress; import org.immutables.value.Value; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; +import org.onap.dcaegen2.services.sdk.security.ssl.SecurityKeys; /** * @author Piotr Jaszczyk @@ -43,7 +44,6 @@ public interface ProducerOptions { /** * Security keys definition used when connecting to the collector. - * * @return security keys definition or null when plain TCP sockets are to be used. * @since 1.1.1 diff --git a/services/hv-ves-client/producer/ct/src/test/java/org/onap/dcaegen2/services/sdk/services/hvves/client/producer/ct/SystemUnderTestWrapper.java b/services/hv-ves-client/producer/ct/src/test/java/org/onap/dcaegen2/services/sdk/services/hvves/client/producer/ct/SystemUnderTestWrapper.java index 2cc2c0b2..ddc87bc4 100644 --- a/services/hv-ves-client/producer/ct/src/test/java/org/onap/dcaegen2/services/sdk/services/hvves/client/producer/ct/SystemUnderTestWrapper.java +++ b/services/hv-ves-client/producer/ct/src/test/java/org/onap/dcaegen2/services/sdk/services/hvves/client/producer/ct/SystemUnderTestWrapper.java @@ -26,12 +26,12 @@ import java.net.InetSocketAddress; import java.nio.file.Path; import java.nio.file.Paths; import java.time.Duration; +import org.onap.dcaegen2.services.sdk.security.ssl.ImmutableSecurityKeys; +import org.onap.dcaegen2.services.sdk.security.ssl.Passwords; import org.onap.dcaegen2.services.sdk.services.hvves.client.producer.api.HvVesProducer; import org.onap.dcaegen2.services.sdk.services.hvves.client.producer.api.HvVesProducerFactory; import org.onap.dcaegen2.services.sdk.services.hvves.client.producer.api.options.ImmutableProducerOptions; import org.onap.dcaegen2.services.sdk.services.hvves.client.producer.api.options.ImmutableProducerOptions.Builder; -import org.onap.dcaegen2.services.sdk.services.hvves.client.producer.api.options.ImmutableSecurityKeys; -import org.onap.dcaegen2.services.sdk.services.hvves.client.producer.api.options.Passwords; import org.onap.ves.VesEventOuterClass.VesEvent; import reactor.core.publisher.Flux; diff --git a/services/hv-ves-client/producer/impl/pom.xml b/services/hv-ves-client/producer/impl/pom.xml index b099b316..38b23603 100644 --- a/services/hv-ves-client/producer/impl/pom.xml +++ b/services/hv-ves-client/producer/impl/pom.xml @@ -34,7 +34,6 @@ 1.1.1-SNAPSHOT High Volume VES Collector Client :: Producer :: Implementation - jar diff --git a/services/hv-ves-client/producer/impl/src/main/java/org/onap/dcaegen2/services/sdk/services/hvves/client/producer/impl/HvVesProducerFactoryImpl.java b/services/hv-ves-client/producer/impl/src/main/java/org/onap/dcaegen2/services/sdk/services/hvves/client/producer/impl/HvVesProducerFactoryImpl.java index cf656adf..ab10088b 100644 --- a/services/hv-ves-client/producer/impl/src/main/java/org/onap/dcaegen2/services/sdk/services/hvves/client/producer/impl/HvVesProducerFactoryImpl.java +++ b/services/hv-ves-client/producer/impl/src/main/java/org/onap/dcaegen2/services/sdk/services/hvves/client/producer/impl/HvVesProducerFactoryImpl.java @@ -21,6 +21,7 @@ package org.onap.dcaegen2.services.sdk.services.hvves.client.producer.impl; import io.netty.handler.ssl.SslContext; import org.jetbrains.annotations.NotNull; +import org.onap.dcaegen2.services.sdk.security.ssl.SslFactory; import org.onap.dcaegen2.services.sdk.services.hvves.client.producer.api.HvVesProducer; import org.onap.dcaegen2.services.sdk.services.hvves.client.producer.api.HvVesProducerFactory; import org.onap.dcaegen2.services.sdk.services.hvves.client.producer.api.options.ProducerOptions;