此類檢查的 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());
}
}
}
}
}
輸出:
相關用法
- Java java.nio.file.attribute.FileTime用法及代碼示例
- Java java.nio.file.FileStore用法及代碼示例
- Java java.nio.file.LinkPermission用法及代碼示例
- Java java.nio.file.spi.FileTypeDetector用法及代碼示例
- Java java.nio.file.SimpleFileVisitor用法及代碼示例
- Java java.nio.file.FileSystems用法及代碼示例
- Java java.nio.file.FileSystem用法及代碼示例
- Java java.nio.file.Paths用法及代碼示例
- Java java.nio.ByteBuffer用法及代碼示例
- Java java.nio.IntBuffer用法及代碼示例
- Java java.nio.FloatBuffer用法及代碼示例
- Java java.nio.ShortBuffer用法及代碼示例
- Java java.nio.DoubleBuffer用法及代碼示例
- Java java.nio.channels.spi.SelectorProvider用法及代碼示例
- Java java.nio.charset.CoderResult用法及代碼示例
- Java java.nio.charset.CodingErrorAction用法及代碼示例
- Java java.nio.channels.spi.AsynchronousChannelProvider用法及代碼示例
- Java java.nio.charset.CharsetEncoder用法及代碼示例
- Java java.nio.charset.Charset用法及代碼示例
- Java java.nio.LongBuffer用法及代碼示例
- Java java.nio.channels.Selector用法及代碼示例
- Java java.nio.ByteOrder用法及代碼示例
- Java java.nio.CharBuffer用法及代碼示例
- Java java.nio.Buffer用法及代碼示例
- Java java.net.SocketException用法及代碼示例
注:本文由純淨天空篩選整理自khurpaderushi143大神的英文原創作品 java.nio.file.attribute.AclEntry Class in Java。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。