アノテーションインターフェース 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実際のリクエストで許可されるリクエストヘッダーのリスト。おそらく"*"
ですべてのヘッダーが許可されます。詳細はCorsConfiguration.setAllowedHeaders(List)
を参照してください。デフォルトでは、リクエストされたすべてのヘッダーが許可されます。
- デフォルト:
- {}
exposedHeaders
StringSE[] exposedHeadersユーザーエージェントが実際のレスポンスでクライアントにアクセスを許可するレスポンスヘッダーのリスト。おそらく"*"
がすべてのヘッダーを公開します。詳細はCorsConfiguration.setExposedHeaders(List)
を参照してください。デフォルトでは、公開されているヘッダーは表示されません。
- デフォルト:
- {}
methods
RequestMethod[] methodsサポートされている HTTP リクエストメソッドのリスト。詳細はCorsConfiguration.setAllowedMethods(List)
を参照してください。デフォルトでは、サポートされているメソッドは、コントローラーメソッドがマップされているメソッドと同じです。
- デフォルト:
- {}
allowCredentials
StringSE allowCredentialsブラウザーが、クロスドメインリクエストとともに Cookie などの認証情報をアノテーション付きエンドポイントに送信する必要があるかどうか。詳細はCorsConfiguration.setAllowCredentials(Boolean)
を参照してください。注意 : このオプションは、構成されたドメインとの高レベルの信頼を確立し、Cookie や CSRF トークンなどのユーザー固有の機密情報を公開することにより、Web アプリケーションの表面攻撃を増やすことに注意してください。
デフォルトでは、これは設定されていません。その場合、
Access-Control-Allow-Credentials
ヘッダーも設定されないため、資格情報は許可されません。- デフォルト:
- ""
allowPrivateNetwork
StringSE allowPrivateNetworkプライベートネットワークアクセスがサポートされているかどうか。詳細はCorsConfiguration.setAllowPrivateNetwork(Boolean)
を参照してください。デフォルトでは、これは設定されていません (つまり、プライベートネットワークアクセスはサポートされていません)。
- 導入:
- 5.3.32
- デフォルト:
- ""
maxAge
long maxAgeプリフライトレスポンスのキャッシュ期間の最大経過時間(秒単位)。このプロパティは、プリフライトリクエストの
Access-Control-Max-Age
レスポンスヘッダーの値を制御します。これを適切な値に設定すると、ブラウザーが必要とするプリフライトリクエスト / レスポンス対話の数を減らすことができます。負の値は未定義を意味します。
デフォルトでは、
1800
秒(30 分)に設定されています。- デフォルト:
- -1L