为了账号安全,请及时绑定邮箱和手机立即绑定

java安全策略不按预期工作,总是给AccessControlException

java安全策略不按预期工作,总是给AccessControlException

胡说叔叔 2022-03-10 15:52:32
首先,我有这个工作代码:import java.io.FileWriter;import java.io.IOException;public class TestPolicy {    public static void main(String[] args) {        FileWriter writer;        try {            writer = new FileWriter("testPolicy.txt");            writer.write("hello1");            writer.close();        } catch (IOException e) {            e.printStackTrace();        }    }}它运行良好D:\Documents\myproject\mynet\mytest\java\security\target\classes>java -classpath . TestPolic它将生成一个名为 [testPolicy.txt] 的新文件然后我添加了一个 ../../src/myPolicy.txt 内容:grant codeBase "file:D:\Documents\myproject\mynet\mytest\java\security\target\classes*" {    permission java.io.FilePermission "testPolicy.txt", "read,write";};我预计,只要我指定“读、写”权限,它也应该运行良好。但它运行异常:D:\Documents\myproject\mynet\mytest\java\security\target\classes>java -classpath . -Djava.security.manager -Djava.security.policy=../../src/myPolicy.txt TestPolicyException in thread "main" java.security.AccessControlException: access denied ("java.io.FilePermission" "testPolicy.txt" "write")        at java.security.AccessControlContext.checkPermission(Unknown Source)        at java.security.AccessController.checkPermission(Unknown Source)        at java.lang.SecurityManager.checkPermission(Unknown Source)        at java.lang.SecurityManager.checkWrite(Unknown Source)        at java.io.FileOutputStream.<init>(Unknown Source)        at java.io.FileOutputStream.<init>(Unknown Source)        at java.io.FileWriter.<init>(Unknown Source)        at TestPolicy.main(TestPolicy.java:8)我哪里出错了,如何解决?非常感谢。
查看完整描述

1 回答

?
阿晨1998

TA贡献2037条经验 获得超6个赞

在codeBase您的myPolicy.txt. 您可能还需要在“类”和“*”之间使用斜线。


根据PolicyFiles 文档:


注意:codeBase 值是一个 URL,因此应始终使用斜杠(绝不是反斜杠)作为目录分隔符,即使代码源实际上位于 Windows 系统上。因此,如果 Windows 系统上代码的源位置实际上是 C:\somepath\api\,则策略 codeBase 条目应如下所示:


grant codeBase "file:/C:/somepath/api/" {

    ...

};


查看完整回答
反对 回复 2022-03-10
  • 1 回答
  • 0 关注
  • 106 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信