此类检查的 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。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。