JavaTM 2 Platform
Std. Ed. v1.3

java.security
クラス AccessControlContext

java.lang.Object
  |
  +--java.security.AccessControlContext

public final class AccessControlContext
extends Object

AccessControlContext は、それがカプセル化するコンテキストに基づいて、システムリソースへのアクセスを許可するかどうかを決定するために使用されます。

さらに具体的に説明すると、AccessControlContext はコンテキストをカプセル化し、checkPermission というメソッドを持っています。このメソッドは、AccessController クラスの checkPermission メソッドと同等ですが、1 つ違いがあります。それは、AccessControlContext の checkPermission メソッドは、現在実行中のスレッドのコンテキストではなく、AccessControlContext がカプセル化するコンテキストに基づいて、アクセスを許可するかどうかを決定することです。

したがって、AccessControlContext を使用するのは、指定したコンテキスト内で行うセキュリティチェックを、実際には「別の」コンテキスト内から (たとえば、ワークスレッド内から) 行う必要がある場合です。

AccessControlContext を作成するには、AccessController.getContext メソッドを呼び出します。getContext メソッドは、現在の呼び出し側コンテキストの「スナップショット」を取得し、このメソッドが返す AccessControlContext オブジェクトにそのコンテキストを入れます。以下に、呼び出しの例を示します。

 
   AccessControlContext acc = AccessController.getContext()
 
 

以降、別のコンテキスト内のコードは、以前に保存した AccessControlContext オブジェクトの checkPermission メソッドを呼び出すことができます。以下に、呼び出しの例を示します。

 
   acc.checkPermission(permission)
 
 

関連項目:
AccessController

コンストラクタの概要
AccessControlContext(AccessControlContext acc, DomainCombiner combiner)
          指定された AccessControlContext および DomainCombiner を使って、新しい AccessControlContext を作成します。
AccessControlContext(ProtectionDomain[] context)
          指定された ProtectionDomain のセットで AccessControlContext を作成します。
 
メソッドの概要
 void checkPermission(Permission perm)
          現在有効なセキュリティポリシーとこのオブジェクトのコンテキストに基づいて、指定されたアクセス権によって示されるアクセス要求が許可されるか、拒否されるかを決定します。
 boolean equals(Object obj)
          2 つの AccessControlContext オブジェクトが同等かどうかを判定します。
 DomainCombiner getDomainCombiner()
          この AccessControlContext に関連した DomainCombiner を取得します。
 int hashCode()
          このコンテキストのハッシュコード値を返します。
 
クラス java.lang.Object から継承したメソッド
clone, finalize, getClass, notify, notifyAll, toString, wait, wait, wait
 

コンストラクタの詳細

AccessControlContext

public AccessControlContext(ProtectionDomain[] context)
指定された ProtectionDomain のセットで AccessControlContext を作成します。コンテキストを null にすることはできません。重複した領域は、コンテキストから削除されます。
パラメータ:
context - このコンテキストに関連した ProtectionDomain

AccessControlContext

public AccessControlContext(AccessControlContext acc,
                            DomainCombiner combiner)
指定された AccessControlContext および DomainCombiner を使って、新しい AccessControlContext を作成します。このコンストラクタにより、DomainCombiner が、提供済みの AccessControlContext に関連付けられます。

パラメータ:
acc - 提供済みの DomainCombiner に関連した AccessControlContext

combiner - 提供済みの AccessControlContext に関連した DomainCombiner
例外:
NullPointerException - 提供された、context または combiner のいずれかが null の場合

SecurityException - 呼び出し側に、コンストラクタ呼び出しのアクセス権がない場合
メソッドの詳細

getDomainCombiner

public DomainCombiner getDomainCombiner()
この AccessControlContext に関連した DomainCombiner を取得します。

戻り値:
この AccessControlContext に関連した DomainCombiner、または、存在しない場合は null
例外:
SecurityException - 呼び出し側に、この AccessControlContext に関連した DomainCombiner を取得するためのアクセス権がない場合

checkPermission

public void checkPermission(Permission perm)
                     throws AccessControlException
現在有効なセキュリティポリシーとこのオブジェクトのコンテキストに基づいて、指定されたアクセス権によって示されるアクセス要求が許可されるか、拒否されるかを決定します。

このメソッドは、アクセス要求が許可される場合には何もしないで復帰し、そうでない場合には適切な AccessControlException をスローします。

パラメータ:
perm - 要求されたアクセス権
例外:
AccessControlException - 現在のセキュリティポリシーと、このオブジェクトがカプセル化したコンテキストに基づいて、指定されたアクセス権が許可されない場合
NullPointerException - 確認するためのアクセス権が null の場合

equals

public boolean equals(Object obj)
2 つの AccessControlContext オブジェクトが同等かどうかを判定します。つまり、obj が AccessControlContext であり、このコンテキストと同じ ProtectionDomain のセットを持っているかどうかを調べます。

オーバーライド:
クラス Object 内の equals
パラメータ:
obj - このオブジェクトと等しいかどうかが判定されるオブジェクト
戻り値:
obj が AccessControlContext で、このコンテキストと同じ ProtectionDomain のセットを持っている場合は true、そうでない場合は false

hashCode

public int hashCode()
このコンテキストのハッシュコード値を返します。ハッシュコードを計算するには、コンテキストにあるすべての保護領域のハッシュコードの排他的論理和を求めます。
オーバーライド:
クラス Object 内の hashCode
戻り値:
このコンテキストのハッシュコード値

JavaTM 2 Platform
Std. Ed. v1.3

バグや機能要求の報告
さらに詳しい API リファレンスおよび開発者ドキュメントについては、 Java 2 SDK SE Developer Documentation を参照してください。このドキュメントには、概念、用語の定義、回避策、 実用的なコード例など、開発者を対象にした詳細な解説が掲載されています。

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