gpt4 book ai didi

java - AccessController.checkPermission 的奇怪行为

转载 作者:太空宇宙 更新时间:2023-11-04 06:49:48 24 4
gpt4 key购买 nike

我正在尝试了解Java的权限模型。我尝试了这个示例代码:

public static void main(String[] args) {
File file = new File("/etc/passwd");
try (BufferedReader reader = new BufferedReader(new FileReader(file));) {
reader.lines().forEach(s -> System.out.println(s));
} catch (IOException e) {
e.printStackTrace();
}
FilePermission perm = new FilePermission("/etc/passwd", "read");
AccessController.checkPermission(perm); // throws Exception
}

这可以很好地打印 /etc/passwd 的内容,但最后会抛出异常:


线程“main”中的异常 java.security.AccessControlException:访问被拒绝(“java.io.FilePermission”“”“read”)

为什么文件读取工作正常,但权限检查却给出负面结果?

最佳答案

可能是因为 JVM 没有配置 SecurityManager。如果没有配置 SecurityManager,将不会进行 AccessController 调用。

http://docs.oracle.com/javase/8/docs/technotes/guides/security/spec/security-spec.doc6.html#a19349

关于java - AccessController.checkPermission 的奇怪行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23476145/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com