diff --git a/api/api-archive-search/archive-search-external/pom.xml b/api/api-archive-search/archive-search-external/pom.xml
index f94ce01f425766dad160b8505ec64617e870c30f..ee996f49d9e8960c9e353fde71c2a721510208ed 100644
--- a/api/api-archive-search/archive-search-external/pom.xml
+++ b/api/api-archive-search/archive-search-external/pom.xml
@@ -176,6 +176,10 @@
             <version>5.2.0.RELEASE</version>
             <scope>test</scope>
         </dependency>
+        <dependency>
+            <groupId>junit</groupId>
+            <artifactId>junit</artifactId>
+        </dependency>
 
     </dependencies>
 
diff --git a/api/api-archive-search/archive-search-internal/pom.xml b/api/api-archive-search/archive-search-internal/pom.xml
index 86d98cd4697739636ab7c41a1b92b95ab9debf68..57e94077b7df884f2557f5e0e1a11457ce57303d 100644
--- a/api/api-archive-search/archive-search-internal/pom.xml
+++ b/api/api-archive-search/archive-search-internal/pom.xml
@@ -17,6 +17,7 @@
         <rpm.skip>false</rpm.skip>
         <swagger.dir>api-internal</swagger.dir>
         <swagger.skip>false</swagger.skip>
+        <spring.data.mongo.version>3.1.7</spring.data.mongo.version>
     </properties>
 
     <dependencies>
@@ -101,6 +102,13 @@
             <artifactId>micrometer-registry-prometheus</artifactId>
         </dependency>
 
+        <!-- Spring Data Mongo-->
+        <dependency>
+            <groupId>org.springframework.data</groupId>
+            <artifactId>spring-data-mongodb</artifactId>
+            <version>${spring.data.mongo.version}</version>
+        </dependency>
+
         <!-- PAC4J -->
         <dependency>
             <groupId>org.pac4j</groupId>
@@ -172,6 +180,10 @@
             <scope>test</scope>
             <type>test-jar</type>
         </dependency>
+        <dependency>
+            <groupId>junit</groupId>
+            <artifactId>junit</artifactId>
+        </dependency>
 
 
     </dependencies>
diff --git a/api/api-archive-search/archive-search-internal/src/main/java/fr/gouv/vitamui/archive/internal/server/config/MongoDbConfig.java b/api/api-archive-search/archive-search-internal/src/main/java/fr/gouv/vitamui/archive/internal/server/config/MongoDbConfig.java
index b9198fc7ee2eb48a2d50418451608372c70dc594..8e9749e41da38094a43bd45b708c5aafb0bb336d 100644
--- a/api/api-archive-search/archive-search-internal/src/main/java/fr/gouv/vitamui/archive/internal/server/config/MongoDbConfig.java
+++ b/api/api-archive-search/archive-search-internal/src/main/java/fr/gouv/vitamui/archive/internal/server/config/MongoDbConfig.java
@@ -43,11 +43,10 @@ import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.context.annotation.Bean;
 import org.springframework.context.annotation.Configuration;
 import org.springframework.core.convert.converter.Converter;
-import org.springframework.data.mongodb.MongoDbFactory;
+import org.springframework.data.mongodb.MongoDatabaseFactory;
 import org.springframework.data.mongodb.core.convert.MongoCustomConversions;
 import org.springframework.data.mongodb.repository.config.EnableMongoRepositories;
 
-import javax.annotation.PostConstruct;
 import java.util.ArrayList;
 import java.util.List;
 
