diff --git a/impl/http/src/main/java/io/serverlessworkflow/impl/executors/http/auth/JaxRSAccessTokenProvider.java b/impl/http/src/main/java/io/serverlessworkflow/impl/executors/http/auth/JaxRSAccessTokenProvider.java index 330ebb23d..f67c08fc0 100644 --- a/impl/http/src/main/java/io/serverlessworkflow/impl/executors/http/auth/JaxRSAccessTokenProvider.java +++ b/impl/http/src/main/java/io/serverlessworkflow/impl/executors/http/auth/JaxRSAccessTokenProvider.java @@ -57,18 +57,22 @@ class JaxRSAccessTokenProvider implements AccessTokenProvider { public CompletableFuture validateAndGet( WorkflowContext workflow, TaskContext context, WorkflowModel model) { - Map token = invoke(workflow, context, model); - JWT jwt = jwtConverter.fromToken((String) token.get("access_token")); - if (issuers != null && !issuers.isEmpty()) { - jwt.issuer() - .ifPresent( - issuer -> { - if (!issuers.contains(issuer)) { - throw new IllegalStateException("Token issuer is not valid: " + issuer); - } - }); - } - return CompletableFuture.completedFuture(jwt); + return CompletableFuture.supplyAsync( + () -> { + Map token = invoke(workflow, context, model); + JWT jwt = jwtConverter.fromToken((String) token.get("access_token")); + if (issuers != null && !issuers.isEmpty()) { + jwt.issuer() + .ifPresent( + issuer -> { + if (!issuers.contains(issuer)) { + throw new IllegalStateException("Token issuer is not valid: " + issuer); + } + }); + } + return jwt; + }, + workflow.definition().application().executorService()); } private Map invoke(