From 0bead0663c9f97adf37515a87a57f1f715603487 Mon Sep 17 00:00:00 2001 From: Thomas <> Date: Mon, 27 Jan 2025 16:10:45 +0100 Subject: feat(core): add HTTP status-code as a property in central error-handling configuration --- .../java/at/gv/egiz/eaaf/core/impl/data/ErrorConfig.java | 6 ++++++ .../core/impl/idp/auth/services/DefaultErrorService.java | 5 +++++ .../egiz/eaaf/core/impl/idp/auth/services/IErrorService.java | 12 ++++++++++++ .../eaaf/core/impl/idp/auth/services/TicketErrorService.java | 5 +++++ 4 files changed, 28 insertions(+) (limited to 'eaaf_core/src/main/java') diff --git a/eaaf_core/src/main/java/at/gv/egiz/eaaf/core/impl/data/ErrorConfig.java b/eaaf_core/src/main/java/at/gv/egiz/eaaf/core/impl/data/ErrorConfig.java index 5f1d0976..e430999c 100644 --- a/eaaf_core/src/main/java/at/gv/egiz/eaaf/core/impl/data/ErrorConfig.java +++ b/eaaf_core/src/main/java/at/gv/egiz/eaaf/core/impl/data/ErrorConfig.java @@ -53,6 +53,12 @@ public class ErrorConfig { @JsonSetter(nulls = Nulls.SKIP) private Boolean writeThrowable = true; + @Getter + @Setter + @Builder.Default + @JsonSetter(nulls = Nulls.SKIP) + private int httpStatusCode = 200; + /** * Get type of error-handling flow. * diff --git a/eaaf_core/src/main/java/at/gv/egiz/eaaf/core/impl/idp/auth/services/DefaultErrorService.java b/eaaf_core/src/main/java/at/gv/egiz/eaaf/core/impl/idp/auth/services/DefaultErrorService.java index e8e22b8f..d0957f42 100644 --- a/eaaf_core/src/main/java/at/gv/egiz/eaaf/core/impl/idp/auth/services/DefaultErrorService.java +++ b/eaaf_core/src/main/java/at/gv/egiz/eaaf/core/impl/idp/auth/services/DefaultErrorService.java @@ -108,6 +108,10 @@ public class DefaultErrorService implements IErrorService { @Builder.Default private boolean writeThrowable = true; + @Getter + @Builder.Default + private int httpStatusCode = 200; + @Override public Map getAdditionalGuiModelElements() { return Collections.emptyMap(); @@ -118,5 +122,6 @@ public class DefaultErrorService implements IErrorService { return MessageFormat.format(TECH_LOG_MSG, internalErrorCode, throwable.getMessage()); } + } } diff --git a/eaaf_core/src/main/java/at/gv/egiz/eaaf/core/impl/idp/auth/services/IErrorService.java b/eaaf_core/src/main/java/at/gv/egiz/eaaf/core/impl/idp/auth/services/IErrorService.java index 657ebb4d..407bd1f2 100644 --- a/eaaf_core/src/main/java/at/gv/egiz/eaaf/core/impl/idp/auth/services/IErrorService.java +++ b/eaaf_core/src/main/java/at/gv/egiz/eaaf/core/impl/idp/auth/services/IErrorService.java @@ -163,6 +163,18 @@ public interface IErrorService { */ boolean isWriteThrowable(); + /** + * Get HTTP status-code that should be used for that error. + * + *

+ * Status-code 200 is used by default, because error will be rendered as HTML. + *

+ * + * @return HTTP status-code + * + */ + int getHttpStatusCode(); + /** * Get the log-level for this internal errorId. * diff --git a/eaaf_core/src/main/java/at/gv/egiz/eaaf/core/impl/idp/auth/services/TicketErrorService.java b/eaaf_core/src/main/java/at/gv/egiz/eaaf/core/impl/idp/auth/services/TicketErrorService.java index 8f32dcb0..a256b493 100644 --- a/eaaf_core/src/main/java/at/gv/egiz/eaaf/core/impl/idp/auth/services/TicketErrorService.java +++ b/eaaf_core/src/main/java/at/gv/egiz/eaaf/core/impl/idp/auth/services/TicketErrorService.java @@ -86,6 +86,7 @@ public abstract class TicketErrorService implements IErrorService { return HandleData.builder() .throwable(throwable) .writeThrowable(errorFlowConfig.getWriteThrowable()) + .httpStatusCode(errorFlowConfig.getHttpStatusCode()) .internalErrorCode(internalErrorId) .actionType(errorHandlingFlow) .logLevel(LogLevel.fromString(errorFlowConfig.getLogLevel())) @@ -265,6 +266,10 @@ public abstract class TicketErrorService implements IErrorService { @Builder.Default private boolean writeThrowable = true; + @Getter + @Builder.Default + private int httpStatusCode = 200; + @Getter private Map additionalGuiModelElements; -- cgit v1.2.3