@@ -61,7 +60,7 @@ import java.util.List;
 public class MongoDbConfig {
 
     @Autowired
-    private MongoDbFactory mongoDbFactory;
+    private MongoDatabaseFactory mongoDbFactory;
 
     @Bean
     public MongoCustomConversions customConversion() {
diff --git a/api/api-archive-search/archive-search-internal/src/test/java/fr/gouv/vitamui/archive/internal/server/TestMongoConfig.java b/api/api-archive-search/archive-search-internal/src/test/java/fr/gouv/vitamui/archive/internal/server/TestMongoConfig.java
index 82ead31ea10ced70e08473f7f381cbce0942872b..ef1998edf3a08ae95d626f193394ef8d01c35ff3 100644
--- a/api/api-archive-search/archive-search-internal/src/test/java/fr/gouv/vitamui/archive/internal/server/TestMongoConfig.java
+++ b/api/api-archive-search/archive-search-internal/src/test/java/fr/gouv/vitamui/archive/internal/server/TestMongoConfig.java
@@ -36,7 +36,6 @@
  */
 package fr.gouv.vitamui.archive.internal.server;
 
-import com.mongodb.MongoClient;
 import de.flapdoodle.embed.mongo.MongodExecutable;
 import de.flapdoodle.embed.mongo.MongodProcess;
 import de.flapdoodle.embed.mongo.MongodStarter;
@@ -44,27 +43,22 @@ import de.flapdoodle.embed.mongo.config.MongodConfigBuilder;
 import de.flapdoodle.embed.mongo.config.Net;
 import de.flapdoodle.embed.mongo.distribution.Version;
 import de.flapdoodle.embed.process.runtime.Network;
-import fr.gouv.vitamui.commons.api.converter.OffsetDateTimeToStringConverter;
-import fr.gouv.vitamui.commons.api.converter.StringToOffsetDateTimeConverter;
+
 import fr.gouv.vitamui.commons.api.identity.ServerIdentityAutoConfiguration;
 import fr.gouv.vitamui.commons.mongo.repository.impl.VitamUIRepositoryImpl;
 import org.springframework.context.annotation.Configuration;
 import org.springframework.context.annotation.Import;
-import org.springframework.core.convert.converter.Converter;
-import org.springframework.data.convert.CustomConversions;
-import org.springframework.data.mongodb.config.AbstractMongoConfiguration;
-import org.springframework.data.mongodb.core.convert.MongoCustomConversions;
+import org.springframework.data.mongodb.config.AbstractMongoClientConfiguration;
 import org.springframework.data.mongodb.repository.config.EnableMongoRepositories;
 
 import javax.annotation.PostConstruct;
 import javax.annotation.PreDestroy;
-import java.util.ArrayList;
-import java.util.List;
+
 
 @Configuration
 @EnableMongoRepositories(basePackages = { "fr.gouv.vitamui.commons.mongo.repository" }, repositoryBaseClass = VitamUIRepositoryImpl.class)
 @Import({ ServerIdentityAutoConfiguration.class })
-public class TestMongoConfig extends AbstractMongoConfiguration {
+public class TestMongoConfig extends AbstractMongoClientConfiguration {
 
     private static final MongodStarter starter = MongodStarter.getDefaultInstance();
 
@@ -104,17 +98,5 @@ public class TestMongoConfig extends AbstractMongoConfiguration {
         return MONGO_DB_NAME;
     }
 
-    @Override
-    public MongoClient mongoClient() {
-        return new MongoClient(MONGO_HOST, port);
-    }
-
-    @Override
-    public CustomConversions customConversions() {
-        final List<Converter<?, ?>> converterList = new ArrayList<>();
-        converterList.add(new OffsetDateTimeToStringConverter());
-        converterList.add(new StringToOffsetDateTimeConverter());
-        return new MongoCustomConversions(converterList);
-    }
 
 }
diff --git a/api/api-iam/iam-external/pom.xml b/api/api-iam/iam-external/pom.xml
index 2501ee27f0b6c775e0c228779267d9fa6ab8ba5d..6fad6406fa1b62185900ee892fe5bb8d8e82b5f8 100644
--- a/api/api-iam/iam-external/pom.xml
+++ b/api/api-iam/iam-external/pom.xml
@@ -193,7 +193,11 @@
 			<scope>test</scope>
 			<type>test-jar</type>
 		</dependency>
-	</dependencies>
+        <dependency>
+            <groupId>junit</groupId>
+            <artifactId>junit</artifactId>
+        </dependency>
+    </dependencies>
 
 	<build>
 		<plugins>
diff --git a/api/api-iam/iam-internal/pom.xml b/api/api-iam/iam-internal/pom.xml
index 08374d10d9ebc1caa1fa4076f7e62bc5aecff8a2..54e2ce85673a6fb5bb31e408016bdaf0afe8b6f2 100644
--- a/api/api-iam/iam-internal/pom.xml
+++ b/api/api-iam/iam-internal/pom.xml
@@ -18,6 +18,7 @@
 		<rpm.skip>false</rpm.skip>
         <swagger.dir>api-internal</swagger.dir>
         <swagger.skip>false</swagger.skip>
+        <spring.data.mongo.version>3.1.7</spring.data.mongo.version>
 	</properties>
 
 	<dependencies>
@@ -118,6 +119,10 @@
             <groupId>org.springframework.boot</groupId>
             <artifactId>spring-boot-starter-validation</artifactId>
         </dependency>
+		<dependency>
+			<groupId>org.springframework.boot</groupId>
+			<artifactId>spring-boot-starter-tomcat</artifactId>
+		</dependency>
         <dependency>
             <groupId>io.opentracing.contrib</groupId>
             <artifactId>opentracing-spring-jaeger-web-starter</artifactId>
@@ -129,6 +134,13 @@
 			<artifactId>pac4j-saml-opensamlv3</artifactId>
 		</dependency>
 
+        <!-- Spring Data Mongo-->
+        <dependency>
+            <groupId>org.springframework.data</groupId>
+            <artifactId>spring-data-mongodb</artifactId>
+            <version>${spring.data.mongo.version}</version>
+        </dependency>
+
 		<!-- UTIL -->
 		<dependency>
 			<groupId>org.projectlombok</groupId>
@@ -262,7 +274,11 @@
 			<scope>test</scope>
 			<type>test-jar</type>
 		</dependency>
-	</dependencies>
+        <dependency>
+            <groupId>junit</groupId>
+            <artifactId>junit</artifactId>
+        </dependency>
+    </dependencies>
 
 	<build>
 		<plugins>
diff --git a/api/api-iam/iam-internal/src/main/java/fr/gouv/vitamui/iam/internal/server/config/MongoDbConfig.java b/api/api-iam/iam-internal/src/main/java/fr/gouv/vitamui/iam/internal/server/config/MongoDbConfig.java
index 63f909a44dcd8a5a7c45db60d602ecb0ec0a6138..153e4d5e12ba1b293ce18f5727cd33eda609c632 100644
--- a/api/api-iam/iam-internal/src/main/java/fr/gouv/vitamui/iam/internal/server/config/MongoDbConfig.java
+++ b/api/api-iam/iam-internal/src/main/java/fr/gouv/vitamui/iam/internal/server/config/MongoDbConfig.java
@@ -38,16 +38,15 @@ package fr.gouv.vitamui.iam.internal.server.config;
 
 import javax.annotation.PostConstruct;
 
+import com.mongodb.client.MongoCollection;
+import com.mongodb.client.MongoDatabase;
+import com.mongodb.client.model.IndexOptions;
+import org.bson.Document;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.context.annotation.Configuration;
-import org.springframework.data.mongodb.MongoDbFactory;
+import org.springframework.data.mongodb.MongoDatabaseFactory;
 import org.springframework.data.mongodb.repository.config.EnableMongoRepositories;
 
-import com.mongodb.BasicDBObject;
-import com.mongodb.DB;
-import com.mongodb.DBCollection;
-import com.mongodb.DBObject;
-
 import fr.gouv.vitamui.commons.mongo.repository.impl.VitamUIRepositoryImpl;
 import fr.gouv.vitamui.iam.internal.server.common.domain.MongoDbCollections;
 
@@ -62,7 +61,7 @@ import fr.gouv.vitamui.iam.internal.server.common.domain.MongoDbCollections;
 public class MongoDbConfig {
 
     @Autowired
-    private MongoDbFactory mongoDbFactory;
+    private MongoDatabaseFactory mongoDbFactory;
 
     @PostConstruct
     public void afterPropertiesSet() {
@@ -71,14 +70,16 @@ public class MongoDbConfig {
     }
 
     private void setUpTenantIndexOnCustomerId() {
-        final DB db = mongoDbFactory.getLegacyDb();
-        final DBCollection tenantsCollection = db.getCollection(MongoDbCollections.TENANTS);
-        final DBObject index = new BasicDBObject();
-        index.put("customerId", -1);
-        final DBObject options = new BasicDBObject();
-        options.put("background", true);
-        options.put("name", "idx_tenant_customerId");
-        tenantsCollection.createIndex(index, options);
+
+        final MongoDatabase db = mongoDbFactory.getMongoDatabase();
+        final MongoCollection tenantsCollection = db.getCollection(MongoDbCollections.TENANTS);
+        Document doc = new Document();
+        doc.append("customerId", -1);
+        IndexOptions options = new IndexOptions();
+        options.background(true);
+        options.name("idx_tenant_customerId");
+        tenantsCollection.createIndex(doc, options);
+
     }
 
 }
diff --git a/api/api-iam/iam-internal/src/main/java/fr/gouv/vitamui/iam/internal/server/externalParameters/converter/ExternalParametersConverter.java b/api/api-iam/iam-internal/src/main/java/fr/gouv/vitamui/iam/internal/server/externalParameters/converter/ExternalParametersConverter.java
index 1f9f90502d56e259af1053c5105ee039bb77e31a..22a7dbacef2a7da3db5bc17f829d461c0b72228a 100644
--- a/api/api-iam/iam-internal/src/main/java/fr/gouv/vitamui/iam/internal/server/externalParameters/converter/ExternalParametersConverter.java
+++ b/api/api-iam/iam-internal/src/main/java/fr/gouv/vitamui/iam/internal/server/externalParameters/converter/ExternalParametersConverter.java
@@ -39,17 +39,18 @@ package fr.gouv.vitamui.iam.internal.server.externalParameters.converter;
 import fr.gouv.vitamui.commons.api.converter.Converter;
 import fr.gouv.vitamui.commons.api.domain.ExternalParametersDto;
 import fr.gouv.vitamui.commons.api.domain.ParameterDto;
+import fr.gouv.vitamui.commons.api.logger.VitamUILogger;
+import fr.gouv.vitamui.commons.api.logger.VitamUILoggerFactory;
 import fr.gouv.vitamui.commons.api.utils.ApiUtils;
 import fr.gouv.vitamui.commons.logbook.util.LogbookUtils;
 import fr.gouv.vitamui.commons.utils.VitamUIUtils;
+import fr.gouv.vitamui.iam.internal.server.common.domain.Parameter;
 import fr.gouv.vitamui.iam.internal.server.externalParameters.domain.ExternalParameters;
+import fr.gouv.vitamui.iam.internal.server.externalParameters.service.ExternalParametersInternalService;
 import lombok.Getter;
 import lombok.Setter;
 
-import java.util.Collection;
-import java.util.LinkedHashMap;
-import java.util.List;
-import java.util.Map;
+import java.util.*;
 import java.util.stream.Collectors;
 import java.util.stream.StreamSupport;
 
@@ -84,12 +85,30 @@ public class ExternalParametersConverter implements Converter<ExternalParameters
 
     @Override
     public ExternalParameters convertDtoToEntity(final ExternalParametersDto dto) {
-        return VitamUIUtils.copyProperties(dto, new ExternalParameters());
+        ExternalParameters externalParameters = VitamUIUtils.copyProperties(dto, new ExternalParameters());
+         if(dto.getParameters() != null ) {
+            externalParameters.setParameters(dto.getParameters().stream().map(parameterDto -> {
+                 return VitamUIUtils.copyProperties(parameterDto,new Parameter());
+             }).collect(Collectors.toList()));
+         }
+         return externalParameters;
     }
 
     @Override
     public ExternalParametersDto convertEntityToDto(final ExternalParameters entity) {
-        return VitamUIUtils.copyProperties(entity, new ExternalParametersDto());
+        ExternalParametersDto externalParametersDto = new ExternalParametersDto();
+        externalParametersDto.setId(entity.getId());
+        externalParametersDto.setName(entity.getName());
+        externalParametersDto.setIdentifier(entity.getIdentifier());
+        List<ParameterDto> parametersDtoList = new ArrayList<>();
+        entity.getParameters().stream().forEach(parameter -> {
+            ParameterDto parameterDto = new ParameterDto();
+            parameterDto.setValue(parameter.getValue());
+            parameterDto.setKey(parameter.getKey());
+            parametersDtoList.add(parameterDto);
+        });
+        externalParametersDto.setParameters(parametersDtoList);
+        return externalParametersDto;
     }
 
     public String convertParametersToLogbook(final Collection<ParameterDto> parameterDtos) {
diff --git a/api/api-iam/iam-internal/src/main/java/fr/gouv/vitamui/iam/internal/server/user/converter/UserConverter.java b/api/api-iam/iam-internal/src/main/java/fr/gouv/vitamui/iam/internal/server/user/converter/UserConverter.java
index 93bdf1b0c25e1b83e2c39aa525ca8677b45aef1e..0ac7a1a26ba910471309c4e448c653b78b737227 100644
--- a/api/api-iam/iam-internal/src/main/java/fr/gouv/vitamui/iam/internal/server/user/converter/UserConverter.java
+++ b/api/api-iam/iam-internal/src/main/java/fr/gouv/vitamui/iam/internal/server/user/converter/UserConverter.java
@@ -38,10 +38,13 @@ package fr.gouv.vitamui.iam.internal.server.user.converter;
 
 import static fr.gouv.vitamui.commons.api.CommonConstants.GPDR_DEFAULT_VALUE;
 
+import java.util.ArrayList;
 import java.util.LinkedHashMap;
+import java.util.List;
 import java.util.Map;
 import java.util.Optional;
 
+import fr.gouv.vitamui.commons.api.domain.ApplicationAnalyticsDto;
 import org.apache.commons.lang3.StringUtils;
 
 import fr.gouv.vitamui.commons.api.converter.Converter;
@@ -148,12 +151,23 @@ public class UserConverter implements Converter<UserDto, User> {
     @Override
     public UserDto convertEntityToDto(final User user) {
         final UserDto userDto = new UserDto();
+        AnalyticsDto analyticsDto = new AnalyticsDto();
         VitamUIUtils.copyProperties(user, userDto);
         if (user.getAddress() != null) {
             userDto.setAddress(VitamUIUtils.copyProperties(user.getAddress(), new AddressDto()));
         }
         if (user.getAnalytics() != null) {
-            userDto.setAnalytics(VitamUIUtils.copyProperties(user.getAnalytics(), new AnalyticsDto()));
+            List<ApplicationAnalyticsDto> applicationAnalyticsDtoList = new ArrayList<>();
+            user.getAnalytics().getApplications().forEach(application -> {
+                ApplicationAnalyticsDto applicationAnalyticsDto = new ApplicationAnalyticsDto();
+                applicationAnalyticsDto.setApplicationId(application.getApplicationId());
+                applicationAnalyticsDto.setLastAccess(application.getLastAccess());
+                applicationAnalyticsDto.setAccessCounter(application.getAccessCounter());
+                applicationAnalyticsDtoList.add(applicationAnalyticsDto);
+            });
+            analyticsDto.setApplications(applicationAnalyticsDtoList);
+            analyticsDto.setLastTenantIdentifier(user.getAnalytics().getLastTenantIdentifier());
+            userDto.setAnalytics(analyticsDto);
         }
         return userDto;
     }
diff --git a/api/api-iam/iam-internal/src/main/java/fr/gouv/vitamui/iam/internal/server/user/service/UserInternalService.java b/api/api-iam/iam-internal/src/main/java/fr/gouv/vitamui/iam/internal/server/user/service/UserInternalService.java
index e3b39e65a3891cbceaa15ab9b191352afb8cb1ba..ce896eed7d461780c0f6b248464e372fc663c079 100644
--- a/api/api-iam/iam-internal/src/main/java/fr/gouv/vitamui/iam/internal/server/user/service/UserInternalService.java
+++ b/api/api-iam/iam-internal/src/main/java/fr/gouv/vitamui/iam/internal/server/user/service/UserInternalService.java
@@ -927,7 +927,8 @@ public class UserInternalService extends VitamUICrudService<UserDto, User> {
             }
         });
 
-        return convertFromEntityToDto(getRepository().save(user));
+        return userConverter.convertEntityToDto(getRepository().save(user));
+
     }
 
     private User getUserById(final String id) {
diff --git a/api/api-iam/iam-internal/src/test/java/fr/gouv/vitamui/iam/internal/server/TestMongoConfig.java b/api/api-iam/iam-internal/src/test/java/fr/gouv/vitamui/iam/internal/server/TestMongoConfig.java
index b603d81712498a724f38ca45de6f84c18f7ca7a2..5f08980fcce8b56d96155426af038eadabe652e5 100644
--- a/api/api-iam/iam-internal/src/test/java/fr/gouv/vitamui/iam/internal/server/TestMongoConfig.java
+++ b/api/api-iam/iam-internal/src/test/java/fr/gouv/vitamui/iam/internal/server/TestMongoConfig.java
@@ -1,21 +1,14 @@
 package fr.gouv.vitamui.iam.internal.server;
 
-import java.util.ArrayList;
-import java.util.List;
 
 import javax.annotation.PostConstruct;
 import javax.annotation.PreDestroy;
 
 import org.springframework.context.annotation.Configuration;
 import org.springframework.context.annotation.Import;
-import org.springframework.core.convert.converter.Converter;
-import org.springframework.data.convert.CustomConversions;
-import org.springframework.data.mongodb.config.AbstractMongoConfiguration;
-import org.springframework.data.mongodb.core.convert.MongoCustomConversions;
+import org.springframework.data.mongodb.config.AbstractMongoClientConfiguration;
 import org.springframework.data.mongodb.repository.config.EnableMongoRepositories;
 
-import com.mongodb.MongoClient;
-
 import de.flapdoodle.embed.mongo.MongodExecutable;
 import de.flapdoodle.embed.mongo.MongodProcess;
 import de.flapdoodle.embed.mongo.MongodStarter;
@@ -23,15 +16,13 @@ import de.flapdoodle.embed.mongo.config.MongodConfigBuilder;
 import de.flapdoodle.embed.mongo.config.Net;
 import de.flapdoodle.embed.mongo.distribution.Version;
 import de.flapdoodle.embed.process.runtime.Network;
-import fr.gouv.vitamui.commons.api.converter.OffsetDateTimeToStringConverter;
-import fr.gouv.vitamui.commons.api.converter.StringToOffsetDateTimeConverter;
 import fr.gouv.vitamui.commons.api.identity.ServerIdentityAutoConfiguration;
 import fr.gouv.vitamui.commons.mongo.repository.impl.VitamUIRepositoryImpl;
 
 @Configuration
 @EnableMongoRepositories(basePackages = { "fr.gouv.vitamui.commons.mongo.repository" }, repositoryBaseClass = VitamUIRepositoryImpl.class)
 @Import({ ServerIdentityAutoConfiguration.class })
-public class TestMongoConfig extends AbstractMongoConfiguration {
+public class TestMongoConfig extends AbstractMongoClientConfiguration {
 
     private static final MongodStarter starter = MongodStarter.getDefaultInstance();
 
@@ -71,17 +62,4 @@ public class TestMongoConfig extends AbstractMongoConfiguration {
         return MONGO_DB_NAME;
     }
 
-    @Override
-    public MongoClient mongoClient() {
-        return new MongoClient(MONGO_HOST, port);
-    }
-
-    @Override
-    public CustomConversions customConversions() {
-        final List<Converter<?, ?>> converterList = new ArrayList<>();
-        converterList.add(new OffsetDateTimeToStringConverter());
-        converterList.add(new StringToOffsetDateTimeConverter());
-        return new MongoCustomConversions(converterList);
-    }
-
 }
diff --git a/api/api-ingest/ingest-external/pom.xml b/api/api-ingest/ingest-external/pom.xml
index 06b4e4dc9e028d4297a1184b76ca89232678ddf1..1b3caa6178acf15076cd7291d27037e6002e7cb0 100644
--- a/api/api-ingest/ingest-external/pom.xml
+++ b/api/api-ingest/ingest-external/pom.xml
@@ -184,6 +184,10 @@
             <scope>test</scope>
             <type>test-jar</type>
         </dependency>
+        <dependency>
+            <groupId>junit</groupId>
+            <artifactId>junit</artifactId>
+        </dependency>
     </dependencies>
 
     <build>
diff --git a/api/api-ingest/ingest-internal/pom.xml b/api/api-ingest/ingest-internal/pom.xml
index 7b45e5e2981ad2d73f7fba83ff8a2168422038c0..007a07827a91eba4e5978c4fc3a31709fdb66b47 100644
--- a/api/api-ingest/ingest-internal/pom.xml
+++ b/api/api-ingest/ingest-internal/pom.xml
@@ -163,6 +163,10 @@
         </dependency>
 
         <!--TEST -->
+        <dependency>
+            <groupId>junit</groupId>
+            <artifactId>junit</artifactId>
+        </dependency>
         <dependency>
             <groupId>org.springframework.boot</groupId>
             <artifactId>spring-boot-starter-test</artifactId>
diff --git a/api/api-ingest/ingest-internal/src/main/java/fr/gouv/vitamui/ingest/internal/server/rest/IngestInternalController.java b/api/api-ingest/ingest-internal/src/main/java/fr/gouv/vitamui/ingest/internal/server/rest/IngestInternalController.java
index bfc79471334dff49e70cb5d60ae19f279ace1e72..be8f72b06346cceeb8e5f5dd33c91d16e910a0ee 100644
--- a/api/api-ingest/ingest-internal/src/main/java/fr/gouv/vitamui/ingest/internal/server/rest/IngestInternalController.java
+++ b/api/api-ingest/ingest-internal/src/main/java/fr/gouv/vitamui/ingest/internal/server/rest/IngestInternalController.java
@@ -41,11 +41,12 @@ import fr.gouv.vitamui.iam.security.service.InternalSecurityService;
 import fr.gouv.vitamui.commons.vitam.api.dto.LogbookOperationDto;
 import fr.gouv.vitamui.ingest.common.rest.RestApi;
 import fr.gouv.vitamui.ingest.internal.server.service.IngestInternalService;
+
 import io.swagger.annotations.Api;
 import lombok.Getter;
 import lombok.Setter;
+
 import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.boot.configurationprocessor.json.JSONException;
 import org.springframework.http.HttpStatus;
 import org.springframework.http.MediaType;
 import org.springframework.http.ResponseEntity;
@@ -57,8 +58,8 @@ import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RequestParam;
 import org.springframework.web.bind.annotation.RestController;
 import org.springframework.web.multipart.MultipartFile;
-import java.io.IOException;
 
+import java.io.IOException;
 import java.net.URISyntaxException;
 import java.util.Optional;
 
@@ -120,7 +121,7 @@ public class IngestInternalController {
        byte[] response =  this.ingestInternalService.generateODTReport(vitamContext, id);
         return new ResponseEntity<>(response, HttpStatus.OK);
       }
-       catch(IOException | JSONException | URISyntaxException | IngestFileGenerationException e) {
+       catch(IOException | URISyntaxException | IngestFileGenerationException e) {
             LOGGER.error("Error with generating Report : {} " , e.getMessage());
             throw new IngestFileGenerationException("Unable to generate the ingest report " + e);
       }
diff --git a/api/api-ingest/ingest-internal/src/main/java/fr/gouv/vitamui/ingest/internal/server/service/IngestGeneratorODTFile.java b/api/api-ingest/ingest-internal/src/main/java/fr/gouv/vitamui/ingest/internal/server/service/IngestGeneratorODTFile.java
index 0f2c542409f5236b1e6596d6f907d5ce6a039152..7cff37ed6030a91719acf677bf5bb2f2f41a5440 100644
--- a/api/api-ingest/ingest-internal/src/main/java/fr/gouv/vitamui/ingest/internal/server/service/IngestGeneratorODTFile.java
+++ b/api/api-ingest/ingest-internal/src/main/java/fr/gouv/vitamui/ingest/internal/server/service/IngestGeneratorODTFile.java
@@ -53,8 +53,6 @@ import org.odftoolkit.simple.table.Cell;
 import org.odftoolkit.simple.table.Row;
 import org.odftoolkit.simple.table.Table;
 import org.odftoolkit.simple.text.Paragraph;
-import org.springframework.boot.configurationprocessor.json.JSONException;
-import org.springframework.boot.configurationprocessor.json.JSONObject;
 import org.springframework.core.io.Resource;
 import org.springframework.util.FileCopyUtils;
 import org.w3c.dom.Document;
@@ -157,11 +155,11 @@ public class IngestGeneratorODTFile {
      * Le service producteur et le service versant
      *
      * */
-    public void generateServicesTable(TextDocument document, Document manifest, JSONObject jsonObject)
-        throws JSONException {
+    public void generateServicesTable(TextDocument document, Document manifest)
+         {
+
+            addSpace(document);
 
-        addSpace(document);
-        try {
             Table table = document.addTable(2, 2);
             Cell cellOne = table.getColumnByIndex(0).getCellByIndex(0);
             Cell cellTwo = table.getColumnByIndex(0).getCellByIndex(1);
@@ -180,14 +178,11 @@ public class IngestGeneratorODTFile {
             table.getColumnByIndex(1).getCellByIndex(0)
                 .setStringValue(getManifestPrincipalData(manifest,"OriginatingAgencyIdentifier"));
             table.getColumnByIndex(1).getCellByIndex(1)
-                .setStringValue(getServiceVersant(jsonObject));
+                .setStringValue(getServiceVersant(manifest));
 
             addSpace( document);
 
-        } catch (JSONException e) {
-            LOGGER.error("Unable to get the data from the JsonObject : {}", e.getMessage());
-            throw new JSONException("Unable to get the data from the JsonObject " + e.getMessage());
-        }
+
 
     }
 
@@ -388,28 +383,19 @@ public class IngestGeneratorODTFile {
         List<ArchiveUnitDto> archiveUnitDtoList = new ArrayList<>();
         Map<String, String> map = getSystemIdValues(atr);
         manifest.getDocumentElement().normalize();
-        NodeList nList = manifest.getElementsByTagName("ArchiveUnit");
+        NodeList contentNode = manifest.getDocumentElement().getElementsByTagName("Content");
 
-        for (int temp = 0; temp < nList.getLength(); temp++) {
-            Node nNode = nList.item(temp);
+        for (int item = 0; item < contentNode.getLength(); item++) {
+            Node nNode = contentNode.item(item);
             if (nNode.getNodeType() == Node.ELEMENT_NODE) {
                 ArchiveUnitDto archiveUnitDto = new ArchiveUnitDto();
                 Element eElement = (Element) nNode;
-
-                if (map.get(eElement.getAttribute("id")) != null) {
-
-                    archiveUnitDto.setId(eElement.getAttribute("id"));
-                    archiveUnitDto.setTitle(eElement.getElementsByTagName("Title").getLength() == 0 ?
-                        "_ _ _ _" :
-                        eElement.getElementsByTagName("Title").item(0).getTextContent());
-                    archiveUnitDto.setEndDate(eElement.getElementsByTagName("EndDate").getLength() == 0 ?
-                        "_ _ _ _" :
-                        eElement.getElementsByTagName("EndDate").item(0).getTextContent());
-                    archiveUnitDto.setStartDate(eElement.getElementsByTagName("StartDate").getLength() == 0 ?
-                        "_ _ _ _" :
-                        eElement.getElementsByTagName("StartDate").item(0).getTextContent());
-                    archiveUnitDto.setSystemId(map.get(eElement.getAttribute("id")));
-
+                if (map.get(((Element) eElement.getParentNode()).getAttribute("id")) != null) {
+                    archiveUnitDto.setId(((Element) eElement.getParentNode()).getAttribute("id"));
+                    archiveUnitDto.setTitle(getData(eElement,"Title"));
+                    archiveUnitDto.setEndDate(getData(eElement,"EndDate"));
+                    archiveUnitDto.setStartDate(getData(eElement,"StartDate"));
+                    archiveUnitDto.setSystemId(map.get(((Element) eElement.getParentNode()).getAttribute("id")));
                     archiveUnitDtoList.add(archiveUnitDto);
                 }
             }
@@ -471,11 +457,10 @@ public class IngestGeneratorODTFile {
         return map;
     }
 
-    private String getServiceVersant(JSONObject jsonObject) throws JSONException {
-        if (jsonObject.toString().contains("submissionAgency")) {
-            return jsonObject.get("submissionAgency").toString();
-        }
-        return jsonObject.get("originatingAgency").toString();
+    private String getServiceVersant(Document document) {
+        return document.getElementsByTagName("SubmissionAgencyIdentifier").getLength() == 0 ?
+            getManifestPrincipalData(document,"OriginatingAgencyIdentifier") :
+            document.getElementsByTagName("SubmissionAgencyIdentifier").item(0).getTextContent();
     }
 
     private String getManifestPrincipalData(Document document, String tageName) {
@@ -542,11 +527,18 @@ public class IngestGeneratorODTFile {
         if(listOfDate.size() > 0) {
 
            String firstStartDate =  listOfDate.stream().map(
-               startDate -> startDate.substring(0, startDate.indexOf("T")))
+               startDate ->
+                   startDate.substring(0, startDate.indexOf("T")))
                .sorted().findFirst().get();
 
             return transformDate(firstStartDate);
         }
         return "_ _ _ _";
     }
+
+    private String getData(Element element, String tagName) {
+        return element.getElementsByTagName(tagName).getLength() == 0 ?
+            "_ _ _ _" :
+            element.getElementsByTagName(tagName).item(0).getTextContent();
+    }
 }
diff --git a/api/api-ingest/ingest-internal/src/main/java/fr/gouv/vitamui/ingest/internal/server/service/IngestInternalService.java b/api/api-ingest/ingest-internal/src/main/java/fr/gouv/vitamui/ingest/internal/server/service/IngestInternalService.java
index 8a746ccf5a1f4eed0c52c276f56f365872065e7c..31840351bec10aa87052d2d7f8847ec2c9e8ce9f 100644
--- a/api/api-ingest/ingest-internal/src/main/java/fr/gouv/vitamui/ingest/internal/server/service/IngestInternalService.java
+++ b/api/api-ingest/ingest-internal/src/main/java/fr/gouv/vitamui/ingest/internal/server/service/IngestInternalService.java
@@ -57,18 +57,15 @@ import fr.gouv.vitamui.iam.security.service.InternalSecurityService;
 import fr.gouv.vitamui.ingest.common.dsl.VitamQueryHelper;
 import fr.gouv.vitamui.ingest.common.dto.ArchiveUnitDto;
 import fr.gouv.vitamui.ingest.internal.server.rest.IngestInternalController;
-import java.io.ByteArrayOutputStream;
 
 import org.odftoolkit.simple.TextDocument;
 import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.boot.configurationprocessor.json.JSONException;
-import org.springframework.boot.configurationprocessor.json.JSONObject;
 import org.springframework.core.io.InputStreamResource;
 import org.springframework.core.io.Resource;
 import org.springframework.web.multipart.MultipartFile;
-
 import org.w3c.dom.Document;
 
+import java.io.ByteArrayOutputStream;
 import javax.ws.rs.core.Response;
 import java.io.IOException;
 import java.io.InputStream;
@@ -251,10 +248,8 @@ public class IngestInternalService {
     }
 
     public byte[] generateODTReport(VitamContext vitamContext, final String id)
-        throws IOException, JSONException, URISyntaxException, IngestFileGenerationException {
+        throws IOException, URISyntaxException, IngestFileGenerationException {
 
-        LogbookOperationDto selectedIngest = getOne(vitamContext, id) ;
-        JSONObject jsonObject = new JSONObject(selectedIngest.getAgIdExt());
         CustomerDto myCustomer = customerInternalRestClient.getMyCustomer(internalSecurityService.getHttpContext());
         Resource customerLogo = null;
 
@@ -279,7 +274,7 @@ public class IngestInternalService {
 
             ingestGeneratorODTFile.generateFirstTitle(document);
 
-            ingestGeneratorODTFile.generateServicesTable(document,manifest,jsonObject);
+            ingestGeneratorODTFile.generateServicesTable(document,manifest);
 
             ingestGeneratorODTFile.generateDepositDataTable(document,manifest,archiveUnitDtoList);
 
@@ -304,7 +299,7 @@ public class IngestInternalService {
 
             return result.toByteArray();
 
-        } catch (IOException | JSONException | URISyntaxException | IngestFileGenerationException e) {
+        } catch (IOException | URISyntaxException | IngestFileGenerationException e) {
             LOGGER.error("Error with generating Report : {} " , e.getMessage());
             throw new IngestFileGenerationException("Unable to generate the ingest report ", e) ;
         }
diff --git a/api/api-referential/referential-external/pom.xml b/api/api-referential/referential-external/pom.xml
index 4d6e0895693bff143652e85a593087f6d0b3236c..b110c02767f7bc39585b720eb903211da2b2eaf5 100644
--- a/api/api-referential/referential-external/pom.xml
+++ b/api/api-referential/referential-external/pom.xml
@@ -191,7 +191,11 @@
 			<scope>test</scope>
 			<type>test-jar</type>
 		</dependency>
-	</dependencies>
+        <dependency>
+            <groupId>junit</groupId>
+            <artifactId>junit</artifactId>
+        </dependency>
+    </dependencies>
 
 	<build>
 		<plugins>
diff --git a/api/api-security/security-internal/pom.xml b/api/api-security/security-internal/pom.xml
index 40262ac66cf871240497ea9721d3975dee375221..d46b481153c17ff2af2e416891348e8ebdda76cb 100644
--- a/api/api-security/security-internal/pom.xml
+++ b/api/api-security/security-internal/pom.xml
@@ -93,6 +93,10 @@
             <groupId>org.springframework</groupId>
             <artifactId>spring-context-support</artifactId>
         </dependency>
+        <dependency>
+            <groupId>org.springframework.boot</groupId>
+            <artifactId>spring-boot-starter-tomcat</artifactId>
+        </dependency>
         <dependency>
             <groupId>io.opentracing.contrib</groupId>
             <artifactId>opentracing-spring-jaeger-web-starter</artifactId>
@@ -135,6 +139,10 @@
             <groupId>de.flapdoodle.embed</groupId>
             <artifactId>de.flapdoodle.embed.mongo</artifactId>
         </dependency>
+        <dependency>
+            <groupId>junit</groupId>
+            <artifactId>junit</artifactId>
+        </dependency>
     </dependencies>
 
     <build>
diff --git a/api/api-security/security-internal/src/main/java/fr/gouv/vitamui/security/server/config/MongoDbConfig.java b/api/api-security/security-internal/src/main/java/fr/gouv/vitamui/security/server/config/MongoDbConfig.java
index 5fdc9eac8315154b64888fe102523c3a254df445..6c40a40d6abaf569c015748a88cc65e89582c096 100644
--- a/api/api-security/security-internal/src/main/java/fr/gouv/vitamui/security/server/config/MongoDbConfig.java
+++ b/api/api-security/security-internal/src/main/java/fr/gouv/vitamui/security/server/config/MongoDbConfig.java
@@ -38,14 +38,14 @@ package fr.gouv.vitamui.security.server.config;
 
 import javax.annotation.PostConstruct;
 
+import com.mongodb.client.MongoCollection;
+import com.mongodb.client.MongoDatabase;
+import com.mongodb.client.model.IndexOptions;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.context.annotation.Configuration;
-import org.springframework.data.mongodb.MongoDbFactory;
+import org.springframework.data.mongodb.MongoDatabaseFactory;
 
-import com.mongodb.BasicDBObject;
-import com.mongodb.DB;
-import com.mongodb.DBCollection;
-import com.mongodb.DBObject;
+import org.bson.Document;
 
 import fr.gouv.vitamui.security.server.common.domain.MongoDbCollections;
 
@@ -58,7 +58,7 @@ import fr.gouv.vitamui.security.server.common.domain.MongoDbCollections;
 public class MongoDbConfig {
 
     @Autowired
-    private MongoDbFactory mongoDbFactory;
+    private MongoDatabaseFactory mongoDbFactory;
 
     @PostConstruct
     public void afterPropertiesSet() {
@@ -67,13 +67,13 @@ public class MongoDbConfig {
     }
 
     private void setUpCertificateIndexOnData() {
-        final DB db = mongoDbFactory.getLegacyDb();
-        final DBCollection tenantsCollection = db.getCollection(MongoDbCollections.CERTIFICATES);
-        final DBObject index = new BasicDBObject();
-        index.put("data", "hashed");
-        final DBObject options = new BasicDBObject();
-        options.put("background", true);
-        options.put("name", "idx_certificate_data");
-        tenantsCollection.createIndex(index, options);
+        final MongoDatabase db = mongoDbFactory.getMongoDatabase();
+        final MongoCollection tenantsCollection = db.getCollection(MongoDbCollections.CERTIFICATES);
+        Document doc = new Document();
+        doc.append("data", "hashed");
+        IndexOptions options = new IndexOptions();
+        options.background(true);
+        options.name("idx_certificate_data");
+        tenantsCollection.createIndex(doc, options);
     }
 }
diff --git a/api/api-security/security-internal/src/test/java/fr/gouv/vitamui/security/server/TestMongoConfig.java b/api/api-security/security-internal/src/test/java/fr/gouv/vitamui/security/server/TestMongoConfig.java
index 7347536b48adcfbd36c0f4b5efba363dbce31ba9..df9a0c0d6ca58bce95503b4ff88b457b4d7ddae2 100644
--- a/api/api-security/security-internal/src/test/java/fr/gouv/vitamui/security/server/TestMongoConfig.java
+++ b/api/api-security/security-internal/src/test/java/fr/gouv/vitamui/security/server/TestMongoConfig.java
@@ -1,6 +1,5 @@
 package fr.gouv.vitamui.security.server;
 
-import com.mongodb.MongoClient;
 import de.flapdoodle.embed.mongo.MongodExecutable;
 import de.flapdoodle.embed.mongo.MongodProcess;
 import de.flapdoodle.embed.mongo.MongodStarter;
@@ -9,13 +8,13 @@ import de.flapdoodle.embed.mongo.config.Net;
 import de.flapdoodle.embed.mongo.distribution.Version;
 import de.flapdoodle.embed.process.runtime.Network;
 import org.springframework.context.annotation.Configuration;
-import org.springframework.data.mongodb.config.AbstractMongoConfiguration;
+import org.springframework.data.mongodb.config.AbstractMongoClientConfiguration;
 
 import javax.annotation.PostConstruct;
 import javax.annotation.PreDestroy;
 
 @Configuration
-public class TestMongoConfig extends AbstractMongoConfiguration {
+public class TestMongoConfig extends AbstractMongoClientConfiguration {
 
     private static final MongodStarter starter = MongodStarter.getDefaultInstance();
 
@@ -52,9 +51,4 @@ public class TestMongoConfig extends AbstractMongoConfiguration {
         return MONGO_DB_NAME;
     }
 
-    @Override
-    public MongoClient mongoClient() {
-        return new MongoClient(MONGO_HOST, port) ;
-    }
-
 }
diff --git a/commons/commons-api/pom.xml b/commons/commons-api/pom.xml
index 176d9648d3e286a4dd42c1e4a3e59540275ae19d..5278ce320b1f06e960e20269caaf0106d07c2ba4 100644
--- a/commons/commons-api/pom.xml
+++ b/commons/commons-api/pom.xml
@@ -33,6 +33,12 @@
             <scope>provided</scope>
         </dependency>
 
+        <dependency>
+            <groupId>org.springframework.boot</groupId>
+            <artifactId>spring-boot-starter-validation</artifactId>
+            <scope>provided</scope>
+        </dependency>
+
 		<dependency>
     		<groupId>org.springframework.boot</groupId>
     		<artifactId>spring-boot-starter-json</artifactId>
diff --git a/commons/commons-api/src/test/java/fr/gouv/vitamui/commons/api/logger/FakeLoggerTest.java b/commons/commons-api/src/test/java/fr/gouv/vitamui/commons/api/logger/FakeLoggerTest.java
index 209141f5e7c1a88214b6e8666770ab835c996582..d6ae834dea609be94052ab99dabede94f8bde8db 100644
--- a/commons/commons-api/src/test/java/fr/gouv/vitamui/commons/api/logger/FakeLoggerTest.java
+++ b/commons/commons-api/src/test/java/fr/gouv/vitamui/commons/api/logger/FakeLoggerTest.java
@@ -11,9 +11,8 @@ import java.io.PrintStream;
 
 import org.junit.AfterClass;
 import org.junit.Before;
-import org.junit.Rule;
 import org.junit.Test;
-import org.springframework.boot.test.rule.OutputCapture;
+
 
 public class FakeLoggerTest {
 
@@ -27,8 +26,6 @@ public class FakeLoggerTest {
 
     protected static final StringBuilder buf = new StringBuilder();
 
-    @Rule
-    public OutputCapture outputCapture = new OutputCapture();
 
     /**
      * @throws java.lang.Exception
@@ -37,7 +34,6 @@ public class FakeLoggerTest {
     @Before
     public void setUp() throws Exception {
         buf.setLength(0);
-        outputCapture.reset();
         err = new ByteArrayOutputStream();
         System.setErr(new PrintStream(err));
 
diff --git a/commons/commons-logbook/src/test/java/fr/gouv/vitamui/commons/logbook/TestMongoConfig.java b/commons/commons-logbook/src/test/java/fr/gouv/vitamui/commons/logbook/TestMongoConfig.java
index c8457aa7208eff88ec22b204032978f5951ab7a1..05826c90d1af6fdab35e3f73184e525184973e25 100644
--- a/commons/commons-logbook/src/test/java/fr/gouv/vitamui/commons/logbook/TestMongoConfig.java
+++ b/commons/commons-logbook/src/test/java/fr/gouv/vitamui/commons/logbook/TestMongoConfig.java
@@ -1,19 +1,12 @@
 package fr.gouv.vitamui.commons.logbook;
 
-import java.util.ArrayList;
-import java.util.List;
-
 import javax.annotation.PostConstruct;
 import javax.annotation.PreDestroy;
 
 import org.springframework.context.annotation.Configuration;
-import org.springframework.core.convert.converter.Converter;
-import org.springframework.data.convert.CustomConversions;
-import org.springframework.data.mongodb.config.AbstractMongoConfiguration;
-import org.springframework.data.mongodb.core.convert.MongoCustomConversions;
+import org.springframework.data.mongodb.config.AbstractMongoClientConfiguration;
 import org.springframework.data.mongodb.repository.config.EnableMongoRepositories;
 
-import com.mongodb.MongoClient;
 
 import de.flapdoodle.embed.mongo.MongodExecutable;
 import de.flapdoodle.embed.mongo.MongodProcess;
@@ -22,8 +15,6 @@ import de.flapdoodle.embed.mongo.config.MongodConfigBuilder;
 import de.flapdoodle.embed.mongo.config.Net;
 import de.flapdoodle.embed.mongo.distribution.Version;
 import de.flapdoodle.embed.process.runtime.Network;
-import fr.gouv.vitamui.commons.api.converter.OffsetDateTimeToStringConverter;
-import fr.gouv.vitamui.commons.api.converter.StringToOffsetDateTimeConverter;
 import fr.gouv.vitamui.commons.logbook.dao.EventRepository;
 import fr.gouv.vitamui.commons.mongo.repository.CommonsMongoRepository;
 import fr.gouv.vitamui.commons.mongo.repository.impl.VitamUIRepositoryImpl;
@@ -34,7 +25,7 @@ import org.springframework.test.context.TestPropertySource;
         basePackageClasses = {EventRepository.class, CommonsMongoRepository.class},
         repositoryBaseClass = VitamUIRepositoryImpl.class)
 @TestPropertySource(properties = { "spring.config.name=common-logbook" })
-public class TestMongoConfig extends AbstractMongoConfiguration {
+public class TestMongoConfig extends AbstractMongoClientConfiguration {
 
 
     private static final MongodStarter starter = MongodStarter.getDefaultInstance();
@@ -74,16 +65,4 @@ public class TestMongoConfig extends AbstractMongoConfiguration {
         return MONGO_DB_NAME;
     }
 
-    @Override
-    public MongoClient mongoClient() {
-        return new MongoClient(MONGO_HOST, port) ;
-    }
-
-    @Override
-    public CustomConversions customConversions() {
-        final List<Converter<?, ?>> converterList = new ArrayList<>();
-        converterList.add(new OffsetDateTimeToStringConverter());
-        converterList.add(new StringToOffsetDateTimeConverter());
-        return new MongoCustomConversions(converterList);
-    }
 }
diff --git a/commons/commons-mongo/src/main/java/fr/gouv/vitamui/commons/mongo/config/MongoConfig.java b/commons/commons-mongo/src/main/java/fr/gouv/vitamui/commons/mongo/config/MongoConfig.java
index 86e3075f34b5a7990daa5525e490c587b5d47f10..32cc52808e7d37e5a3b236a7c1370412afc20c8d 100644
--- a/commons/commons-mongo/src/main/java/fr/gouv/vitamui/commons/mongo/config/MongoConfig.java
+++ b/commons/commons-mongo/src/main/java/fr/gouv/vitamui/commons/mongo/config/MongoConfig.java
@@ -34,7 +34,7 @@ import org.springframework.context.annotation.Bean;
 import org.springframework.context.annotation.Configuration;
 import org.springframework.context.annotation.Profile;
 import org.springframework.core.convert.converter.Converter;
-import org.springframework.data.mongodb.MongoDbFactory;
+import org.springframework.data.mongodb.MongoDatabaseFactory;
 import org.springframework.data.mongodb.MongoTransactionManager;
 import org.springframework.data.mongodb.core.convert.MongoCustomConversions;
 
@@ -52,7 +52,7 @@ import fr.gouv.vitamui.commons.api.converter.StringToOffsetDateTimeConverter;
 public class MongoConfig {
 
     @Autowired
-    MongoDbFactory mongoDbFactory;
+    MongoDatabaseFactory mongoDbFactory;
 
     @Bean
     public MongoCustomConversions customConversions() {
@@ -63,7 +63,7 @@ public class MongoConfig {
     }
 
     @Bean
-    MongoTransactionManager transactionManager(final MongoDbFactory dbFactory) {
+    MongoTransactionManager transactionManager(final MongoDatabaseFactory dbFactory) {
         return new MongoTransactionManager(dbFactory);
     }
 
diff --git a/commons/commons-mongo/src/test/java/fr/gouv/vitamui/commons/mongo/config/TestMongoConfig.java b/commons/commons-mongo/src/test/java/fr/gouv/vitamui/commons/mongo/config/TestMongoConfig.java
index 96312c55aa70863ca81dd82546fe4d38ade7b3da..c8a2808aeee5adb7ece9b214f02778360e8f48b3 100644
--- a/commons/commons-mongo/src/test/java/fr/gouv/vitamui/commons/mongo/config/TestMongoConfig.java
+++ b/commons/commons-mongo/src/test/java/fr/gouv/vitamui/commons/mongo/config/TestMongoConfig.java
@@ -1,6 +1,5 @@
 package fr.gouv.vitamui.commons.mongo.config;
 
-import com.mongodb.MongoClient;
 import de.flapdoodle.embed.mongo.MongodExecutable;
 import de.flapdoodle.embed.mongo.MongodProcess;
 import de.flapdoodle.embed.mongo.MongodStarter;
@@ -8,20 +7,14 @@ import de.flapdoodle.embed.mongo.config.MongodConfigBuilder;
 import de.flapdoodle.embed.mongo.config.Net;
 import de.flapdoodle.embed.mongo.distribution.Version;
 import de.flapdoodle.embed.process.runtime.Network;
-import fr.gouv.vitamui.commons.api.converter.OffsetDateTimeToStringConverter;
-import fr.gouv.vitamui.commons.api.converter.StringToOffsetDateTimeConverter;
 import fr.gouv.vitamui.commons.mongo.repository.impl.VitamUIRepositoryImpl;
 import org.springframework.context.annotation.Configuration;
-import org.springframework.core.convert.converter.Converter;
-import org.springframework.data.convert.CustomConversions;
-import org.springframework.data.mongodb.config.AbstractMongoConfiguration;
-import org.springframework.data.mongodb.core.convert.MongoCustomConversions;
+import org.springframework.data.mongodb.config.AbstractMongoClientConfiguration;
 import org.springframework.data.mongodb.repository.config.EnableMongoRepositories;
 
 import javax.annotation.PostConstruct;
 import javax.annotation.PreDestroy;
-import java.util.ArrayList;
-import java.util.List;
+
 
 @Configuration
 @EnableMongoRepositories(basePackages = {
@@ -29,7 +22,7 @@ import java.util.List;
     "fr.gouv.vitamui.commons.mongo.repository"
 }, repositoryBaseClass = VitamUIRepositoryImpl.class)
 
-public class TestMongoConfig extends AbstractMongoConfiguration {
+public class TestMongoConfig extends AbstractMongoClientConfiguration {
 
     private static final MongodStarter starter = MongodStarter.getDefaultInstance();
 
@@ -66,22 +59,11 @@ public class TestMongoConfig extends AbstractMongoConfiguration {
         return MONGO_DB_NAME;
     }
 
-    @Override
-    public MongoClient mongoClient() {
-        return new MongoClient(MONGO_HOST, port);
-    }
-
     @Override
     protected String getMappingBasePackage() {
         return "fr.gouv.vitamui.commons.mongo";
     }
 
-    @Override
-    public CustomConversions customConversions() {
-        final List<Converter<?, ?>> converterList = new ArrayList<>();
-        converterList.add(new OffsetDateTimeToStringConverter());
-        converterList.add(new StringToOffsetDateTimeConverter());
-        return new MongoCustomConversions(converterList);
-    }
+
 
 }
diff --git a/integration-tests/pom.xml b/integration-tests/pom.xml
index 964fa5b30f30142310134cc6184d9a18e01847ce..e9587f8228c60d12ff94efcc2fa8254a8f981a46 100644
--- a/integration-tests/pom.xml
+++ b/integration-tests/pom.xml
@@ -155,8 +155,12 @@
 			<artifactId>serenity-cucumber5</artifactId>
 			<scope>test</scope>
 		</dependency>
+        <dependency>
+            <groupId>org.mongodb</groupId>
+            <artifactId>mongo-java-driver</artifactId>
+        </dependency>
 
-	</dependencies>
+    </dependencies>
 
 	<build>
 		<testResources>
diff --git a/pom.xml b/pom.xml
index 9476cba08d033c9c06687ca227e369f9e3347de1..5b3221b7d2a9cc78e1ae5d9633ab24e613319e9f 100644
--- a/pom.xml
+++ b/pom.xml
@@ -90,8 +90,8 @@
         <glassfish.javax.el.version>2.2.6</glassfish.javax.el.version>
         <gson.version>2.8.6</gson.version>
         <guava.version>29.0-jre</guava.version>
-        <http.client.version>4.5.12</http.client.version>
-        <http.core.version>4.4.13</http.core.version>
+        <http.client.version>4.5.13</http.client.version>
+        <http.core.version>4.4.14</http.core.version>
         <glassfish.jaxb.version>2.3.2</glassfish.jaxb.version>
         <jackson.version>2.11.0.rc1</jackson.version>
         <jaeger.tracing.version>3.2.2</jaeger.tracing.version>
@@ -113,7 +113,7 @@
         <jsonassert.version>1.5.0</jsonassert.version>
         <logback.version>1.2.3</logback.version>
         <lombok.version>1.18.12</lombok.version>
-        <micrometer.version>1.3.6</micrometer.version>
+        <micrometer.version>1.6.5</micrometer.version>
         <mapstruct.version>1.3.0.Final</mapstruct.version>
         <nio.multipart.parser.version>1.1.0</nio.multipart.parser.version>
         <pac4j.version>4.0.0</pac4j.version>
@@ -123,15 +123,15 @@
         <powermock.version>2.0.2</powermock.version>
         <selma.version>1.0</selma.version>
         <fop.version>2.4</fop.version>
-        <serenity.cucumber.version>2.2.2</serenity.cucumber.version>
+        <serenity.cucumber.version>2.2.6</serenity.cucumber.version>
         <serenity.maven.plugin>2.2.2</serenity.maven.plugin>
-        <serenity.spring.version>2.2.2</serenity.spring.version>
-        <serenity.version>2.2.2</serenity.version>
+        <serenity.spring.version>2.4.3</serenity.spring.version>
+        <serenity.version>2.4.3</serenity.version>
         <slf4j.version>1.7.30</slf4j.version>
-        <spring.boot.version>2.2.6.RELEASE</spring.boot.version>
-        <spring.version>5.2.5.RELEASE</spring.version>
-        <spring.cloud.consul.version>2.2.2.RELEASE</spring.cloud.consul.version>
-        <spring.security.version>5.3.1.RELEASE</spring.security.version>
+        <spring.boot.version>2.4.4</spring.boot.version>
+        <spring.version>5.3.5</spring.version>
+        <spring.cloud.consul.version>3.0.2</spring.cloud.consul.version>
+        <spring.security.version>5.4.5</spring.security.version>
         <swagger.version>3.0.0</swagger.version>
         <trang.version>20181222</trang.version>
         <vitam.version>3.0.1</vitam.version>
@@ -144,6 +144,8 @@
         <antisamy.version>1.5.8</antisamy.version>
         <json-sanitize.version>1.2.2</json-sanitize.version>
         <freemarker.upgraded.version>2.3.30</freemarker.upgraded.version>
+        <mongo.driver.version>3.11.0</mongo.driver.version>
+
 
         <!-- Web Pack -->
         <node.version>v14.15.1</node.version>
@@ -615,6 +617,13 @@
                 <version>${micrometer.version}</version>
             </dependency>
 
+            <!-- Mongo-Driver -->
+            <dependency>
+                <groupId>org.mongodb</groupId>
+                <artifactId>mongo-java-driver</artifactId>
+                <version>${mongo.driver.version}</version>
+            </dependency>
+
             <!-- VITAM -->
             <dependency>
                 <groupId>fr.gouv.vitam</groupId>
diff --git a/ui/ui-archive-search/pom.xml b/ui/ui-archive-search/pom.xml
index 94c3785da325f49cf59a420e818a0eaf6e0067de..7b18896e89db470481149bae77a0c7268e6f5c9e 100644
--- a/ui/ui-archive-search/pom.xml
+++ b/ui/ui-archive-search/pom.xml
@@ -141,10 +141,8 @@
             <scope>test</scope>
         </dependency>
         <dependency>
-            <groupId>org.springframework</groupId>
-            <artifactId>spring-test</artifactId>
-            <version>5.2.0.RELEASE</version>
-            <scope>test</scope>
+            <groupId>junit</groupId>
+            <artifactId>junit</artifactId>
         </dependency>
 
 
diff --git a/ui/ui-identity/pom.xml b/ui/ui-identity/pom.xml
index fb0d8ca95b79427e8d81a1c97a0b5153bb0c6fc2..0633df2b1fdf932a10139b2d014cc54b30fbfba9 100644
--- a/ui/ui-identity/pom.xml
+++ b/ui/ui-identity/pom.xml
@@ -93,6 +93,10 @@
 			<artifactId>spring-boot-devtools</artifactId>
 			<scope>provided</scope>
 		</dependency>
+		<dependency>
+			<groupId>org.springframework</groupId>
+			<artifactId>spring-context-support</artifactId>
+		</dependency>
         <dependency>
             <groupId>io.opentracing.contrib</groupId>
             <artifactId>opentracing-spring-jaeger-web-starter</artifactId>
@@ -153,7 +157,11 @@
 			<groupId>org.owasp.antisamy</groupId>
 			<artifactId>antisamy</artifactId>
 		</dependency>
-	</dependencies>
+        <dependency>
+            <groupId>junit</groupId>
+            <artifactId>junit</artifactId>
+        </dependency>
+    </dependencies>
 
 	<build>
 		<resources>
diff --git a/ui/ui-ingest/pom.xml b/ui/ui-ingest/pom.xml
index a2fc8e8f8ae3db996b8405c40b0239572fedafcf..6beac25cdc218d9239354881e46a85c35c283b5f 100644
--- a/ui/ui-ingest/pom.xml
+++ b/ui/ui-ingest/pom.xml
@@ -138,6 +138,10 @@
             <type>test-jar</type>
             <scope>test</scope>
         </dependency>
+        <dependency>
+            <groupId>junit</groupId>
+            <artifactId>junit</artifactId>
+        </dependency>
     </dependencies>
 
     <build>
diff --git a/ui/ui-portal/pom.xml b/ui/ui-portal/pom.xml
index 6a6c98d98cf2d95cf2aefbffdaf81a57ee952019..80d089c101cadb2d2a30da4c9dd2845376c9726f 100644
--- a/ui/ui-portal/pom.xml
+++ b/ui/ui-portal/pom.xml
@@ -148,6 +148,10 @@
 			<artifactId>commons-httpclient</artifactId>
 			<scope>test</scope>
 		</dependency>
+        <dependency>
+            <groupId>junit</groupId>
+            <artifactId>junit</artifactId>
+        </dependency>
     </dependencies>
 
     <build>
diff --git a/ui/ui-referential/pom.xml b/ui/ui-referential/pom.xml
index 3443c75cfedc4b7cc8f70e49c8ef3e8217ef5547..44705656bf4509a4ce727117775a9d2fa2533fcf 100644
--- a/ui/ui-referential/pom.xml
+++ b/ui/ui-referential/pom.xml
@@ -143,6 +143,10 @@
             <artifactId>commons-httpclient</artifactId>
             <scope>test</scope>
         </dependency>
+        <dependency>
+            <groupId>junit</groupId>
+            <artifactId>junit</artifactId>
+        </dependency>
     </dependencies>
 
     <build>