クラス HstsHeaderWriter

java.lang.ObjectSE
org.springframework.security.web.header.writers.HstsHeaderWriter
実装されたすべてのインターフェース:
HeaderWriter

public final class HstsHeaderWriter extends ObjectSE implements HeaderWriter
HTTP Strict Transport Security (HSTS) をサポートします。

デフォルトでは、有効期限は 1 年で、サブドメインが含まれ、プリロードは含まれません。これは、それぞれ setMaxAgeInSeconds(long)setIncludeSubDomains(boolean)setPreload(boolean) を使用してカスタマイズできます。

セクション 7.2 は、HSTS ホストが HTTP レスポンスに STS ヘッダーを含めてはならないことを示しているため、デフォルトの動作では、ServletRequest.isSecure() が true を返した場合にのみ "Strict-Transport-Security" が追加されます。時々これはカスタマイズされる必要があるかもしれません。例: SSL ターミネーションが使用されるいくつかの状況では、SSL が使用されたかどうかを判別するために他の何かが使用される場合があります。これらの状況では、setRequestMatcher(RequestMatcher) をカスタム RequestMatcher で呼び出すことができます。

HSTS プリロードの詳細については、Web サイト hstspreload.org を参照してください。

導入:
3.2
  • コンストラクターのサマリー

    コンストラクター
    コンストラクター
    説明
    新しいインスタンスを作成します
    HstsHeaderWriter(boolean includeSubDomains)
    新しいインスタンスを作成します
    HstsHeaderWriter(long maxAgeInSeconds)
    新しいインスタンスを作成します
    HstsHeaderWriter(long maxAgeInSeconds, boolean includeSubDomains)
    新しいインスタンスを作成します
    HstsHeaderWriter(long maxAgeInSeconds, boolean includeSubDomains, boolean preload)
    新しいインスタンスを作成します
    HstsHeaderWriter(RequestMatcher requestMatcher, long maxAgeInSeconds, boolean includeSubDomains)
    新しいインスタンスを作成します
    HstsHeaderWriter(RequestMatcher requestMatcher, long maxAgeInSeconds, boolean includeSubDomains, boolean preload)
    新しいインスタンスを作成します
  • メソッドのサマリー

    修飾子と型
    メソッド
    説明
    void
    setIncludeSubDomains(boolean includeSubDomains)
    true の場合、サブドメインも HSTS ホストと見なす必要があります。
    void
    setMaxAgeInSeconds(long maxAgeInSeconds)
    Strict-Transport-Security ヘッダーの max-age ディレクティブの値(秒単位)を設定します。
    void
    setPreload(boolean preload)
    true の場合、プリロードは HSTS ヘッダーに含まれます。
    void
    "Strict-Transport-Security" を追加するかどうかを決定するために使用される RequestMatcher を設定します。
    void
    writeHeaders(jakarta.servlet.http.HttpServletRequest request, jakarta.servlet.http.HttpServletResponse response)
    Header インスタンスを作成します。

    クラス java.lang.ObjectSE から継承されたメソッド

    clone, equalsSE, finalize, getClass, hashCode, notify, notifyAll, toString, wait, waitSE, waitSE
  • コンストラクターの詳細

  • メソッドの詳細

    • writeHeaders

      public void writeHeaders(jakarta.servlet.http.HttpServletRequest request, jakarta.servlet.http.HttpServletResponse response)
      インターフェースからコピーされた説明: HeaderWriter
      Header インスタンスを作成します。
      次で指定:
      インターフェース HeaderWriterwriteHeaders 
      パラメーター:
      request - リクエスト
      response - レスポンス
    • setRequestMatcher

      public void setRequestMatcher(RequestMatcher requestMatcher)
      "Strict-Transport-Security" を追加するかどうかを決定するために使用される RequestMatcher を設定します。true の場合、ヘッダーが追加されます。それ以外の場合、ヘッダーは追加されません。デフォルトでは、ServletRequest.isSecure() が true を返すときにヘッダーが追加されます。
      パラメーター:
      requestMatcher - 使用する RequestMatcher
      例外:
      IllegalArgumentExceptionSE - RequestMatcher が null の場合
    • setMaxAgeInSeconds

      public void setMaxAgeInSeconds(long maxAgeInSeconds)

      Strict-Transport-Security ヘッダーの max-age ディレクティブの値(秒単位)を設定します。デフォルトは 1 年です。

      これは、このドメインを既知の HSTS ホストとして保持することを覚えておく時間をブラウザーに指示します。詳細については、セクション 6.1.1 を参照してください。

      パラメーター:
      maxAgeInSeconds - このドメインを既知の HSTS ホストと見なす最大時間(秒)。
      例外:
      IllegalArgumentExceptionSE - maxAgeInSeconds が負の場合
    • setIncludeSubDomains

      public void setIncludeSubDomains(boolean includeSubDomains)

      true の場合、サブドメインも HSTS ホストと見なす必要があります。デフォルトは true です。

      詳細については、セクション 6.1.2 を参照してください。

      パラメーター:
      includeSubDomains - サブドメインを含める場合は true、それ以外の場合は false
    • setPreload

      public void setPreload(boolean preload)

      true の場合、プリロードは HSTS ヘッダーに含まれます。デフォルトは false です。

      詳細については、セクション 6.1.2 を参照してください。

      パラメーター:
      preload - プリロードを含める場合は true、それ以外の場合は false
      導入:
      5.2.0