モジュール java.base
パッケージ javax.net.ssl

インタフェースSSLSessionContext


public interface SSLSessionContext
SSLSessionContextは、1つのエンティティに関連付けられている一連のSSLSessionを表します。 たとえば、並行して複数のセッションに参加しているサーバーまたはクライアントを、特定のエンティティに関連付けることができます。

セッション・コンテキストは、一部の環境では使用できません。 たとえば、ステートレス・セッションの再開処理です。

セッション・コンテキストにすべてのセッションが含まれていない場合があります。 たとえば、ステートレス・セッションはセッション・コンテキストに格納されません。

SSLSessionContextパラメータを使用すれば、セッションの格納方法を制御できます。

  • 指定された制限時間が経過すると、セッションを無効にすることができる。
  • コンテキストに格納できるセッションの数を制限できる。
セッションは、セッションIDに基づいて取り出すことができます。SSLSessionContext内のセッションIDは一覧表示できます。

導入されたバージョン:
1.4
関連項目:
SSLSession
  • メソッドのサマリー

    修飾子と型 メソッド 説明
    Enumeration<byte[]> getIds()
    このSSLSessionContextの下でグループ化されたすべての既知のセッションidの列挙を返します。
    SSLSession getSession​(byte[] sessionId)
    指定されたセッションIDにバインドされているSSLSessionを返します。
    int getSessionCacheSize()
    このSSLSessionContextの下にグループ化されているSSLSessionオブジェクトを格納するために使用されるキャッシュのサイズを返します。
    int getSessionTimeout()
    このSSLSessionContextの下にグループ化されているSSLSessionオブジェクトのタイム・アウト制限を返します。
    void setSessionCacheSize​(int size)
    このSSLSessionContextの下にグループ化されているSSLSessionオブジェクトを格納するために使用されるキャッシュのサイズを設定します。
    void setSessionTimeout​(int seconds)
    このSSLSessionContextの下にグループ化されているSSLSessionオブジェクトのタイム・アウト制限を設定します。
  • メソッドの詳細

    • getSession

      SSLSession getSession​(byte[] sessionId)
      指定されたセッションIDにバインドされているSSLSessionを返します。
      パラメータ:
      sessionId - セッション識別子
      戻り値:
      SSLSession。指定されたセッションIDが有効なSSLSessionを指していない場合はnull。
      例外:
      NullPointerException - sessionIdがnullである場合。
    • getIds

      Enumeration<byte[]> getIds()
      このSSLSessionContextの下でグループ化されたすべての既知のセッションidの列挙を返します。

      セッション・コンテキストにすべてのセッションが含まれていない場合があります。 たとえば、ステートレス・セッションはセッション・コンテキストに格納されません。

      戻り値:
      すべてのセッションIDの列挙
    • setSessionTimeout

      void setSessionTimeout​(int seconds) throws IllegalArgumentException
      このSSLSessionContextの下にグループ化されているSSLSessionオブジェクトのタイム・アウト制限を設定します。

      タイム・アウト制限がt秒に設定されている場合、作成時刻からt秒経過したセッションはタイム・アウト制限を超えます。 セッションのタイム・アウト制限を超えると、SSLSessionオブジェクトが無効にされ、以降の接続でそのセッションを再開したり、そのセッションにふたたび参加したりすることはできません。 SSLSessionContextのタイム・アウト制限を変更すると、タイム・アウトを超えたセッションの確認がただちに行われます。

      APIのノート:
      JDK Implementationでは、セッション・キャッシュ・サイズおよびタイムアウトの両方にデフォルト値が使用されることに注意してください。 詳細は、getSessionCacheSizeおよびgetSessionTimeoutを参照してください。 アプリケーションでは、パフォーマンス要件を考慮し、必要に応じてデフォルトを上書きする必要があります。
      パラメータ:
      seconds - 新しいタイム・アウト制限(秒単位)。ゼロは制限なし。
      例外:
      IllegalArgumentException - 指定されたタイムアウト制限が0より小さい場合。
      関連項目:
      getSessionTimeout()
    • getSessionTimeout

      int getSessionTimeout()
      このSSLSessionContextの下にグループ化されているSSLSessionオブジェクトのタイム・アウト制限を返します。

      タイム・アウト制限がt秒に設定されている場合、作成時刻からt秒経過したセッションはタイム・アウト制限を超えます。 セッションのタイム・アウト制限を超えると、SSLSessionオブジェクトが無効にされ、以降の接続でそのセッションを再開したり、そのセッションにふたたび参加したりすることはできません。 SSLSessionContextのタイム・アウト制限を変更すると、タイム・アウト制限を超えたセッションの確認がただちに行われます。

      実装上のノート:
      JDK実装は、setSessionTimeoutメソッドによって設定されたセッション・タイムアウトを返します。設定されていない場合は、デフォルト値86400秒(24時間)を返します。
      戻り値:
      タイム・アウト制限(秒単位)。ゼロは制限なし。
      関連項目:
      setSessionTimeout(int)
    • setSessionCacheSize

      void setSessionCacheSize​(int size) throws IllegalArgumentException
      このSSLSessionContextの下にグループ化されているSSLSessionオブジェクトを格納するために使用されるキャッシュのサイズを設定します。
      APIのノート:
      JDK Implementationでは、セッション・キャッシュ・サイズおよびタイムアウトの両方にデフォルト値が使用されることに注意してください。 詳細は、getSessionCacheSizeおよびgetSessionTimeoutを参照してください。 アプリケーションでは、パフォーマンス要件を考慮し、必要に応じてデフォルトを上書きする必要があります。
      パラメータ:
      size - セッション・キャッシュの新しいサイズ制限。ゼロは制限なし。
      例外:
      IllegalArgumentException - 指定されたサイズが0より小さい場合。
      関連項目:
      getSessionCacheSize()
    • getSessionCacheSize

      int getSessionCacheSize()
      このSSLSessionContextの下にグループ化されているSSLSessionオブジェクトを格納するために使用されるキャッシュのサイズを返します。
      実装上のノート:
      JDK実装は、setSessionCacheSizeメソッドによって設定されたキャッシュ・サイズを返します。設定されない場合は、javax.net.ssl.sessionCacheSizeシステム・プロパティの値を返します。 どちらも設定されていない場合、デフォルト値(20480)が返されます。
      戻り値:
      セッション・キャッシュのサイズ。ゼロは制限なし。
      関連項目:
      setSessionCacheSize(int)