diff --git a/smp-server-library/src/main/java/eu/europa/ec/edelivery/smp/conversion/DBUserToUserROConverter.java b/smp-server-library/src/main/java/eu/europa/ec/edelivery/smp/conversion/DBUserToUserROConverter.java index 030d291529fce5a8ac7cb66297585c40bf31ad42..51e549974fc63a6f362f8fec45d53e05571c68b6 100644 --- a/smp-server-library/src/main/java/eu/europa/ec/edelivery/smp/conversion/DBUserToUserROConverter.java +++ b/smp-server-library/src/main/java/eu/europa/ec/edelivery/smp/conversion/DBUserToUserROConverter.java @@ -3,7 +3,7 @@ package eu.europa.ec.edelivery.smp.conversion; import eu.europa.ec.edelivery.smp.data.model.DBUser; import eu.europa.ec.edelivery.smp.data.ui.CertificateRO; import eu.europa.ec.edelivery.smp.data.ui.UserRO; -import org.apache.commons.lang.StringUtils; +import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.core.convert.ConversionService; import org.springframework.core.convert.converter.Converter; @@ -11,6 +11,7 @@ import org.springframework.stereotype.Component; import java.time.LocalDateTime; + /** * @author Sebastian-Ion TINCU */ @@ -33,6 +34,12 @@ public class DBUserToUserROConverter implements Converter<DBUser, UserRO> { if (source.getCertificate() != null) { CertificateRO certificateRO = conversionService.convert(source.getCertificate(), CertificateRO.class); target.setCertificate(certificateRO); + if(StringUtils.equalsIgnoreCase(source.getCertificate().getCertificateId(), source.getUsername())) { + // clear username if is the same as certificate id. + // username as cert id is set to database to force unique users + // and to fix issue with mysql - where null value is also unique... + target.setUsername(null); + } } return target; } diff --git a/smp-server-library/src/main/java/eu/europa/ec/edelivery/smp/conversion/UserROToDBUserConverter.java b/smp-server-library/src/main/java/eu/europa/ec/edelivery/smp/conversion/UserROToDBUserConverter.java index ebd07559d26e02b9a77dcd5dcfac24dca75bd79e..325b6f585dfefa40a26a3a8c7a17f80d4027a163 100644 --- a/smp-server-library/src/main/java/eu/europa/ec/edelivery/smp/conversion/UserROToDBUserConverter.java +++ b/smp-server-library/src/main/java/eu/europa/ec/edelivery/smp/conversion/UserROToDBUserConverter.java @@ -3,11 +3,14 @@ package eu.europa.ec.edelivery.smp.conversion; import eu.europa.ec.edelivery.smp.data.model.DBCertificate; import eu.europa.ec.edelivery.smp.data.model.DBUser; import eu.europa.ec.edelivery.smp.data.ui.UserRO; +import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.core.convert.ConversionService; import org.springframework.core.convert.converter.Converter; import org.springframework.stereotype.Component; +import java.util.Objects; + /** * @author Sebastian-Ion TINCU */ @@ -29,6 +32,13 @@ public class UserROToDBUserConverter implements Converter<UserRO, DBUser> { if (source.getCertificate() != null) { DBCertificate certData = conversionService.convert(source.getCertificate(), DBCertificate.class); target.setCertificate(certData); + + if(StringUtils.isBlank(source.getUsername())) { + // set username with certificate id. + // username as cert id is set to database to force unique users + // and to fix issue with mysql - where null value is also unique... + target.setUsername(certData.getCertificateId()); + } } return target; }