将签名的Applet与策略文件一起使用的问题

时间:2011-03-03 18:23:42

标签: java applet policy signed

我的applet的.java.policy条目有问题。

我会尝试使用applet创建文件夹和文件。我已经签署了我的jar并在$ {user.home} /.java.policy文件中添加了以下行:

grant {
  permission java.io.FilePermission "<<ALL FILES>>", "read";
  permission java.io.FilePermission "<<ALL FILES>>", "write";
};

使用这些添加的行,我的applet效果很好,但这不是一个好的样式,因为任何地方的每个jar都会成为文件权限

在oracle页面上是将codeBase设置为指定applet.jar并将signedBy(jar文件已签名的别名)设置为大权限的示例。

我已多次尝试过,但它不起作用。

我试过的代码:

grant codeBase "http://www.wkmovies.de/appletDemo/-" {
  permission java.io.FilePermission "<<ALL FILES>>", "read";
  permission java.io.FilePermission "<<ALL FILES>>", "write";
};

grant signedBy "AKlettke" {
  permission java.io.FilePermission "<<ALL FILES>>", "read";
  permission java.io.FilePermission "<<ALL FILES>>", "write";
};

我已将此示例上传到:www.wkmovies.de/appletDemo/index.html

如何设置策略文件,我的applet可以使用?


这里我的代码剪辑: HTML:

<a href="javascript:document.applet1.createFolder();">
  Create Folder at C:\\Temp
</a>
<applet name="applet1" id="applet1" width="0" height="0" alt=""
  archive="applets/Demo.jar,applets/lib/commons-lang-2.4.jar" 
  code="demo.FolderCreator.class">
</applet>

FolderCreator类:

try {
  File f = new File("C:\\temp");
  f.mkdir();
  JOptionPane.showMessageDialog(null, "folder created",
    "successfull", JOptionPane.INFORMATION_MESSAGE);
} catch (Exception e) {
  e.printStackTrace();
  JOptionPane.showMessageDialog(null, e.getMessage(),
    e.getClass().getName(), JOptionPane.ERROR_MESSAGE);
}

(JDK1.6.0_23,Firefox 3.0.19,WinXP 32bit)

1 个答案:

答案 0 :(得分:0)