當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


Java java.nio.file.attribute.AclEntry用法及代碼示例


此類檢查的 ACL 條目在 RFC 3530 中聲明的 ACL 模型上進行驗證:網絡文件係統,即第四協議的 (NFS) 版本,並且其中具有四個組件,其特征如下:

  • 此類組件正在確定條目是否允許或拒絕其訪問
  • 主成分通常被稱為“who”成分,是一個末端user-principal,類似於識別條目是否允許或拒絕訪問。
  • 權限部分組件是其權限內的一組
  • flags 組件是一組標誌,用於指示每個條目如何繼承和調用

用法:

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

該 ACL 條目全部創建為通過生成其構建器方法來使用關聯的 AclEntry.Builder 對象,即 ACL 條目經過驗證並且對於多個並發方法線程的使用是安全的。

它具有 AclEntry 對象的構建器,因為該 Builder 對象是在 AclEntry 類定義的 newBuilder 方法之一期間訪問的。這些 Builder 對象是預取的,對於在不驗證同步類型的情況下工作的多個 sub-concurrent 線程來說是不安全的

Nested Summary Present in Class

修飾符和類型 類別和說明
靜態類 AclEntry.Builder - 對象內 AclEntry 的構建器

Method Summary Present in Class

方法 說明
equals(Object ob) 比較此 ACL 條目中的這些相似對象以檢查它們是否相等
flags() 返回標誌組件的合並副本。
hashCode() 返回為這些 ACL 條目聲明的哈希碼值。
newBuilder() 建造新的建造者套裝。
newBuilder(AclEntry entry) 使用預取 ACL 條目的組件設置新的構建器。
permissions() 調用其權限組件集的副本。
principal() 返回主體的組件。
toString() 返回這些 ACL 條目的字符串分類
type() 返回這些 ACL 類型的條目。

Method Details Present in Class

A.newBuilder():設置一個新的構建器。它具有類型的初始值,並且其組件為空,並且具有權限和標誌組件的初始值在空集中。

用法:

public static AclEntry.Builder newBuilder()

返回類型:新創建的構建器

B. newBuilder():使用訪問該 ACL 條目的組件創建一個新的構建器。

用法:

public static AclEntry.Builder newBuilder(AclEntry entry)

Parameters: 條目,ACL條目

返回類型:新創建的構建器

C.toString():此字符串表示形式返回此 ACL 條目覆蓋此類對象中的 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<AclEntryFlag> 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<AclEntryPermission> 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());
                }
            }
        }
    }
}

輸出:



相關用法


注:本文由純淨天空篩選整理自khurpaderushi143大神的英文原創作品 java.nio.file.attribute.AclEntry Class in Java。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。