Module  java.base
软件包  java.security

Class ProtectionDomain



  • public class ProtectionDomain
    extends Object
    ProtectionDomain类封装了一个域的特性,该域包含一组类,当代表一组给定的主体执行时,该类的实例被授予一组权限。

    一个静态权限集可以在构建时绑定到一个ProtectionDomain; 不管有效的政策如何,这种权限都被授予域。 但是,为了支持动态安全策略,还可以构建一个ProtectionDomain,使得当检查权限时,它将被动态映射到当前策略的一组权限。

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

      • ProtectionDomain

        public ProtectionDomain​(CodeSource codesource,
                                PermissionCollection permissions)
        使用给定的CodeSource和权限创建一个新的ProtectionDomain。 如果权限对象不为空,那么将在传入的Permissions对象中调用setReadOnly()

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

        参数
        codesource - 与该域相关联的代码源
        permissions - 授予此域的权限
      • ProtectionDomain

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

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

        此构造函数通常由ClassLoadersDomainCombiners使用, 代理Policy以主动关联授予此域的权限。 此构造函数为策略提供者提供了增加提供的PermissionCollection以反映策略更改的机会。

        参数
        codesource - 与此域相关联的CodeSource
        permissions - 授予此域的权限
        classloader - 与此域相关联的ClassLoader
        principals - 与此域相关联的主体数组。 复制数组的内容以防止后续修改。
        从以下版本开始:
        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​()
        返回此域的主体数组。
        结果
        此域的一个非空数组的主体。 每次调用此方法时都会返回一个新数组。
        从以下版本开始:
        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 - 要检查的权限对象。
        结果
        如果此ProtectionDomain隐含有 perm则为true。
      • toString

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