gpt4 book ai didi

Java 策略文件 - 拒绝对代码库的权限

转载 作者:搜寻专家 更新时间:2023-11-01 01:02:31 33 4
gpt4 key购买 nike

在 Java 策略文件中,grant codeBase 语法指定应授予哪个代码库哪些权限。例如,

grant codeBase "file:/C:/abc.jar" { permission java.security.AllPermission; };

授予 AllPermission 到 abc.jar 中的代码

以类似的方式,有没有办法拒绝特定语法的权限?像这样:

deny codeBase "file:/C:/def.jar" { permission java.io.FilePermission; };

以便 def.jar 中的代码获得除 FilePermission 之外的所有其他权限?

这可能吗?

我知道这可以使用 SecurityManager 类轻松完成,但我只想知道仅使用策略文件是否可行。

最佳答案

我意识到这几乎晚了一年,但我想我正在尝试做类似的事情。

有一种方法可以设置运行时权限,这样 Java 就不会授予全局权限。然后您可以仅指定您希望为您的应用授予的权限。关键是使用以下选项运行您的应用。

java -Djava.security.manager -Djava.security.policy==policyFile.txt MyClass

注意双等号 -Djava.security.policy==policyFile.txt。双等号 == 表示使用命名文件中的权限,而不是单个等号 -Djava.security.policy=policyFile.txt 这意味着除了继承的全局权限之外还使用这些权限。

然后创建一个排除您要拒绝的权限的策略文件:

// policyFile.txt
grant codeBase "file:/C:/abc.jar" {

// list of permissions minus the ones you want to deny
// for example, the following would give the application
// ONLY AudioPermission and AWTPermission. Other
// permissions such as java.io.FilePermission would be
// denied.

permission javax.sound.sampled.AudioPermission;
permission java.awt.AWTPermission;

}

关于Java 策略文件 - 拒绝对代码库的权限,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5003565/

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