diff options
author | Jakub Dudycz <jakub.dudycz@nokia.com> | 2019-01-30 15:58:36 +0100 |
---|---|---|
committer | Jakub Dudycz <jakub.dudycz@nokia.com> | 2019-01-31 12:55:19 +0100 |
commit | 1442bffa7b80665049d2347f7ba2a03ca6c2bd70 (patch) | |
tree | 3d767459c08d695cb8529d056a85b3bd48649c87 | |
parent | e55759f5f4c9d53108889256d3897c533077f1b8 (diff) |
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 <jakub.dudycz@nokia.com>
Issue-ID: DCAEGEN2-1135
15 files changed, 81 insertions, 20 deletions
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 @@ <modules> <module>crypt-password</module> + <module>ssl</module> </modules> </project>
\ 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 @@ +<project xmlns="http://maven.apache.org/POM/4.0.0" + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> + <modelVersion>4.0.0</modelVersion> + + <parent> + <groupId>org.onap.dcaegen2.services.sdk.security</groupId> + <artifactId>dcaegen2-services-sdk-security</artifactId> + <version>1.1.0-SNAPSHOT</version> + </parent> + + <artifactId>ssl</artifactId> + <version>1.1.1-SNAPSHOT</version> + + <name>SSL</name> + <description>Common SSL-related Classes Library</description> + <packaging>jar</packaging> + + <dependencies> + <dependency> + <groupId>io.projectreactor.netty</groupId> + <artifactId>reactor-netty</artifactId> + </dependency> + <dependency> + <groupId>org.immutables</groupId> + <artifactId>value</artifactId> + </dependency> + <dependency> + <groupId>io.vavr</groupId> + <artifactId>vavr</artifactId> + </dependency> + <dependency> + <groupId>org.jetbrains</groupId> + <artifactId>annotations</artifactId> + </dependency> + <dependency> + <groupId>org.junit.jupiter</groupId> + <artifactId>junit-jupiter-engine</artifactId> + <scope>test</scope> + </dependency> + <dependency> + <groupId>org.assertj</groupId> + <artifactId>assertj-core</artifactId> + <scope>test</scope> + </dependency> + </dependencies> + +</project>
\ 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 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 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 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 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<SslContext> 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 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 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 index 93e4a005..93e4a005 100644 --- a/services/hv-ves-client/producer/api/src/test/resources/password.txt +++ b/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 @@ <version>1.1.1-SNAPSHOT</version> <name>High Volume VES Collector Client :: Producer :: API</name> - <description></description> <packaging>jar</packaging> <dependencies> @@ -45,6 +44,11 @@ <scope>compile</scope> </dependency> <dependency> + <groupId>org.onap.dcaegen2.services.sdk.security</groupId> + <artifactId>ssl</artifactId> + <version>1.1.1-SNAPSHOT</version> + </dependency> + <dependency> <groupId>org.reactivestreams</groupId> <artifactId>reactive-streams</artifactId> </dependency> 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 <a href="mailto:piotr.jaszczyk@nokia.com">Piotr Jaszczyk</a> @@ -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 @@ <version>1.1.1-SNAPSHOT</version> <name>High Volume VES Collector Client :: Producer :: Implementation</name> - <description></description> <packaging>jar</packaging> <dependencies> 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; |