模块  java.base
软件包  java.security

Class Permission

  • 实现的所有接口
    SerializableGuard
    已知直接子类:
    AllPermissionBasicPermissionCardPermissionFilePermissionMBeanPermissionPrivateCredentialPermissionServicePermissionSocketPermissionUnresolvedPermissionURLPermission

    public abstract class Permission
    extends Object
    implements Guard, Serializable
    用于表示对系统资源的访问的抽象类。 所有权限都有一个名称(其解释取决于子类),以及用于定义特定Permission子类的语义的抽象函数。

    大多数Permission对象还包括一个“actions”列表,用于告知对象允许的操作。 例如,对于java.io.FilePermission对象,权限名称是文件(或目录)的路径名,并且操作列表(例如“读取,写入”)指定为指定文件(或对于文件中的文件)授予的操作。指定目录)。 动作列表对于不需要这样的列表的权限对象(例如java.lang.RuntimePermission是可选的; 你要么拥有命名权限(例如“system.exit”),要么你没有。

    每个子类必须实现的一个重要方法是比较权限的implies方法。 基本上,“权限p1意味着权限p2”意味着如果一个被授予权限p1,则自然地授予一个权限p2。 因此,这不是一个相等测试,而是更多的子集测试。

    权限对象类似于String对象,因为它们在创建后是不可变的。 子类不应提供可在创建权限后更改权限状态的方法。

    从以下版本开始:
    1.2
    另请参见:
    PermissionsPermissionCollectionSerialized Form
    • 构造方法详细信息

      • Permission

        public Permission​(String name)
        构造具有指定名称的权限。
        参数
        name - 正在创建的Permission对象的名称。
    • 方法详细信息

      • implies

        public abstract boolean implies​(Permission permission)
        检查指定权限的操作是否“隐含”此对象的操作。

        这必须由Permission的子类实现,因为它们是唯一可以在Permission对象上强加语义的。

        AccessController使用implies方法来确定被请求的权限是否被另一个已知在当前执行上下文中有效的权限所暗示。

        参数
        permission - 经过检查的许可。
        结果
        如果此对象隐含指定的权限,则返回true,否则返回false。
      • equals

        public abstract boolean equals​(Object obj)
        检查两个Permission对象是否相等。

        不要使用equals方法进行访问控制决策; 使用implies方法。

        重写:
        equals在课程 Object
        参数
        obj - 我们正在测试与此对象相等的对象。
        结果
        如果两个Permission对象都是等效的,则为true。
        另请参见:
        Object.hashCode()HashMap
      • hashCode

        public abstract int hashCode()
        返回此Permission对象的哈希码值。

        权限对象所需的hashCode行为如下:

        • 每当在执行Java应用程序期间多次在同一Permission对象上调用它时, hashCode方法必须始终返回相同的整数。 从应用程序的一次执行到同一应用程序的另一次执行,该整数不需要保持一致。
        • 如果两个Permission对象根据equals方法相等,则在两个Permission对象中的每一个上调用hashCode方法必须生成相同的整数结果。
        重写:
        hashCode在课程 Object
        结果
        此对象的哈希码值。
        另请参见:
        Object.equals(java.lang.Object)System.identityHashCode(java.lang.Object)
      • getName

        public final String getName()
        返回此Permission的名称。 例如,对于java.io.FilePermission ,名称将是路径名。
        结果
        此权限的名称。
      • getActions

        public abstract String getActions()
        以String形式返回操作。 这是抽象的,因此子类可以推迟创建String表示,直到需要它为止。 子类应始终以他们认为的规范形式返回操作。 例如,通过以下方法创建了两个FilePermission对象:
          perm1 = new FilePermission(p1,"read,write");
           perm2 = new FilePermission(p2,"write,read"); 
        当调用getActions方法时, getActions都返回“read,write”。
        结果
        本许可的行为。
      • newPermissionCollection

        public PermissionCollection newPermissionCollection()
        返回给定Permission对象的空PermissionCollection,如果未定义,则返回null。 如果需要将其权限存储在特定的PermissionCollection对象中,以便在调用PermissionCollection.implies方法时提供正确的语义,则Permission类的子类应覆盖此类。 如果返回null,则此方法的调用者可以自由地在他们选择的任何PermissionCollection中存储此类型的权限(使用Hashtable的一个,使用Vector的一个,等等)。
        结果
        此类Permission的新PermissionCollection对象,如果未定义,则返回null。
      • toString

        public String toString()
        返回描述此Permission的字符串。 约定是以下列格式指定类名,权限名和操作:'(“ClassName”“name”“actions”)'或'(“ClassName”“name”)'如果动作列表是null或空。
        重写:
        toString在课程 Object
        结果
        有关此权限的信息。