第1章 Cross-Origin Resource Sharing (CORS)


Quarkus で CORS を有効にして設定し、許可されるオリジン、メソッド、ヘッダーを指定して、ブラウザーがクロスオリジンリクエストを安全に処理できるようにします。

クロスオリジンリソース共有 (CORS) は、HTTP ヘッダーを使用して、外部オリジンからのリソースに対するブラウザーのリクエストを安全に管理します。許可されたオリジン、メソッド、ヘッダーを指定することにより、Quarkus サーバーは CORS フィルターを使用して、制御されたアクセスを維持しながらブラウザーがドメイン間でリソースを要求できるようにすることができます。このメカニズムにより、セキュリティーが強化され、正当なクロスオリジンリクエストがサポートされます。オリジン定義の詳細は、Web オリジンコンセプト を参照してください。

1.1. CORS フィルターを有効にする

アプリケーションで CORS ポリシーを適用するには、src/main/resources/application.properties ファイルに次の行を追加して、Quarkus CORS フィルターを有効にします。

quarkus.http.cors.enabled=true
Copy to Clipboard Toggle word wrap

フィルターは、すべての受信 HTTP リクエストをインターセプトしてクロスオリジンリクエストを識別し、設定されたポリシーを適用します。次に、フィルターは HTTP 応答に CORS ヘッダーを追加し、許可されたオリジンとアクセスパラメーターをブラウザーに通知します。プリフライトリクエストの場合、フィルターは HTTP 応答を直ちに返します。通常の CORS リクエストの場合、リクエストが設定されたポリシーに違反すると、フィルターは HTTP 403 ステータスでアクセスを拒否します。それ以外の場合、ポリシーで許可されていれば、フィルターはリクエストを宛先に転送します。

詳細な設定オプションは、次の設定プロパティーセクションを参照してください。

🔒 ビルド時に固定: 設定プロパティーはビルド時に固定されます。他のすべての設定プロパティーは実行時にオーバーライドできます。

Expand

設定プロパティー

デフォルト

quarkus.http.cors.origins

CORS に許可されたオリジン。

有効な URL のコンマ区切りリスト (例 : http://www.quarkus.io,http://localhost:3000)。スラッシュで囲まれた URL は正規表現として解釈されます。

環境変数: QUARKUS_HTTP_CORS_ORIGINS

list of string

 

quarkus.http.cors.methods

CORS リクエストに許可される HTTP メソッド。

GET、PUT、POST などの有効な HTTP メソッドのコンマ区切りリスト。設定されていない場合、フィルターはデフォルトですべての HTTP メソッドを許可します。

デフォルト: 任意の HTTP リクエストメソッドが許可されます。

環境変数: QUARKUS_HTTP_CORS_METHODS

list of string

 

quarkus.http.cors.headers

CORS リクエストに許可される HTTP ヘッダー。

有効なヘッダーのコンマ区切りリスト (例: X-Custom,Content-Disposition)。設定されていない場合、フィルターはデフォルトですべてのヘッダーを許可します。

デフォルト: 任意の HTTP リクエストヘッダーが許可されます。

環境変数: QUARKUS_HTTP_CORS_HEADERS

list of string

 

quarkus.http.cors.exposed-headers

CORS 応答で公開される HTTP ヘッダー。

公開するヘッダーのコンマ区切りリスト (例: X-Custom,Content-Disposition)

デフォルト: ヘッダーは公開されません。

環境変数: QUARKUS_HTTP_CORS_EXPOSED_HEADERS

list of string

 

quarkus.http.cors.access-control-max-age

java.time.Duration 形式の Access-Control-Max-Age 応答ヘッダー値。

プリフライトリクエストの結果をキャッシュできる期間をブラウザーに通知します。

環境変数: QUARKUS_HTTP_CORS_ACCESS_CONTROL_MAX_AGE

Duration ℹ️ 期間のフォーマット

 

quarkus.http.cors.access-control-allow-credentials

Access-Control-Allow-Credentials 応答ヘッダー。

リクエストの認証情報モード Request.credentialsinclude に設定されている場合に、フロントエンド JavaScript が認証情報にアクセスすることを許可できるかどうかをブラウザーに通知します。

デフォルト: quarkus.http.cors.origins プロパティーが設定されており、正確な Origin ヘッダー値と一致する場合は true

環境変数: QUARKUS_HTTP_CORS_ACCESS_CONTROL_ALLOW_CREDENTIALS

boolean

 
duration のフォーマット

duration の値を書き込むには、標準の java.time.Duration フォーマットを使用します。詳細は、Duration#parse() Java API ドキュメント を参照してください。

数字で始まる簡略化されたフォーマットも使用できます。

  • 値が数値のみの場合は、秒単位の時間を表します。
  • 数字の後に ms が続く値は、ミリ秒単位の時間を表します。

その他の場合は、解析のために簡略化されたフォーマットが java.time.Duration フォーマットに変換されます。

  • 数字の後に hm、または s が続く値には、接頭辞 PT が付きます。
  • 数字の後に d が続く値は、接頭辞 P が付きます。
トップに戻る
Red Hat logoGithubredditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。 最新の更新を見る.

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

Theme

© 2025 Red Hat