diff --git a/smp-parent-pom/pom.xml b/smp-parent-pom/pom.xml
index b3132cfb3b106f4b4d087cb8e74348fc0106093f..aea843ba5ce770d60002e638d433aa79ed6f7161 100644
--- a/smp-parent-pom/pom.xml
+++ b/smp-parent-pom/pom.xml
@@ -51,17 +51,16 @@
 
         <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
         <slf4j.version>1.7.25</slf4j.version>
-        <spring.version>5.1.2.RELEASE</spring.version>
-        <spring.security.version>5.1.0.RELEASE</spring.security.version>
+        <spring.version>5.1.8.RELEASE</spring.version>
+        <spring.security.version>5.1.5.RELEASE</spring.security.version>
         <spring.boot.version>2.0.5.RELEASE</spring.boot.version>
         <!-- bdmsl.client.version>3.0.0</bdmsl.client.version -->
         <bdmsl.api.version>3.1.3</bdmsl.api.version>
         <cxf.version>3.2.7</cxf.version>
         <cxf-xjc-runtime.version>3.2.0</cxf-xjc-runtime.version>
         <build.helper.maven.version>1.9.1</build.helper.maven.version>
-        <ehcache.version>2.10.0</ehcache.version>
+        <ehcache.version>2.10.6</ehcache.version>
         <spring-modules-jakarta-commons.version>0.8</spring-modules-jakarta-commons.version>
-        <liquibase.version>3.3.5</liquibase.version>
         <bouncycastle.version>1.52</bouncycastle.version>
         <dnsjava.version>2.1.7</dnsjava.version>
         <h2.version>1.4.187</h2.version>
@@ -71,12 +70,12 @@
         <junit.version>4.12</junit.version>
         <mockito.version>2.23.4</mockito.version>
         <log4j.version>1.2.17</log4j.version>
-        <guava.version>18.0</guava.version>
+        <guava.version>24.1.1-jre</guava.version>
         <orika.version>1.4.6</orika.version>
         <aspectj.version>1.8.6</aspectj.version>
         <jaxb.version>2.2.11</jaxb.version>
         <jaxb2-basics.version>1.11.1</jaxb2-basics.version>
-        <javax.annotation.version>1.2-b02</javax.annotation.version>
+        <javax.annotation.version>1.3.2</javax.annotation.version>
         <!--https://hibernate.atlassian.net/browse/HHH-12436 Bug in OneToOne mapping
         (problem in test case:  ServiceGroupDaoMetadataIntegrationTest.addNewServiceMetadata) use  5.2.13.Final -->
         <!-- hibernate.version>5.3.7.Final</hibernate.version-->
@@ -87,12 +86,10 @@
         <soapui.plugin.version>5.1.2</soapui.plugin.version>
         <commons-net.version>1.4.1</commons-net.version>
         <ant-commons-net.version>1.6.5</ant-commons-net.version>
-        <!-- jetty.version>8.1.15.v20140411</jetty.version -->
         <servlet-api.version>3.0.1</servlet-api.version>
         <metro.version>2.2.1-1</metro.version>
         <commons-io.version>2.4</commons-io.version>
         <junitparams.version>1.0.5</junitparams.version>
-        <!-- lombok.version>1.16.16</lombok.version -->
         <xmlunit.version>2.5.1</xmlunit.version>
         <hamcrest.version>2.0.0.0</hamcrest.version>
         <jackson.version>2.9.7</jackson.version>
@@ -465,11 +462,6 @@
                 <artifactId>spring-modules-jakarta-commons</artifactId>
                 <version>${spring-modules-jakarta-commons.version}</version>
             </dependency>
-            <dependency>
-                <groupId>org.liquibase</groupId>
-                <artifactId>liquibase-maven-plugin</artifactId>
-                <version>${liquibase.version}</version>
-            </dependency>
             <dependency>
                 <groupId>org.bouncycastle</groupId>
                 <artifactId>bcprov-jdk15on</artifactId>
diff --git a/smp-server-library/src/main/java/eu/europa/ec/edelivery/smp/data/dao/UserDao.java b/smp-server-library/src/main/java/eu/europa/ec/edelivery/smp/data/dao/UserDao.java
index 49e0b2860da5cd7f19da8a99b9dfcf31e4e8a027..eb660472744e0c86c8f0d7898e366f1bdd6fea3a 100644
--- a/smp-server-library/src/main/java/eu/europa/ec/edelivery/smp/data/dao/UserDao.java
+++ b/smp-server-library/src/main/java/eu/europa/ec/edelivery/smp/data/dao/UserDao.java
@@ -51,6 +51,12 @@ public class UserDao extends BaseDao<DBUser> {
         if (!StringUtils.isBlank(user.getUsername())){
             user.setUsername(user.getUsername().toLowerCase());
         }
+        // if certificate id is null then do not store certificate object to database
+        // because of unique constraint  and null value in mysql is also subject to the constraint!
+        if (user.getCertificate() != null &&  StringUtils.isBlank(user.getCertificate().getCertificateId() )) {
+            user.setCertificate(null);
+        }
+
         super.persistFlushDetach(user);
     }
 
diff --git a/smp-server-library/src/test/java/eu/europa/ec/edelivery/smp/data/dao/UserDaoIntegrationTest.java b/smp-server-library/src/test/java/eu/europa/ec/edelivery/smp/data/dao/UserDaoIntegrationTest.java
index 633bd4e738b4a8649754dfaebbf79374b11f53d2..b0be8a2f7a93724e96afd97988ed6847fccb201a 100644
--- a/smp-server-library/src/test/java/eu/europa/ec/edelivery/smp/data/dao/UserDaoIntegrationTest.java
+++ b/smp-server-library/src/test/java/eu/europa/ec/edelivery/smp/data/dao/UserDaoIntegrationTest.java
@@ -70,6 +70,26 @@ public class UserDaoIntegrationTest extends AbstractBaseDao {
         assertEquals(u.getUsername(), ou.get().getUsername());
     }
 
+
+    @Test
+    public void persistUserWithUsernameAndEmptyCertificateID() {
+        // if certificate id is null then do not store certificate object to database
+        // because of unique constraint  and null value in mysql is also subject to the constraint!
+        DBUser u = TestDBUtils.createDBUser(TestConstants.USERNAME_1, null);
+        assertNotNull(u.getCertificate());
+        assertNull(u.getCertificate().getCertificateId());
+
+        // execute
+        testInstance.persistFlushDetach(u);
+
+        //test
+        Optional<DBUser> ou = testInstance.findUserByUsername(TestConstants.USERNAME_1);
+        assertTrue(u != ou.get());
+        assertEquals(u, ou.get());
+        assertEquals(u.getUsername(), ou.get().getUsername());
+        assertNull(u.getCertificate());
+    }
+
     @Test
     public void persistUserWithCertificate() {
         // set