モジュール java.base
パッケージ java.security

インタフェースDomainCombiner

既知のすべての実装クラス:
SubjectDomainCombiner

@Deprecated(since="17", forRemoval=true) public interface DomainCombiner
削除予定のため非推奨: このAPI要素は、将来のバージョンで削除される可能性があります。
このクラスは、非推奨であり、将来のリリースで削除される可能性があります。「セキュリティ・マネージャ」と組み合わせて使用すると便利です。 したがって、このクラスも非推奨となり、削除される可能性があります。 Security Managerまたはこのクラスの交換はありません。
DomainCombinerでは、動的に現行のAccessControlContextに関連したProtectionDomainsを変更する手段を提供します。

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

combineメソッドには引数が2つあります。 最初の引数は、AccessController.doPrivilegedへの最新のコール以降、現在の実行スレッドからのProtectionDomainsの配列を表します。 doPrivilegedの呼出しが行われなかった場合、最初の引数には、現在の実行スレッドからのすべてのProtectionDomainsが含まれます。 第2引数は継承されたProtectionDomainsの配列を表します。この引数はnullの場合もあります。 ProtectionDomainsは、親スレッドまたは特権コンテキストから継承できます。 doPrivilegedの呼出しが行われなかった場合、2番目の引数には親スレッドから継承されたProtectionDomainsが含まれます。 doPrivilegedが1回以上呼び出され、最新の呼出しがdoPrivileged(action, context)である場合は、第2引数に特権付きコンテキストからのProtectionDomainsが含まれます。 最新の呼出しがdoPrivileged(action)である場合、特権付きコンテキストは存在せず、第2引数はnullになります。

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

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

導入されたバージョン:
1.3
関連項目: