JavaTM Platform
Standard Ed. 6

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 がその影響を受けることはない

AccessControlContext

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

パラメータ:
acc - 提供された DomainCombiner に関連付けられている AccessControlContext

combiner - 提供済された AccessControlContext に関連付けられている DomainCombiner
例外:
NullPointerException - contextnull の場合

SecurityException - 呼び出し側に、コンストラクタ呼び出しのアクセス権がない場合
導入されたバージョン:
1.3
メソッドの詳細

getDomainCombiner

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

戻り値:
この AccessControlContext に関連した DomainCombiner。存在しない場合は null
例外:
SecurityException - 呼び出し側に、この AccessControlContext に関連した DomainCombiner を取得するためのアクセス権がない場合
導入されたバージョン:
1.3

checkPermission

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

このメソッドは、アクセス要求が許可される場合には何もしないで復帰し、そうでない場合には適切な 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

JavaTM Platform
Standard Ed. 6

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

Copyright 2006 Sun Microsystems, Inc. All rights reserved. Use is subject to license terms. Documentation Redistribution Policy も参照してください。