Cross-origin resource sharing
跨源资源共享 (CORS) 是一种基于 HTTP 标头的机制,允许服务器指示除其自身之外的任何来源,浏览器应允许从中加载资源。 这些来源由单个域名、方案和端口组成。有关完整的来源定义,请参见 Web Origin Concept 页面。
CORS filter
Quarkus 提供了一个 CORS 过滤器,它实现了 jakarta.servlet.Filter
接口并拦截所有传入的 HTTP 请求。可以在 Quarkus 配置文件 src/main/resources/application.properties
中启用它:
quarkus.http.cors=true
当该过滤器被启用并识别一个 HTTP 请求为跨来源时,它将强制执行 CORS 策略。它还将在将请求转发到其预期目的地(如 servlet、Jakarta REST 资源或其他端点)之前,添加使用以下属性配置的标头。
Unresolved include directive in modules/ROOT/pages/security-cors.adoc - include::../../../target/quarkus-generated-doc/config/quarkus-vertx-http_quarkus.http.cors.adoc[]
-
一个包含定义允许的原点的正则表达式的完全 CORS 过滤器配置示例
quarkus.http.cors=true quarkus.http.cors.origins=http://foo.com,http://www.bar.io,/https://([a-z0-9\\-_]+)\\\\.app\\\\.mydomain\\\\.com/ quarkus.http.cors.methods=GET,PUT,POST quarkus.http.cors.headers=X-Custom quarkus.http.cors.exposed-headers=Content-Disposition quarkus.http.cors.access-control-max-age=24H quarkus.http.cors.access-control-allow-credentials=true
/https://([a-z0-9\\-_]+)\\\\.app\\\\.mydomain\\\\.com/
被视为正则表达式,因为它周围有正斜杠字符。
如果你在 |