Java教程安全跟踪 - 更新java.security文件不起作用

时间:2015-06-02 18:53:04

标签: java security exception

我正在阅读Java Tutorial安全跟踪,​​但我仍然坚持“查看策略文件效果”课程(See the Policy File Effects lesson link。我可以让方法1工作。这让我觉得我没有' t错误我的策略和签名的jar文件。方法2,编辑java.security文件,无效。

我正在使用Java 7(安装在C:\ Program Files \ Java \ jdk1.7.0_67)上使用Windows 7。我没有.java.policy文件(虽然我确实试过这个)。

这是例外

$ java -Djava.security.manager -cp sCount.jar Count C:/tstsecdata/data
Exception in thread "main" java.security.AccessControlException: access denied ("java.io.FilePermission" "C:\tstsecdata\data" "read")
    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.checkRead(Unknown Source)
    at java.io.FileInputStream.<init>(Unknown Source)
    at java.io.FileInputStream.<init>(Unknown Source)
    at Count.main(Count.java:48)

我尝试了什么。

  1. 我注意到我安装了几个JDK。我卸载了所有,然后重新安装了jdk1.7.0_67。
  2. 我注意到安装了2个jre。一个是Java \ jdk1.7.0_61 \ jre。另一个是Java \ jre7。我在Oracle JDK installs two JREs?找到了解释。所以我编辑了两个java.security文件,并在每个文件中添加了以下行(在policy.url.2条目之后)。

    policy.url.3 =文件:/ C:/ tstsec / exampleraypolicy

  3. FWIW,这是政策文件:

    /* AUTOMATICALLY GENERATED ON Tue Jun 02 09:39:05 EDT 2015*/
    /* DO NOT EDIT */
    
    keystore "file:/C:/tstsec/exampleraystore", "jks";
    
    grant signedBy "susan" {
      permission java.io.FilePermission "C:\\tstsecdata\\*", "read";
    };
    
    1. 我尝试制作我编辑过的java.security文件的副本,并将其作为“.java.policy”放在我的/ Users /文件夹中。
    2. 我的工作站由IT部门管理,尽管我有管理员权限。是否有一些Windows 7政策搞砸了我?

0 个答案:

没有答案