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

クラスProtectionDomain


  • public class ProtectionDomain
    extends Object
    ProtectionDomainクラスは、ドメインの属性をカプセル化し、与えられたPrincipalのセットのかわりに実行される場合に、そのインスタンスに対してアクセス権のセットが与えられるクラスのセットを含みます。

    アクセス権の静的セットは、構築されたときにProtectionDomainにバインドされています。そのようなアクセス権は、Policyに関係なくすべてドメインに与えられています。 しかし、動的なセキュリティ・ポリシーをサポートするには、アクセス権を確認するときは常に現在のPolicyによってアクセス権のセットに動的にマップされているようにProtectionDomainも構築します。

    導入されたバージョン:
    1.2
    • コンストラクタの詳細

      • ProtectionDomain

        public ProtectionDomain​(CodeSource codesource,
                                PermissionCollection permissions)
        指定されたCodeSourceとPermissionsで新規ProtectionDomainを作成します。 アクセス権オブジェクトがnullでない場合、setReadOnly()が渡されたPermissionsオブジェクトで呼び出されます。

        このドメインに付与される権限は静的です。つまり、staticPermissionsOnly()メソッドを呼び出すとtrueが返されます。 これらには、このコンストラクタに渡されたもののみが含まれ、現在のポリシーは参照されません。

        パラメータ:
        codesource - このドメインに関連したコード・ソース
        permissions - このドメインに与えられたアクセス権
      • ProtectionDomain

        public ProtectionDomain​(CodeSource codesource,
                                PermissionCollection permissions,
                                ClassLoader classloader,
                                Principal[] principals)
        指定されたCodeSource、Permissions、ClassLoader、およびPrincipals配列で新規ProtectionDomainを作成します。 アクセス権オブジェクトがnullでない場合、setReadOnly()が渡されたPermissionsオブジェクトで呼び出されます。

        このドメインに付与される権限は動的です。つまり、staticPermissionsOnly()メソッドを呼び出すとfalseが返されます。 これには、このコンストラクタに渡される静的権限と、権限がチェックされる時点で現在のポリシーによってこのドメインに付与される権限の両方が含まれます。

        通常、このコンストラクタはClassLoadersDomainCombinersによって使用されます。ClassLoaderとDomainCombinerは、このドメインに許可されたアクセス権にアクティブに関連付けるためにPolicyに委譲されます。 このコンストラクタでは、ポリシーの変更を反映する指定されたPermissionCollectionを拡張するため、Policyプロバイダに機会を提供します。

        パラメータ:
        codesource - このドメインに関連したCodeSource
        permissions - このドメインに与えられたアクセス権
        classloader - このドメインに関連したClassLoader
        principals - このドメインに関連付けられたPrincipalの配列。 この配列の内容は、後続の変更に影響されないようにコピーされる。
        導入されたバージョン:
        1.4
        関連項目:
        Policy.refresh(), Policy.getPermissions(ProtectionDomain)
    • メソッドの詳細

      • getCodeSource

        public final CodeSource getCodeSource()
        このドメインのCodeSourceを返します。
        戻り値:
        このドメインのCodeSource。nullになることもある。
        導入されたバージョン:
        1.2
      • getClassLoader

        public final ClassLoader getClassLoader()
        このドメインのClassLoaderを返します。
        戻り値:
        このドメインのClassLoader。nullになることもある。
        導入されたバージョン:
        1.4
      • getPrincipals

        public final Principal[] getPrincipals()
        このドメインの主体の配列を返します。
        戻り値:
        このドメインに対するnullでない原則の配列。 このメソッドが呼び出されるたびに新しい配列を返す。
        導入されたバージョン:
        1.4
      • staticPermissionsOnly

        public final boolean staticPermissionsOnly()
        このドメインに静的権限のみが含まれ、権限チェック時に現在のPolicyをチェックしない場合はtrueを返します。
        戻り値:
        このドメインに静的アクセス権のみが含まれている場合はtrue。
        導入されたバージョン:
        9
      • implies

        public boolean implies​(Permission perm)
        このProtectionDomainが、Permissionオブジェクトで表現されるアクセス権を包含するかどうかを判定します。

        評価されるアクセス権のセットは、ProtectionDomainがアクセス権の静的セットで構築されたか、あるいは動的にマップされたアクセス権のセットにバインドされているかによって変わります。

        staticPermissionsOnly()メソッドがtrueを返す場合、作成時に指定されたPermissionCollectionに対してのみ権限がチェックされます。

        それ以外の場合、作成時に指定されたPermissionCollectionと現在のポリシー・バインディングの組合せに対して権限がチェックされます。

        パラメータ:
        perm - チェックするPermissionオブジェクト。
        戻り値:
        permがこのProtectionDomainによって暗黙的に指定されている場合はtrue。
      • toString

        public String toString()
        ProtectionDomainをStringに変換します。
        オーバーライド:
        toString、クラスObject
        戻り値:
        このオブジェクトの文字列表現