Как исправить не удалось выполнить ОПЦИИ в реактивной конечной точке quarkus?

Я разрабатываю API с использованием Quarkus 0.24.0 и следующих расширений: [cdi, reactive-pg-client, rest-client, 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? Есть ли способ глобально обрабатывать запросы OPTIONS?


person Lucas Declercq    schedule 15.10.2019    source источник


Ответы (1)


Похоже, это проблема CORS. Вы пробовали это?

quarkus.http.cors = true
person Sousadax    schedule 15.10.2019
comment
Да, это ничего не меняет. - person Lucas Declercq; 15.10.2019