@TargetSE(valueSE={TYPESE,METHODSE}) @RetentionSE(valueSE=RUNTIMESE) @DocumentedSE public @interface CrossOrigin
HandlerMapping
が構成されている場合に処理されます。Spring Web MVC と Spring WebFlux はどちらも、それぞれのモジュールの RequestMappingHandlerMapping
を通じてこのアノテーションをサポートしています。アノテーションの各型とメソッドレベルのペアからの値が CorsConfiguration
に追加され、次に CorsConfiguration.applyPermitDefaultValues()
を介してデフォルト値が適用されます。
グローバル構成とローカル構成を組み合わせるためのルールは、一般的に追加的です。すべてのグローバルおよびすべてのローカルの起源。allowCredentials
や maxAge
など、単一の値しか受け入れられない属性の場合、ローカルはグローバル値をオーバーライドします。詳細については、CorsConfiguration.combine(CorsConfiguration)
を参照してください。
修飾子と型 | フィールドと説明 |
---|---|
static boolean | DEFAULT_ALLOW_CREDENTIALS 使用すべきではありません。 Spring 5.0 現在、 CorsConfiguration.applyPermitDefaultValues() を推奨 |
static StringSE[] | DEFAULT_ALLOWED_HEADERS 使用すべきではありません。 Spring 5.0 現在、 CorsConfiguration.applyPermitDefaultValues() を推奨 |
static long | DEFAULT_MAX_AGE 使用すべきではありません。 Spring 5.0 現在、 CorsConfiguration.applyPermitDefaultValues() を推奨 |
static StringSE[] | DEFAULT_ORIGINS 使用すべきではありません。 Spring 5.0 現在、 CorsConfiguration.applyPermitDefaultValues() を推奨 |
修飾子と型 | オプションの要素と説明 |
---|---|
StringSE | allowCredentials ブラウザーが、ドメイン間リクエストとともに Cookie などの資格情報をアノテーション付きエンドポイントに送信するかどうか。 |
StringSE[] | allowedHeaders 実際のリクエストで許可されるリクエストヘッダーのリスト。 "*" を使用すると、すべてのヘッダーを許可できます。 |
StringSE[] | exposedHeaders ユーザーエージェントがクライアントに「単純な」ヘッダー以外の実際のレスポンスでのアクセスを許可するレスポンスヘッダーのリスト。 |
long | maxAge プリフライトレスポンスのキャッシュ期間の最大経過時間(秒単位)。 |
RequestMethod[] | methods サポートされる HTTP リクエストメソッドのリスト。 |
StringSE[] | origins 特定のオリジンである許可されたオリジンのリスト。 |
StringSE[] | value origins() のエイリアス。 |
@DeprecatedSE public static final StringSE[] DEFAULT_ORIGINS
CorsConfiguration.applyPermitDefaultValues()
に置き換えられました。@DeprecatedSE public static final StringSE[] DEFAULT_ALLOWED_HEADERS
CorsConfiguration.applyPermitDefaultValues()
に置き換えられました。@DeprecatedSE public static final boolean DEFAULT_ALLOW_CREDENTIALS
CorsConfiguration.applyPermitDefaultValues()
に置き換えられました。@DeprecatedSE public static final long DEFAULT_MAX_AGE
CorsConfiguration.applyPermitDefaultValues()
に置き換えられました。@AliasFor(value="value") public abstract StringSE[] origins
"https://domain1.com"
または "*"
。 一致したオリジンは、プリフライトの実際の CORS リクエストの Access-Control-Allow-Origin
レスポンスヘッダーにリストされています。
デフォルトでは、すべてのオリジンが許可されています。
注意 : CORS チェックは、クライアントから発信されたアドレスを反映するために、存在する場合、"Forwarded" (RFC 7239)、"X-Forwarded-Host"、"X-Forwarded-Port"、"X-Forwarded-Proto" ヘッダーの値を使用します。ForwardedHeaderFilter
を使用して、抽出して使用するか、このようなヘッダーを破棄するかを中央から選択することを検討してください。このフィルターの詳細については、Spring Framework リファレンスを参照してください。
value()
public abstract StringSE[] allowedHeaders
"*"
を使用すると、すべてのヘッダーを許可できます。 許可されたヘッダーは、プリフライトリクエストの Access-Control-Allow-Headers
レスポンスヘッダーにリストされています。
CORS 仕様に従って、Cache-Control
、Content-Language
、Expires
、Last-Modified
または Pragma
のいずれかである場合、ヘッダー名をリストする必要はありません。
デフォルトでは、リクエストされたすべてのヘッダーが許可されます。
public abstract StringSE[] exposedHeaders
Cache-Control
、Content-Language
、Content-Type
、Expires
、Last-Modified
または Pragma
以外 公開されたヘッダーは、実際の CORS リクエストの Access-Control-Expose-Headers
レスポンスヘッダーにリストされます。
デフォルトでは、公開されているヘッダーは表示されません。
public abstract RequestMethod[] methods
デフォルトでは、サポートされているメソッドは、コントローラーメソッドがマップされているメソッドと同じです。
public abstract StringSE allowCredentials
Access-Control-Allow-Credentials
レスポンスヘッダーに設定されます。注意 : このオプションは、構成されたドメインとの高レベルの信頼を確立し、Cookie や CSRF トークンなどのユーザー固有の機密情報を公開することにより、Web アプリケーションの表面攻撃を増やすことに注意してください。
デフォルトでは、これは設定されていません。その場合、Access-Control-Allow-Credentials
ヘッダーも設定されないため、資格情報は許可されません。