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

クラスSubjectDomainCombiner

  • すべての実装されたインタフェース:
    DomainCombiner


    public class SubjectDomainCombiner
    extends Object
    implements DomainCombiner
    SubjectDomainCombinerは、このSubjectDomainCombinerに関連付けられたSubjectのPrincipalを使用して、ProtectionDomainを更新します。
    導入されたバージョン:
    1.4
    • コンストラクタの詳細

      • SubjectDomainCombiner

        public SubjectDomainCombiner​(Subject subject)
        このSubjectDomainCombinerを、指定したSubjectと関連付けます。
        パラメータ:
        subject - このSubjectDomainCombinerに関連付けられるSubject
    • メソッドの詳細

      • getSubject

        public Subject getSubject​()
        このSubjectDomainCombinerに関連付けられたSubjectを取得します。
        戻り値:
        このSubjectDomainCombinerに関連付けられているSubject。このSubjectDomainCombinerに関連付けられているSubjectが存在しない場合はnull
        例外:
        SecurityException - 呼出し側に、このSubjectDomainCombinerに関連付けられたSubjectを取得するための権限がない場合。
      • combine

        public ProtectionDomain[] combine​(ProtectionDomain[] currentDomains,
                                          ProtectionDomain[] assignedDomains)
        このSubjectDomainCombinerに関連付けられたSubjectのPrincipalを使用して、関連するProtectionDomainsを更新します。

        新しいProtectionDomainインスタンスが、currentDomains配列の各非静的ProtectionDomain((staticPermissionsOnly() == false)に対して作成されます。 新しいProtectionDomainインスタンスは、currentDomains内の対応するProtectionDomainCodeSourcePermissionClassLoaderを使用して、および、このSubjectDomainCombinerに関連付けられたSubjectのPrincipalを使用して作成されます。 静的ProtectionDomainsはそのまま結合され、新しいインスタンスは作成されません。

        すべてのProtectionDomains (静的で新しくインスタンス化された)が新しい配列に結合されます。 assignedDomains配列のProtectionDomainがこの新しい配列に追加されて、結果が返されます。

        重複するProtectionDomainの削除などの最適化が行われる場合があります。 また、ProtectionDomainのキャッシュを許可できます。

        定義:
        combine、インタフェース: DomainCombiner
        パラメータ:
        currentDomains - 現在の実行Threadに関連付けられたProtectionDomain (最新の特権付きProtectionDomainまで)。 ProtectionDomainsは実行順にリストされ、最も最近実行されたProtectionDomainが配列の先頭に存在します。 実行中のThreadにProtectionDomainが関連付けられていない場合、このパラメータはnullになる可能性がある。
        assignedDomains - AccessController.doPrivileged(..., context)の呼び出しが発生した場合、親スレッドから継承したProtectionDomains、または特権付きcontextのProtectionDomainsが発生した場合このパラメータは、親スレッドまたは特権contextから継承されたProtectionDomainsがない場合はnullです。
        戻り値:
        変更されたProtectionDomainで構成される新規配列、またはnull