JavaTM 2 Platform
Std. Ed. v1.3

java.security
インタフェース DomainCombiner


public interface DomainCombiner

DomainCombiner では、動的に現行の AccessControlContext に関連した ProtectionDomains を変更する手段を提供します。

DomainCombiner は、AccessControlContext の適切なコンストラクタにパラメータとして渡されます。次に、この新たに構築されたコンテキストは、AccessController.doPrivileged(..., context) メソッドに渡されて、指定されたコンテキストとそれに関連した DomainCombiner を現行の実行 Thread にバインドします。その後、AccessController.getContext または AccessController.checkPermission を呼び出すと、DomainCombiner.combine が呼び出されます。

combine メソッドの場合、2 つの引数を取ります。実行中の Thread の ProtectionDomains は、AccessController.doPrivileged の直前の呼び出しなので、配列内の最初の引数に渡されます。doPrivileged の呼び出しがない場合は、実行中の Thread からすべての ProtectionDomains が、最初の引数に渡されます。doPrivileged(..., context) の呼び出しが発生していない場合、その親 Thread から継承した ProtectionDomains は、2 番目の引数に渡されます。このような場合、特権コンテキストの ProtectionDomains が 2 番目の引数に渡されます。

combine メソッドでは、ProtectionDomains の 2 通りの入力配列を調べ、変更された ProtectionDomains を含む配置を 1 つ返します。最も単純な場合、combine メソッドは、2 つのスタックを 1 つに統合します。複雑になると、このメソッドは、ProtectionDomains の変更済みスタックを返します。変更には、新規 ProtectionDomains の追加、特定の ProtectionDomains の削除、または簡単に変更された既存の ProtectionDomains があります。ProtectionDomains に対する再順序付けとその他の最適化もまた許可されます。通常、combine メソッドは、DomainCombiner でカプセル化された情報に関するメソッドの変更を基にします。

AccessController.getContext メソッドは、組み合わされた ProtectionDomains のスタックを DomainCombiner から受け取った後、DomainCombiner と、組み合わされた ProtectionDomains の 2 つを持つ新規 AccessControlContext を返します。

関連項目:
AccessController, AccessControlContext

メソッドの概要
 ProtectionDomain[] combine(ProtectionDomain[] currentDomains, ProtectionDomain[] assignedDomains)
          指定された ProtectionDomains を変更または更新します。
 

メソッドの詳細

combine

public ProtectionDomain[] combine(ProtectionDomain[] currentDomains,
                                  ProtectionDomain[] assignedDomains)
指定された ProtectionDomains を変更または更新します。ProtectionDomains は、指定された ProtectionDomains に追加されたり、削除されたりすることがあります。ProtectionDomains はまた、再順序付けされることもあります。個別の ProtectionDomains の場合、Permissions の新規セットなどを使って変更されることがあります。

パラメータ:
currentDomains - 実行中の Thread に関連した ProtectionDomains は、最終特権付き ProtectionDomain によって異なる。ProtectionDomains は、最後に実行した ProtectionDomain を配列の先頭にして、実行された順で列挙される。実行中の Thread が関連した ProtectionDomains を持たない場合、このパラメータは null の可能性がある

assignedDomains - 親 Thread から継承した ProtectionDomains。AccessController.doPrivileged(..., context) が呼び出された場合は、特権付きコンテキストの ProtectionDomains。親 Thread または優先されたコンテキストから継承した ProtectionDomains がない場合、このパラメータは null の可能性がある
戻り値:
変更された ProtectionDomains で構成される新規配列、または null

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.