diff --git a/nflow-rest-api/src/main/java/io/nflow/rest/v1/WorkflowInstanceResource.java b/nflow-rest-api/src/main/java/io/nflow/rest/v1/WorkflowInstanceResource.java index e17914be9..defec3e26 100644 --- a/nflow-rest-api/src/main/java/io/nflow/rest/v1/WorkflowInstanceResource.java +++ b/nflow-rest-api/src/main/java/io/nflow/rest/v1/WorkflowInstanceResource.java @@ -8,6 +8,7 @@ import static java.util.stream.Collectors.toMap; import static java.util.stream.Collectors.toSet; import static javax.ws.rs.core.MediaType.APPLICATION_JSON; +import static javax.ws.rs.core.MediaType.WILDCARD; import static javax.ws.rs.core.Response.noContent; import static javax.ws.rs.core.Response.ok; import static javax.ws.rs.core.Response.status; @@ -37,11 +38,13 @@ import javax.ws.rs.Consumes; import javax.ws.rs.GET; import javax.ws.rs.NotFoundException; +import javax.ws.rs.OPTIONS; import javax.ws.rs.PUT; import javax.ws.rs.Path; import javax.ws.rs.PathParam; import javax.ws.rs.Produces; import javax.ws.rs.QueryParam; +import javax.ws.rs.core.MediaType; import javax.ws.rs.core.Response; import org.springframework.dao.EmptyResultDataAccessException; @@ -105,6 +108,14 @@ public WorkflowInstanceResource(WorkflowInstanceService workflowInstances, Creat this.workflowInstanceFactory = workflowInstanceFactory; } + @OPTIONS + @Path("{any: .*}") + @ApiOperation(value = "CORS preflight handling") + @Consumes(WILDCARD) + public Response corsPreflight() { + return Response.ok().build(); + } + @PUT @ApiOperation(value = "Submit new workflow instance") @ApiResponses(@ApiResponse(code = 201, message = "Workflow was created", response = CreateWorkflowInstanceResponse.class))