アノテーションインターフェース CrossOrigin
HandlerMapping
が構成されている場合に処理されます。Spring Web MVC と Spring WebFlux はどちらも、それぞれのモジュールの RequestMappingHandlerMapping
を通じてこのアノテーションをサポートしています。アノテーションの各型とメソッドレベルのペアからの値が CorsConfiguration
に追加され、次に CorsConfiguration.applyPermitDefaultValues()
を介してデフォルト値が適用されます。
グローバル構成とローカル構成を組み合わせるためのルールは、一般的に追加的です。すべてのグローバルおよびすべてのローカルの起源。allowCredentials
や maxAge
など、単一の値しか受け入れられない属性の場合、ローカルはグローバル値をオーバーライドします。詳細については、CorsConfiguration.combine(CorsConfiguration)
を参照してください。
- 導入:
- 4.2
- 作成者:
- Russell Allen, Sebastien Deleuze, Sam Brannen, Ruslan Akhundov
オプション要素のサマリー
オプション要素修飾子と型オプションの要素説明ブラウザーが、ドメイン間リクエストとともに Cookie などの資格情報をアノテーション付きエンドポイントに送信するかどうか。StringSE[]
実際のリクエストで許可されるリクエストヘッダーのリスト。"*"
を使用すると、すべてのヘッダーを許可できます。StringSE[]
ユーザーエージェントがクライアントに「単純な」ヘッダー以外の実際のレスポンスでのアクセスを許可するレスポンスヘッダーのリスト。long
プリフライトレスポンスのキャッシュ期間の最大経過時間(秒単位)。サポートされる HTTP リクエストメソッドのリスト。StringSE[]
より柔軟な原点パターンをサポートするorigins()
の代替。StringSE[]
クロスオリジンリクエストが許可されているオリジンのリスト。StringSE[]
origins()
のエイリアス。
要素の詳細
value
origins()
のエイリアス。- デフォルト:
- {}
origins
クロスオリジンリクエストが許可されているオリジンのリスト。詳しくはCorsConfiguration.setAllowedOrigins(List)
を参照してください。デフォルトでは、
originPatterns()
も設定されていない限り、すべてのオリジンが許可されます。設定されている場合は、代わりにoriginPatterns
が使用されます。- デフォルト:
- {}
originPatterns
StringSE[] originPatternsより柔軟な原点パターンをサポートするorigins()
の代替。詳しくはCorsConfiguration.setAllowedOriginPatterns(List)
を参照してください。デフォルトでは、これは設定されていません。
- 導入:
- 5.3
- デフォルト:
- {}
allowedHeaders
StringSE[] allowedHeaders実際のリクエストで許可されるリクエストヘッダーのリスト。"*"
を使用すると、すべてのヘッダーを許可できます。許可されたヘッダーは、プリフライトリクエストの
Access-Control-Allow-Headers
レスポンスヘッダーにリストされています。CORS 仕様に従って、
Cache-Control
、Content-Language
、Expires
、Last-Modified
またはPragma
のいずれかである場合、ヘッダー名をリストする必要はありません。デフォルトでは、リクエストされたすべてのヘッダーが許可されます。
- デフォルト:
- {}
exposedHeaders
StringSE[] exposedHeadersユーザーエージェントがクライアントに実際のレスポンスでのアクセスを許可するレスポンスヘッダーのリスト。「単純な」ヘッダー、つまりCache-Control
、Content-Language
、Content-Type
、Expires
、Last-Modified
またはPragma
以外公開されたヘッダーは、実際の CORS リクエストの
Access-Control-Expose-Headers
レスポンスヘッダーにリストされます。特別な値
"*"
を使用すると、資格情報のないリクエストに対してすべてのヘッダーを公開できます。デフォルトでは、公開されているヘッダーは表示されません。
- デフォルト:
- {}
methods
RequestMethod[] methodsサポートされる HTTP リクエストメソッドのリスト。デフォルトでは、サポートされているメソッドは、コントローラーメソッドがマップされているメソッドと同じです。
- デフォルト:
- {}
allowCredentials
StringSE allowCredentialsブラウザーが、ドメイン間リクエストとともに Cookie などの資格情報をアノテーション付きエンドポイントに送信するかどうか。構成された値は、プリフライトリクエストのAccess-Control-Allow-Credentials
レスポンスヘッダーに設定されます。注意 : このオプションは、構成されたドメインとの高レベルの信頼を確立し、Cookie や CSRF トークンなどのユーザー固有の機密情報を公開することにより、Web アプリケーションの表面攻撃を増やすことに注意してください。
デフォルトでは、これは設定されていません。その場合、
Access-Control-Allow-Credentials
ヘッダーも設定されないため、資格情報は許可されません。- デフォルト:
- ""
maxAge
long maxAgeプリフライトレスポンスのキャッシュ期間の最大経過時間(秒単位)。このプロパティは、プリフライトリクエストの
Access-Control-Max-Age
レスポンスヘッダーの値を制御します。これを適切な値に設定すると、ブラウザーが必要とするプリフライトリクエスト / レスポンス対話の数を減らすことができます。負の値は未定義を意味します。
デフォルトでは、
1800
秒(30 分)に設定されています。- デフォルト:
- -1L