CDC 1.1.2

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 - 指定された contextnull の場合
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
関連項目:
Object.hashCode(), Hashtable

hashCode

public int hashCode()
このコンテキストのハッシュコード値を返します。ハッシュコードを計算するには、コンテキストにあるすべての保護ドメインのハッシュコードの排他的論理和を求めます。

オーバーライド:
クラス Object 内の hashCode
戻り値:
このコンテキストのハッシュコード値
関連項目:
Object.equals(java.lang.Object), Hashtable

CDC 1.1.2

Copyright 2006 Sun Microsystems, Inc. All Rights Reserved. Use of this specification is subject to license terms.