diff --git a/token-checker-server/src/main/java/de/ozgcloud/token/common/errorhandling/TokenVerificationException.java b/token-checker-server/src/main/java/de/ozgcloud/token/common/errorhandling/TokenVerificationException.java index 63cd4b78d955e9b1725e14bca76087242bc40718..c1efb9dceb4e20a8b0faec2f7ce71fdc6e308773 100644 --- a/token-checker-server/src/main/java/de/ozgcloud/token/common/errorhandling/TokenVerificationException.java +++ b/token-checker-server/src/main/java/de/ozgcloud/token/common/errorhandling/TokenVerificationException.java @@ -20,18 +20,31 @@ package de.ozgcloud.token.common.errorhandling; +import java.util.Collections; +import java.util.List; +import java.util.Objects; + import de.ozgcloud.common.errorhandling.TechnicalException; import lombok.Getter; @Getter public class TokenVerificationException extends TechnicalException { + private final List<ValidationError> validationErrors; + public TokenVerificationException(String msg) { super(msg); + this.validationErrors = Collections.singletonList(ValidationError.builder().message(msg).build()); + } + + public TokenVerificationException(String msg, List<ValidationError> validationErrors) { + super(msg); + this.validationErrors = Objects.isNull(validationErrors) ? Collections.emptyList() : Collections.unmodifiableList(validationErrors); } public TokenVerificationException(String msg, Throwable exception) { super(msg, exception); + this.validationErrors = Collections.singletonList(ValidationError.builder().message(msg).build()); } @Override diff --git a/token-checker-server/src/main/java/de/ozgcloud/token/common/errorhandling/ValidationError.java b/token-checker-server/src/main/java/de/ozgcloud/token/common/errorhandling/ValidationError.java new file mode 100644 index 0000000000000000000000000000000000000000..c015d5a49646869ed7f03d2896747618d66183b5 --- /dev/null +++ b/token-checker-server/src/main/java/de/ozgcloud/token/common/errorhandling/ValidationError.java @@ -0,0 +1,35 @@ +/* + * Copyright (C) 2024 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.ozgcloud.token.common.errorhandling; + +import lombok.Builder; +import lombok.Getter; + +@Builder +@Getter +public class ValidationError { + + private final String message; + private final Throwable cause; +}