You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Quarkus非生产环境CORS配置失效,Origin验证失败求助

Quarkus非生产环境CORS配置失败排查求助

环境版本

quarkus-bom 3.13.2

application.properties配置

%nonprod.quarkus.http.cors=true
%nonprod.quarkus.http.cors.access-control-allow-credentials=true
%nonprod.quarkus.http.cors.methods=GET,POST,OPTIONS
%nonprod.quarkus.http.cors.origins=http://localhost:8080
%nonprod.quarkus.http.cors.headers=authorization,content-type,origin,accept,x-requested-with,access-control-allow-origin,access-control-request-method

测试命令

curl "$API_SERVICE_HOST/api/portal/resources" -H "Origin: http://localhost:8080" -H "Access-Control-Request-Method: GET" -X OPTIONS -i

错误现象

请求返回HTTP 403响应,Quarkus日志输出:

{
    "@timestamp": "2024-09-09T14:40:45.482843394Z",
    "logger_name": "io.quarkus.vertx.http.runtime.cors.CORSFilter",
    "level": "DEBUG",
    "message": "Invalid origin http://localhost:8080",
    "thread_name": "vert.x-eventloop-thread-1",
    "application": "msg-dex-api"
}

Keycloak授权配置情况

服务启用了Keycloak授权,但已禁用OPTIONS方法的策略强制:

%nonprod.quarkus.keycloak.policy-enforcer.paths.4.path=/api/*
%nonprod.quarkus.keycloak.policy-enforcer.paths.4.methods.1.method=OPTIONS
%nonprod.quarkus.keycloak.policy-enforcer.paths.4.methods.1.scopes=ANY
%nonprod.quarkus.keycloak.policy-enforcer.paths.4.methods.1.scopes-enforcement-mode=DISABLED
%nonprod.quarkus.keycloak.policy-enforcer.paths.4.enforcement-mode=DISABLED

不携带Origin头时请求返回200,说明授权服务未干扰OPTIONS请求。

已尝试操作

  • 修改cors.origins配置为*或/.*/,问题依旧
  • 新增日志显示同源检查失败,请求URI为https://msg-dex.myhost.com/api/portal/resources,Origin为https://localhost:8080

求助排查配置或请求中的问题。


内容的提问来源于stack exchange,提问作者Anthony Heaney

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.18 16:47:38