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.java20
1 files changed, 9 insertions, 11 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 81398da..45a4000 100644
--- a/src/main/java/at/gv/egiz/moazs/backend/MsgResponseBackend.java
+++ b/src/main/java/at/gv/egiz/moazs/backend/MsgResponseBackend.java
@@ -35,6 +35,7 @@ import org.springframework.core.task.TaskExecutor;
import org.springframework.stereotype.Component;
import java.util.Map;
+import java.util.concurrent.CompletableFuture;
import java.util.function.Consumer;
import java.util.function.Supplier;
@@ -49,7 +50,7 @@ import static java.util.concurrent.CompletableFuture.supplyAsync;
*
*/
@Component
-public class MsgResponseBackend implements Consumer<String> {
+public class MsgResponseBackend {
private static final Logger log = LoggerFactory.getLogger(MsgService.class);
@@ -92,15 +93,10 @@ public class MsgResponseBackend implements Consumer<String> {
*
* @param responseID refers to MsgResponse Object.
*/
- @Override
- public void accept(String responseID) {
+ public CompletableFuture<Void> accept(String responseID) {
log.info("Backend accepts MsgResponse with responseID={}.", responseID);
- supplyAsync(() -> verifySignature(responseID), taskExecutor)
- .thenAcceptAsync(msgResponse -> applySinks(msgResponse), taskExecutor)
- .exceptionally(ex -> {
- log.error(ex.getMessage(), ex);
- return null;
- });
+ return supplyAsync(() -> verifySignature(responseID), taskExecutor)
+ .thenCompose(msgResponse -> applySinks(msgResponse));
}
private MsgResponse verifySignature(String responseID) {
@@ -117,16 +113,18 @@ public class MsgResponseBackend implements Consumer<String> {
signatureVerifier.accept(binaryResponse);
return response;
+
} catch (MoaZSException ex) {
log.error(ex.getMessage(), ex);
var text = format(MOASP_SIGNATURE_INVALID_ERROR_MSG, response.getAppDeliveryID());
var code = ERROR_MOASP_SIGNATURE_INVALID;
return response.generateError(text, code);
+
}
}
- private void applySinks(MsgResponse msgResponse) {
+ private CompletableFuture<Void> applySinks(MsgResponse msgResponse) {
var appDeliveryID = msgResponse.getAppDeliveryID();
var config = repository
@@ -135,7 +133,7 @@ public class MsgResponseBackend implements Consumer<String> {
.getConfig();
var sinkParams = config.getMsgResponseSinks();
- hub.applySinks(msgResponse, sinkParams);
+ return hub.applySinks(msgResponse, sinkParams);
}
private Supplier<DeliveryRequestType> supplyRequestWithDefaultConfig(String appDeliveryID) {