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