JavaTM 2
Platform
Std. Ed. v1.4.0

javax.net.ssl
インタフェース SSLSession


public interface SSLSession

SSL では、2 つのエンティティ間で進行中の関係がセッションと呼ばれます。1 つの SSL 接続では、一度に 1 つのセッションが使用されます。ただし、そのセッションは、同じエンティティ間の複数の接続で、同時にまたは逐次的に使用されます。1 つの接続で使用されるセッションを別のセッションで置き換えることもできます。セッションの作成または参加は、SSL ハンドシェークのときに行われます。セッションを無効にするには、セキュリティまたは資源使用状況に関連するポリシーを使用するか、アプリケーションから明示的に invalidate が呼び出します。セッション管理ポリシーは通常、パフォーマンスを調整するときに使用します。

SSL セッションには、標準セッション属性以外に、次の読み込み専用属性があります。

セッションは、明示的に無効にします。特定の種類のエラーが発生したときは、暗黙的に無効になります。

導入されたバージョン:
1.4

メソッドの概要
 String getCipherSuite()
          このセッションのすべての接続に使用される SSL 符号化方式の名前を返します。
 long getCreationTime()
          このセッションが作成された時刻を、UTC 1970年 1 月 1 日 0 時からのミリ秒単位で返します。
 byte[] getId()
          このセッションに割り当てられた識別子を返します。
 long getLastAccessedTime()
          このセッションがセッションレベルのインフラストラクチャによって最後にアクセスされた時刻を、UTC 1970年 1 月 1 日 0 時からのミリ秒単位で返します。
 Certificate[] getLocalCertificates()
          ハンドシェーク中にピアに送信された証明書を返します。
 X509Certificate[] getPeerCertificateChain()
          セッションを定義するときに識別された、ピアの識別情報を返します。
 Certificate[] getPeerCertificates()
          セッションを定義するときに設定された、ピアの識別情報を返します。
 String getPeerHost()
          このセッションのピアホスト名を返します。
 String getProtocol()
          このセッションのすべての接続に使用されるプロトコルの標準名を返します。
 SSLSessionContext getSessionContext()
          このセッションがバインドされているコンテキストを返します。
 Object getValue(String name)
          このセッションのアプリケーション層データ内で、指定された名前にバインドされているオブジェクトを返します。
 String[] getValueNames()
          セッションにバインドされているアプリケーション層データオブジェクト名の配列を返します。
 void invalidate()
          セッションを無効にします。
 void putValue(String name, Object value)
          指定された name を使用して、指定された value オブジェクトをこのセッションのアプリケーション層データにバインドします。
 void removeValue(String name)
          セッションのアプリケーション層データで、指定された名前にバインドされたオブジェクトを削除します。
 

メソッドの詳細

getId

public byte[] getId()
このセッションに割り当てられた識別子を返します。

戻り値:
セッション識別子

getSessionContext

public SSLSessionContext getSessionContext()
このセッションがバインドされているコンテキストを返します。

コンテキストは、一部の環境では取得できません。その場合は null を返します。

コンテキストが取得できる環境にセキュリティマネージャがインストールされている場合は、呼び出すときにコンテキストに対するアクセス権が必要になることがあります。その場合、アクセス権がないときは、セキュリティ例外がスローされます。Java 2 環境では、セキュリティマネージャの checkPermission メソッドを呼び出すときには、SSLPermission("getSSLSessionContext") アクセス権が必要です。

戻り値:
このセッションに使用されているセッションコンテキスト。コンテキストを取得できない場合は null

getCreationTime

public long getCreationTime()
このセッションが作成された時刻を、UTC 1970年 1 月 1 日 0 時からのミリ秒単位で返します。

戻り値:
このセッションが作成された時刻

getLastAccessedTime

public long getLastAccessedTime()
このセッションがセッションレベルのインフラストラクチャによって最後にアクセスされた時刻を、UTC 1970年 1 月 1 日 0 時からのミリ秒単位で返します。

アクセスとは、セッションデータを使用して新しい接続が確立されることを指します。セッション関連の値を取得または設定するなど、アプリケーションレベルの操作はこのアクセス時間に反映されません。

この情報は、特にセッション管理ポリシーで使用します。たとえば、長時間使用されていないコンテキストでセッションマネージャスレッドからセッションを解放したり、セッションを経過時間でソートしてタスクを最適化したりします。

戻り値:
このセッションが最後にアクセスされた時間

invalidate

public void invalidate()
セッションを無効にします。

後続の接続では、このセッションを使用できません。ただし、このセッションを使用している既存の接続は、接続が閉じるまで引き続き使用できます。


putValue

public void putValue(String name,
                     Object value)
指定された name を使用して、指定された value オブジェクトをこのセッションのアプリケーション層データにバインドします。

同じ name を使用している既存のバインディングは置き換えられます。新しい (または既存の) valueSSLSessionBindingListener インタフェースを実装している場合、value によって表されるオブジェクトには適切な方法で通知されます。

