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)
- 導入されたバージョン:
- 1.2
- 関連項目:
AccessController
-
コンストラクタのサマリー
コンストラクタコンストラクタ説明AccessControlContext(AccessControlContext acc, DomainCombiner combiner)
指定されたAccessControlContext
およびDomainCombiner
を使って、新しいAccessControlContext
を作成します。AccessControlContext(ProtectionDomain[] context)
指定されたProtectionDomainの配列でAccessControlContextを作成します。 -
メソッドのサマリー
修飾子と型メソッド説明void
checkPermission(Permission perm)
現在有効なセキュリティ・ポリシーとこのオブジェクトのコンテキストに基づいて、指定されたアクセス権によって示されるアクセス要求が許可されるか、拒否されるかを決定します。boolean
2つのAccessControlContextオブジェクトが同等かどうかを判定します。このAccessControlContext
に関連付けられたDomainCombiner
を取得します。int
hashCode()
このコンテキストのハッシュ・コード値を返します。
-
コンストラクタの詳細
-
AccessControlContext
public AccessControlContext(ProtectionDomain[] context)指定されたProtectionDomainの配列でAccessControlContextを作成します。 コンテキストをnullにすることはできません。 重複した領域は、コンテキストから削除されます。- パラメータ:
context
- このコンテキストに関連したProtectionDomain。 重複しない領域が配列からコピーされる。 その後配列が変更されても、このAccessControlContextがその影響を受けることはない。- 例外:
NullPointerException
-context
がnull
である場合
-
AccessControlContext
public AccessControlContext(AccessControlContext acc, DomainCombiner combiner)指定されたAccessControlContext
およびDomainCombiner
を使って、新しいAccessControlContext
を作成します。 このコンストラクタにより、DomainCombiner
が、提供済みのAccessControlContext
に関連付けられます。- パラメータ:
acc
- 提供されたDomainCombiner
に関連付けられたAccessControlContext
。combiner
- 提供されたAccessControlContext
に関連付けられているDomainCombiner
。- 例外:
NullPointerException
- 指定されたcontext
がnull
である場合。SecurityException
- セキュリティ・マネージャがインストールされ、呼出し元が「createAccessControlContext」を持たない場合SecurityPermission
- 導入されたバージョン:
- 1.3
-
-
メソッドの詳細
-
getDomainCombiner
public DomainCombiner getDomainCombiner()このAccessControlContext
に関連付けられたDomainCombiner
を取得します。- 戻り値:
- この
AccessControlContext
に関連付けられているDomainCombiner
。存在しない場合はnull
。 - 例外:
SecurityException
- セキュリティ・マネージャがインストールされ、呼出し元が「getDomainCombiner」を持たない場合SecurityPermission
- 導入されたバージョン:
- 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のセットを持っているかどうかを調べます。- オーバーライド:
equals
、クラス:Object
- パラメータ:
obj
- このオブジェクトと等しいかどうかが判定されるオブジェクト。- 戻り値:
obj
がAccessControlContextで、このコンテキストと同じProtectionDomainのセットを持っている場合はtrue、そうでない場合はfalse。- 関連項目:
Object.hashCode()
、HashMap
-
hashCode
public int hashCode()このコンテキストのハッシュ・コード値を返します。 ハッシュ・コードを計算するには、コンテキストにあるすべての保護領域のハッシュ・コードの排他的論理和を求めます。- オーバーライド:
hashCode
、クラス:Object
- 戻り値:
- このコンテキストのハッシュ・コード値。
- 関連項目:
Object.equals(java.lang.Object)
,System.identityHashCode(java.lang.Object)
-