モジュール 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に変換します。
        Overrides:
        toString 、クラス:  Object
        戻り値:
        このオブジェクトの文字列表現