クラス HstsHeaderWriter

  • 実装されたすべてのインターフェース:
    HeaderWriter

    public final class HstsHeaderWriter
    extends java.lang.Object
    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()
      新しいインスタンスを作成します
      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)
      新しいインスタンスを作成します
    • メソッドのサマリー

      すべてのメソッド   インスタンスメソッド   具象メソッド  
      修飾子と型 メソッド 説明
      voidsetIncludeSubDomains​(boolean includeSubDomains)
      true の場合、サブドメインも HSTS ホストと見なす必要があります。
      voidsetMaxAgeInSeconds​(long maxAgeInSeconds)
      Strict-Transport-Security ヘッダーの max-age ディレクティブの値(秒単位)を設定します。
      voidsetPreload​(boolean preload)
      true の場合、プリロードは HSTS ヘッダーに含まれます。
      voidsetRequestMatcher​(RequestMatcher requestMatcher)
      "Strict-Transport-Security" を追加するかどうかを決定するために使用される RequestMatcher を設定します。
      voidwriteHeaders​(javax.servlet.http.HttpServletRequest request, javax.servlet.http.HttpServletResponse response)
      Header インスタンスを作成します。
      • クラス java.lang.Object から継承されたメソッド

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • メソッドの詳細

      • writeHeaders

        public void writeHeaders​(javax.servlet.http.HttpServletRequest request,
                                 javax.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
        例外:
        java.lang.IllegalArgumentException - RequestMatcher が null の場合
      • setMaxAgeInSeconds

        public void setMaxAgeInSeconds​(long maxAgeInSeconds)

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

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

        パラメーター:
        maxAgeInSeconds - このドメインを既知の HSTS ホストと見なす最大時間(秒)。
        例外:
        java.lang.IllegalArgumentException - 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