From 171b7c14820529f39e7c541f554de7a2283853f8 Mon Sep 17 00:00:00 2001 From: Alvaro Vega Date: Tue, 18 Jun 2024 13:22:27 +0200 Subject: [PATCH] add ssl context to mongoClientOptions --- .../iot/cygnus/backends/mongo/MongoBackendImpl.java | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/cygnus-common/src/main/java/com/telefonica/iot/cygnus/backends/mongo/MongoBackendImpl.java b/cygnus-common/src/main/java/com/telefonica/iot/cygnus/backends/mongo/MongoBackendImpl.java index 6e24e0793..9c8a0c8bc 100644 --- a/cygnus-common/src/main/java/com/telefonica/iot/cygnus/backends/mongo/MongoBackendImpl.java +++ b/cygnus-common/src/main/java/com/telefonica/iot/cygnus/backends/mongo/MongoBackendImpl.java @@ -40,6 +40,8 @@ import java.util.List; import java.util.TimeZone; import java.util.concurrent.TimeUnit; +import javax.net.ssl.SSLContext; +import java.security.NoSuchAlgorithmException; import org.bson.Document; /** @@ -588,6 +590,14 @@ private MongoDatabase getDatabase(String dbName) { // create a Mongo client if (client == null) { + SSLContext sslContext = null; + if (sslEnabled) { + try { + sslContext = SSLContext.getInstance("TLS"); + } catch (NoSuchAlgorithmException e) { + LOGGER.warn("Error with TLS algorithm " + e.getMessage()); + } + } if (mongoUsername.length() != 0) { String authSource; if ((mongoAuthSource != null) && !mongoAuthSource.isEmpty()) { @@ -608,17 +618,20 @@ private MongoDatabase getDatabase(String dbName) { requiredReplicaSetName(mongoReplicaSet). sslEnabled(sslEnabled). sslInvalidHostNameAllowed(sslInvalidHostNameAllowed). + sslContext(sslContext). build()); } else { client = new MongoClient(servers, credential, new MongoClientOptions.Builder(). sslEnabled(sslEnabled). sslInvalidHostNameAllowed(sslInvalidHostNameAllowed). + sslContext(sslContext). build()); } } else { MongoClientOptions options = MongoClientOptions.builder() .sslEnabled(sslEnabled) .sslInvalidHostNameAllowed(sslInvalidHostNameAllowed) + .sslContext(sslContext) .build(); client = new MongoClient(servers, options); } // if else