diff --git a/impl/core/src/main/java/io/serverlessworkflow/impl/auth/AuthProviderFactory.java b/impl/core/src/main/java/io/serverlessworkflow/impl/auth/AuthProviderFactory.java index 9a0c20b5e..6accc3360 100644 --- a/impl/core/src/main/java/io/serverlessworkflow/impl/auth/AuthProviderFactory.java +++ b/impl/core/src/main/java/io/serverlessworkflow/impl/auth/AuthProviderFactory.java @@ -18,6 +18,8 @@ import io.serverlessworkflow.api.types.AuthenticationPolicyUnion; import io.serverlessworkflow.api.types.EndpointConfiguration; import io.serverlessworkflow.api.types.ReferenceableAuthenticationPolicy; +import io.serverlessworkflow.api.types.Use; +import io.serverlessworkflow.api.types.UseAuthentications; import io.serverlessworkflow.api.types.Workflow; import io.serverlessworkflow.impl.WorkflowApplication; import io.serverlessworkflow.impl.WorkflowDefinition; @@ -54,10 +56,17 @@ public static Optional getAuth( private static Optional buildFromReference( WorkflowApplication app, Workflow workflow, String use, String method) { - return workflow.getUse().getAuthentications().getAdditionalProperties().entrySet().stream() - .filter(s -> s.getKey().equals(use)) - .findAny() - .flatMap(e -> buildFromPolicy(app, workflow, e.getValue(), method)); + Use useInfo = workflow.getUse(); + if (useInfo == null) { + return Optional.empty(); + } + UseAuthentications authInfo = useInfo.getAuthentications(); + return authInfo == null + ? Optional.empty() + : authInfo.getAdditionalProperties().entrySet().stream() + .filter(s -> s.getKey().equals(use)) + .findAny() + .flatMap(e -> buildFromPolicy(app, workflow, e.getValue(), method)); } private static Optional buildFromPolicy(