diff --git a/Jenkinsfile b/Jenkinsfile index 43c1f2e2719cbc20a8f39b38ff6db41216215cdb..8edba44acfde7d26cabd70747176e3e796c74be5 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -90,6 +90,9 @@ pipeline { } stage ('OWASP Dependency-Check Vulnerabilities') { + when { + branch 'master' + } steps { dependencyCheck additionalArguments: ''' -o "./" diff --git a/user-manager-server/src/main/java/de/itvsh/kop/user/UserIdProjection.java b/user-manager-server/src/main/java/de/itvsh/kop/user/UserIdProjection.java new file mode 100644 index 0000000000000000000000000000000000000000..330046cd2d79c284e4aed6083c93109e974fbbfa --- /dev/null +++ b/user-manager-server/src/main/java/de/itvsh/kop/user/UserIdProjection.java @@ -0,0 +1,44 @@ +/* + * Copyright (C) 2023 Das Land Schleswig-Holstein vertreten durch den + * Ministerpräsidenten des Landes Schleswig-Holstein + * Staatskanzlei + * Abteilung Digitalisierung und zentrales IT-Management der Landesregierung + * + * Lizenziert unter der EUPL, Version 1.2 oder - sobald + * diese von der Europäischen Kommission genehmigt wurden - + * Folgeversionen der EUPL ("Lizenz"); + * Sie dürfen dieses Werk ausschließlich gemäß + * dieser Lizenz nutzen. + * Eine Kopie der Lizenz finden Sie hier: + * + * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12 + * + * Sofern nicht durch anwendbare Rechtsvorschriften + * gefordert oder in schriftlicher Form vereinbart, wird + * die unter der Lizenz verbreitete Software "so wie sie + * ist", OHNE JEGLICHE GEWÄHRLEISTUNG ODER BEDINGUNGEN - + * ausdrücklich oder stillschweigend - verbreitet. + * Die sprachspezifischen Genehmigungen und Beschränkungen + * unter der Lizenz sind dem Lizenztext zu entnehmen. + */ +package de.itvsh.kop.user; + +import org.bson.codecs.pojo.annotations.BsonIgnore; +import org.bson.types.ObjectId; + +import io.quarkus.mongodb.panache.common.ProjectionFor; +import lombok.Getter; +import lombok.Setter; + +@ProjectionFor(User.class) +@Setter +@Getter +public class UserIdProjection { + + private ObjectId id; + + @BsonIgnore + public String getAsString() { + return id.toHexString(); + } +} diff --git a/user-manager-server/src/main/java/de/itvsh/kop/user/UserRepository.java b/user-manager-server/src/main/java/de/itvsh/kop/user/UserRepository.java index c0e79536cfc5d9d5bb633939b5b63da197e31e58..d0b96122b453c22113426c26127c77a09942bbae 100644 --- a/user-manager-server/src/main/java/de/itvsh/kop/user/UserRepository.java +++ b/user-manager-server/src/main/java/de/itvsh/kop/user/UserRepository.java @@ -35,10 +35,7 @@ import org.bson.types.ObjectId; import de.itvsh.kop.common.logging.KopLogging; import de.itvsh.kop.user.common.errorhandling.ResourceNotFoundException; import io.quarkus.mongodb.panache.PanacheMongoRepository; -import io.quarkus.mongodb.panache.common.ProjectionFor; import io.quarkus.panache.common.Parameters; -import lombok.Getter; -import lombok.Setter; @ApplicationScoped @KopLogging @@ -126,18 +123,11 @@ class UserRepository implements PanacheMongoRepository<User> { } public Stream<String> findAllDeletedUserIds() { - return find(DELETED_FIELD, true).project(UserIdProjection.class).stream().map(UserIdProjection::getId).map(ObjectId::toHexString); + return find(DELETED_FIELD, true).project(UserIdProjection.class).stream().map(UserIdProjection::getAsString); } public void deleteById(String id) { deleteById(new ObjectId(id)); } - @ProjectionFor(User.class) - @Setter - @Getter - public static class UserIdProjection { - private ObjectId id; - } - } \ No newline at end of file diff --git a/user-manager-server/src/main/java/de/itvsh/kop/user/common/NativeConfig.java b/user-manager-server/src/main/java/de/itvsh/kop/user/common/NativeConfig.java index 12c4482bdecd3db70c6b6885f9f1cab0b86a5084..17a03635d1025ef7e7dc73571adb308d29f47af3 100644 --- a/user-manager-server/src/main/java/de/itvsh/kop/user/common/NativeConfig.java +++ b/user-manager-server/src/main/java/de/itvsh/kop/user/common/NativeConfig.java @@ -42,7 +42,8 @@ import io.quarkus.runtime.annotations.RegisterForReflection; org.jboss.resteasy.plugins.providers.multipart.MultipartFormAnnotationWriter.class, org.jboss.resteasy.plugins.providers.multipart.MimeMultipartProvider.class, org.jboss.resteasy.plugins.providers.multipart.XopWithMultipartRelatedReader.class, - org.jboss.resteasy.plugins.providers.multipart.XopWithMultipartRelatedWriter.class + org.jboss.resteasy.plugins.providers.multipart.XopWithMultipartRelatedWriter.class, + de.itvsh.kop.user.UserIdProjection.class }) public class NativeConfig { }