セキュリティ上の理由から、同じ名前の値は複数のアクセス制御コンテキストをまたがって表示できません。

パラメータ:
name - データオブジェクトがバインドされる名前。null は不可
value - バインドされるデータオブジェクト。null は不可
例外:
IllegalArgumentException - どちらかの引数が null の場合

getValue

public Object getValue(String name)
このセッションのアプリケーション層データ内で、指定された名前にバインドされているオブジェクトを返します。バインディングが存在しない場合は null を返します。

セキュリティ上の理由から、同じ名前の値は複数のアクセス制御コンテキストをまたがって表示できません。

パラメータ:
name - 検索するバインディングの名前
戻り値:
指定された名前にバインドされた値。バインディングが存在しない場合は null
例外:
IllegalArgumentException - 引数が null の場合

removeValue

public void removeValue(String name)
セッションのアプリケーション層データで、指定された名前にバインドされたオブジェクトを削除します。指定された名前にバインドされたオブジェクトが存在しない場合は、適用されません。バインドされた既存のオブジェクトが SessionBindingListener インタフェースを実装している場合は、そのインタフェースに適切な方法で通知されます。

セキュリティ上の理由から、同じ名前の値は複数のアクセス制御コンテキストをまたがって表示できません。

パラメータ:
name - 削除するオブジェクトの名前。複数のアクセス制御コンテキストをまたがって表示できる
例外:
IllegalArgumentException - 引数が null の場合

getValueNames

public String[] getValueNames()
セッションにバインドされているアプリケーション層データオブジェクト名の配列を返します。

セキュリティ上の理由から、同じ名前の値は複数のアクセス制御コンテキストをまたがって表示できません。

戻り値:
このセッションにバインドされているオブジェクト名の、null (空の場合もある) でない配列。

getPeerCertificates

public Certificate[] getPeerCertificates()
                                  throws SSLPeerUnverifiedException
セッションを定義するときに設定された、ピアの識別情報を返します。

戻り値:
ピア証明書の配列。ピア自身の証明書、証明書発行局の順序に並んでいる。
例外:
SSLPeerUnverifiedException - ピアの識別情報が確認できなかった場合

getLocalCertificates

public Certificate[] getLocalCertificates()
ハンドシェーク中にピアに送信された証明書を返します。ハンドシェークを行うときに複数の証明書を使用できる場合は、最適な証明書チェーンが選択され、ピアに送信されます。呼び出し側は、このメソッドを使用して、実際に使用された証明書チェーンを把握することができます。

戻り値:
証明書の配列。ローカル証明書、証明書発行局の順序に並んでいる。証明書が送信されなかった場合は、null が返される

getPeerCertificateChain

public X509Certificate[] getPeerCertificateChain()
                                          throws SSLPeerUnverifiedException
セッションを定義するときに識別された、ピアの識別情報を返します。

注: このメソッドは、以前のリリースとの互換性を確保するために組み込まれています。新しいアプリケーションでは、getPeerCertificates() を使用してください。

戻り値:
ピアの X.509 証明書の配列。ピア自身の証明書、証明書発行局の順序で並んでいる。証明書の形式は、元の JSSE 証明書 X509Certificate 形式である
例外:
SSLPeerUnverifiedException - ピアの識別情報が確認できなかった場合

getCipherSuite

public String getCipherSuite()
このセッションのすべての接続に使用される SSL 符号化方式の名前を返します。

SSL 符号化方式は、使用される暗号の種類や認証方法の設定など、接続時に送信されるデータに適用される保護のレベルを決定します。

戻り値:
セッションの符号化方式の名前

getProtocol

public String getProtocol()
このセッションのすべての接続に使用されるプロトコルの標準名を返します。

このプロトコルには、接続で使用されるプロトコルを定義します。

戻り値:
このセッションのすべての接続に使用されるプロトコルの標準名

getPeerHost

public String getPeerHost()
このセッションのピアホスト名を返します。

サーバの場合は、クライアントのホスト名になります。クライアントの場合は、サーバのホスト名になります。この名前は、完全指定のホスト名や実際のホスト名ではなく、ピアホストのネットワークアドレスの文字列エンコーディングです。完全指定のホスト名や実際のホスト名が必要な場合は、このメソッドから返された値に基づいてネームサービスを使用すれば解決できます。

この値は認証されていないため、実際に使用することはできません。

戻り値:
ピアホストのホスト名

JavaTM 2
Platform
Std. Ed. v1.4.0

バグの報告と機能のリクエスト
これ以外の API リファレンスおよび開発者用ドキュメントについては、 Java 2 SDK SE 開発者用ドキュメントを参照してください。 開発者向けの詳細な解説、概念の概要、用語の定義、バグの回避策、 およびコード実例が含まれています。

Java、Java 2D、および JDBC は米国ならびにその他の国における米国 Sun Microsystems, Inc. の商標もしくは登録商標です。
Copyright 1993-2002 Sun Microsystems, Inc. 901 San Antonio Road
Palo Alto, California, 94303, U.S.A. All Rights Reserved.