模块  java.base
软件包  java.security

Class ProtectionDomain


  • public class ProtectionDomain
    extends Object
    ProtectionDomain类封装了域的特征,该域包含一组类,这些类的实例在代表给定的Principal集执行时被授予一组权限。

    一组静态权限可以在构造时绑定到ProtectionDomain; 无论有效的策略如何,都会向域授予此类权限。 但是,为了支持动态安全策略,还可以构造ProtectionDomain,以便在检查权限时由当前Policy动态映射到一组权限。

    从以下版本开始:
    1.2
    • 构造方法详细信息

      • ProtectionDomain

        public ProtectionDomain​(CodeSource codesource,
                                PermissionCollection permissions)
        使用给定的CodeSource和Permissions创建新的ProtectionDomain。 如果权限对象不为null,则将在传入的Permissions对象上调用setReadOnly()

        授予此域的权限是静态的,即调用staticPermissionsOnly()方法返回true。 它们只包含传递给此构造函数的那些,并且不会查询当前的策略。

        参数
        codesource - 与此域关联的codesource
        permissions - 授予此域的权限
      • ProtectionDomain

        public ProtectionDomain​(CodeSource codesource,
                                PermissionCollection permissions,
                                ClassLoader classloader,
                                Principal[] principals)
        创建由给定CodeSource,Permissions,ClassLoader和Principal数组限定的新ProtectionDomain。 如果权限对象不为null,则将在传入的Permissions对象上调用setReadOnly()

        授予此域的权限是动态的,即调用staticPermissionsOnly()方法返回false。 它们包括传递给此构造函数的静态权限,以及在检查权限时由当前策略授予此域的任何权限。

        此构造函数通常由ClassLoadersDomainCombiners使用,它委派给Policy以主动关联授予此域的权限。 此构造函数为策略提供程序提供了扩充提供的PermissionCollection以反映策略更改的机会。

        参数
        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和当前Policy绑定的组合检查权限。

        参数
        perm - 要检查的Permission对象。
        结果
        如果此ProtectionDomain隐含 perm则返回true。
      • toString

        public String toString()
        将ProtectionDomain转换为String。
        重写:
        toString在课程 Object
        结果
        对象的字符串表示形式。