Я разрабатываю API с использованием Quarkus 0.24.0 и следующих расширений: [cdi, реактивный-pg-клиент, rest-клиент, resteasy, resteasy-jackson, security, vertx]
Вот один из нихмаршрута, который я реализовал:
@Path("/users")
@Produces(MediaType.APPLICATION_JSON)
@Consumes(MediaType.APPLICATION_JSON)
public class UsersResource {
@Inject
KeycloakUsersService keycloakUsersService;
@GET
@RolesAllowed({"ADMIN"})
public CompletionStage<Response> getUsers(@QueryParam("search") String searchQuery) {
return keycloakUsersService.getUsers(searchQuery)
.thenApply(Response::ok)
.thenApply(Response.ResponseBuilder::build)
.exceptionally(throwable -> {
logger.error("Wut ?" + throwable.getMessage());
return Response.status(500).entity("Something wrong happened while retrieving users from Keycloak : " + throwable.getCause()).build();
});
}
}
Все шло гладко, пока я не начал использовать свой API с помощью Angular. Перед вызовом API есть запрос OPTIONS, который не выполняется:
Failed executing OPTIONS /users: org.jboss.resteasy.spi.DefaultOptionsMethodException: RESTEASY003655: No resource method found for options, return OK with Allow header
Я попытался добавить следующее в application.properties, но безуспешно:
quarkus.http.cors.origins=http://localhost:4200,http://localhost:8080
quarkus.http.cors.headers=accept, authorization, content-type, x-requested-with
quarkus.http.cors.methods=GET, OPTIONS, POST
Как я могуисправить запрос ОПЦИИ? Есть ли способ для глобальной обработки запросов OPTIONS?