From 5c4252227459312b212fc17908db2683ee2a92ec Mon Sep 17 00:00:00 2001
From: Evgeny Bardin <evgeny.bardin@external.mgm-cp.com>
Date: Fri, 20 Dec 2024 12:17:43 +0100
Subject: [PATCH] OZG-7092 extend validation exception

---
 .../TokenVerificationException.java           | 13 +++++++
 .../common/errorhandling/ValidationError.java | 35 +++++++++++++++++++
 2 files changed, 48 insertions(+)
 create mode 100644 token-checker-server/src/main/java/de/ozgcloud/token/common/errorhandling/ValidationError.java

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 63cd4b7..c1efb9d 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 0000000..c015d5a
--- /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;
+}
-- 
GitLab