📜  Java.nio.file.attribute.AclEntry Java中的类

📅  最后修改于: 2022-05-13 01:54:41.168000             🧑  作者: Mango

Java.nio.file.attribute.AclEntry Java中的类

此类检查ACL 条目正在验证 RFC 3530 中声明的 ACL 模型:网络文件系统,即第四协议的 (NFS) 版本,其中包含四个组件,如下特征:

  • 这种类型的组件正在确定条目是否允许或拒绝其访问
  • 主体组件通常称为“谁”组件,是一个最终用户主体,类似于识别是否允许或拒绝访问
  • 权限部分组件是其权限范围内的一组
  • flags 组件是一组标志,用于指示每个条目如何继承和调用

句法:

public final class java.nio.file.attribute.AclEntry 
extends Object

此 ACL 条目都是通过生成其构建器方法创建的,以使用关联的 AclEntry.Builder 对象,即 ACL 条目经过验证并且对于多个并发方法线程的使用是安全的。

它具有 AclEntry 对象的构建器,因为在其上的 AclEntry 类定义的 newBuilder 方法之一期间访问此 Builder 对象。这些 Builder 对象是预取的,对于多个子并发线程使用而不验证同步类型是不安全的

课堂上的嵌套摘要

Modifier and TypeClass and Description
static class  AclEntry.Builder – A builder of AclEntry within the objects

课堂上的方法总结

 MethodDescription
equals(Object ob)Comparing these similar objects within this ACL entry for checking they are equal or not
flags()Returns a merged copy of the flag’s components.
 hashCode()Returning the hash-code value declared for these ACL entries.
newBuilder()Constructing a new builder sets.
newBuilder(AclEntry entry)Sets a new builder with the components of prefetching ACL entries.
permissions()invoking a copy of the sets of permissions component of it.
principal()Returning the principal’s components.
toString()Returning the string classification of these ACL entries
type()Returning these ACL types of entries.

类中的方法详细信息

A. newBuilder():设置一个新的builder。它具有类型的初始值,其组件为空,并且具有权限和标志的初始值,组件位于空集中。

句法:

public static AclEntry.Builder newBuilder()

返回类型:新创建的构建器

B. newBuilder():使用访问该 ACL 条目的组件创建一个新构建器。

句法:

public static AclEntry.Builder newBuilder(AclEntry entry)

参数: Entry,一个ACL条目

返回类型:新创建的构建器

C. toString():这个字符串表示正在返回这个 ACL 条目覆盖在这个类 Objects 中覆盖 toString

句法:

public String toString()

返回类型:设置该条目的字符串分类

D. type():设置ACL及其条目类型

句法:

public AclEntryType type()

E. principal():创建主体的组件

句法:

public UserPrincipal principal()

F. permissions():返回条目的预取副本,因为具有集合的 ACL 权限组件是权限的修改副本

句法:

public Set< AclEntryPermission > permissions() 

G. flags():返回标志组件的预取副本,返回的集合是标志的修改副本。

句法:

public Set flags()

例子:

Java
// Java Program to Illustrate Syntax and Usage of AclEntry
// Class present inside java.nio.file.attribute Package
// through its classes and methods
 
public void Myserver(AclEntryPermission mode)
    throws AccessDeniedException
{
 
    UserPrincipal currentUser
        = this.attributes.getCurrentUser();
    GroupPrincipal currentGroup
        = this.attributes.getCurrentGroup();
 
    for (AclEntry entry : this.acl) {
 
        UserPrincipal principal = entry.principal();
 
        if (principal.equals(currentUser)
            || principal.equals(currentGroup)) {
 
            Set sets permissions
                = entry.permissions();
            boolean applies = permissions.contains(mode);
            // type(); is used
            AclEntryType type = entry.type();
 
            if (applies) {
                if (type == ALLOW) {
                    return system.out.println(
                        "message = Hello GFG Readers !");
                }
 
                if (type == DENY) {
 
                    // to.String() is used
                    throw new AccessDeniedException(
                        this.path.toString());
                }
            }
        }
    }
}


输出: