aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/at/gv/egiz/moazs/backend/MsgResponseBackend.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/at/gv/egiz/moazs/backend/MsgResponseBackend.java')
-rw-r--r--src/main/java/at/gv/egiz/moazs/backend/MsgResponseBackend.java28
1 files changed, 15 insertions, 13 deletions
diff --git a/src/main/java/at/gv/egiz/moazs/backend/MsgResponseBackend.java b/src/main/java/at/gv/egiz/moazs/backend/MsgResponseBackend.java
index 9e3cd36..8649a32 100644
--- a/src/main/java/at/gv/egiz/moazs/backend/MsgResponseBackend.java
+++ b/src/main/java/at/gv/egiz/moazs/backend/MsgResponseBackend.java
@@ -12,7 +12,7 @@ import org.springframework.stereotype.Component;
import java.util.function.Consumer;
-import static at.gv.egiz.moazs.MoaZSException.moaZSExceptionBuilder;
+import static at.gv.egiz.moazs.MoaZSException.*;
import static java.lang.String.format;
import static java.util.concurrent.CompletableFuture.supplyAsync;
@@ -23,6 +23,8 @@ public class MsgResponseBackend implements Consumer<String> {
public static final String MOASP_SIGNATURE_INVALID_ERROR_MSG = "Signature of Msg Response " +
"with AppDeliveryID=%s is not valid.";
+ public static final String BINARY_RESPONSE_MISSING_ERROR_MSG = "Binary Response is not in repository.";
+ public static final String RESPONSE_MISSING_ERROR_MSG = "Response with ResponseID=%s is not in repository.";
private final DeliveryRepository repository;
private final Consumer<byte[]> signatureVerifier;
@@ -58,28 +60,28 @@ public class MsgResponseBackend implements Consumer<String> {
public void accept(String responseID) {
supplyAsync(() -> verify(responseID))
- .thenAcceptAsync(msgResponse -> applySinks(msgResponse));
+ .thenAcceptAsync(msgResponse -> applySinks(msgResponse))
+ .exceptionally(ex -> {
+ log.error(ex.getMessage(), ex);
+ return null;
+ });
}
private MsgResponse verify(String responseID) {
- var response = repository.retrieveResponse(responseID).get();
- var builder = moaZSExceptionBuilder().withAllParametersInAnswer(response.getAnswer());
-
- var binaryResponse = repository.retrieveBinaryResponse(responseID).get();
+ var response = repository.retrieveResponse(responseID).orElseThrow(
+ ()-> moaZSException(format(RESPONSE_MISSING_ERROR_MSG, responseID)));
try {
+ var binaryResponse = repository.retrieveBinaryResponse(responseID).orElseThrow(
+ () -> moaZSException(BINARY_RESPONSE_MISSING_ERROR_MSG, MoaZSException.ERROR_MZS_BINARY_RESPONSE_MISSING));
signatureVerifier.accept(binaryResponse);
return response;
} catch (MoaZSException ex) {
log.error(ex.getMessage(), ex);
- var wrappingEx = builder
- .withMessage(format(MOASP_SIGNATURE_INVALID_ERROR_MSG, response.getAppDeliveryID()))
- .withErrorCode(MoaZSException.ERROR_MOASP_SIGNATURE_INVALID)
- .withCause(ex)
- .build();
-
- return response.generateError(wrappingEx);
+ var text = format(MOASP_SIGNATURE_INVALID_ERROR_MSG, response.getAppDeliveryID());
+ var code = ERROR_MOASP_SIGNATURE_INVALID;
+ return response.generateError(text, code);
}
}