アノテーションインターフェース CrossOrigin


@TargetSE({TYPESE,METHODSE}) @RetentionSE(RUNTIMESE) @DocumentedSE public @interface CrossOrigin
特定のハンドラークラスまたはハンドラーメソッド、あるいはその両方でクロスオリジンリクエストを許可するためのアノテーション。適切な HandlerMapping が構成されている場合に処理されます。

Spring Web MVCSpring WebFlux はどちらも、それぞれのモジュールの RequestMappingHandlerMapping を通じてこのアノテーションをサポートしています。アノテーションの各型とメソッドレベルのペアからの値が CorsConfiguration に追加され、次に CorsConfiguration.applyPermitDefaultValues() を介してデフォルト値が適用されます。

グローバル設定とローカル設定を組み合わせるルールは、一般的には追加的です (たとえば、すべてグローバル設定とすべてローカル設定)。allowCredentials や maxAge など、単一の値しか受け入れられない属性の場合、ローカル設定がグローバル設定よりも優先されます。詳細については、CorsConfiguration.combine(CorsConfiguration) を参照してください。

導入:
4.2
作成者:
Russell Allen, Sebastien Deleuze, Sam Brannen, Ruslan Akhundov
  • オプション要素のサマリー

    オプション要素
    修飾子と型
    オプションの要素
    説明
    ブラウザーが、ドメイン間リクエストとともに Cookie などの資格情報をアノテーション付きエンドポイントに送信するかどうか。
    実際のリクエストで許可されるリクエストヘッダーのリスト。"*" を使用すると、すべてのヘッダーを許可できます。
    プライベートネットワークアクセスがサポートされているかどうか。
    ユーザーエージェントが実際のレスポンスでクライアントにアクセスを許可するレスポンスヘッダーのリスト。おそらく "*" がすべてのヘッダーを公開します。
    long
    プリフライトレスポンスのキャッシュ期間の最大経過時間(秒単位)。
    サポートされる HTTP リクエストメソッドのリスト。
    より柔軟な原点パターンをサポートする origins() の代替。
    クロスオリジンリクエストが許可されているオリジンのリスト。
    origins() のエイリアス。
  • 要素の詳細

    • value

      @AliasFor("origins") StringSE[] value
      origins() のエイリアス。
      デフォルト:
      {}
    • origins

      @AliasFor("value") StringSE[] 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