繁体   English   中英

.java.policy文件和本地applet

[英].java.policy file and local applet

我正在使用Javascript与Java applet交互的HTML页面。 applet的HTML页面,javascript文件和.jar文件将本地部署到用户文件系统上的文件夹中。

(将此作为一个独立的Java应用程序,这里不是一个选项;由于各种原因,我不会在这里解释)。

applet需要做本地文件i / o。 因此,我试图调整用户的.java.policy文件中的设置以允许此操作。

我发现以下设置是唯一有效的设置:

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

这并不理想,因为它授予所有applet读取写入所有文件的权限。 当然,我更愿意隔离到特定的代码库。 但是我找不到有效的“grant codeBase”语法。

我试过了:

grant codeBase "file:/C:/Files/FileIOApplet/-" {
  permission java.io.FilePermission "<<ALL FILES>>", "read";
  permission java.io.FilePermission "<<ALL FILES>>", "write";
};

grant codeBase "file:///-" {
  permission java.io.FilePermission "<<ALL FILES>>", "read";
  permission java.io.FilePermission "<<ALL FILES>>", "write";
};

grant codeBase  "file:${user.home}/-"
{
  permission java.io.FilePermission "<<ALL FILES>>", "read";
  permission java.io.FilePermission "<<ALL FILES>>", "write";
};

这是使用此配置运行:

  • Firefox 3.6.10
  • Java 1.6更新25
  • Windows 7 64位

我在哪里设置这个.java.policy文件时出错?

我对Java世界非常生疏,尤其是与applet一起工作 - 所以我们非常感谢您的专业知识!

要在此处连接具有访问权限的Applet,请使用以下策略工具设置:

转到policyTool,您将在以下路径中找到它:

java->jdk1.3->bin->policyTool Application

出现Policy Tool窗口。
在Policy Tool窗口中,选择“Add Policy Entry”按钮。 这将带您进入Policy Entry窗口

输入CodeBase作为“你的java bin的文件:/路径”。 例如

CodeBase   file:/c:/java/jdk1.3/bin/

现在按“策略条目”窗口中的“添加权限”按钮。
这将带您进入“权限”窗口

从权限下拉列表框中选择“所有权限”。
然后单击“确定”。

现在再次按下Policy Entry窗口中的“Add Permission”按钮。

现在从权限下拉列表框中选择“选择”RunTimepermission。现在在Target Name下拉列表框中选择“accessClassInpackage”,在文本框中输入accessClassInpackage.sun.jdbc.odbc

现在点击“确定”。

现在单击“Policy Entry”窗口中的“done”。

现在,在Policy Entry窗口文件中 - > save将其保存在Java安装的“bin”中。 记住这个名字...比如说.. appletpermission'save'

现在您有一个用于访问的已创建策略文件

现在在命令提示符下编译您的java文件

javac programname.java

要运行程序,请在cmd提示符下键入以下内容:

appletviewer -J-Djava.security.policy=appletpermission programname.java

现在一切都完成了。

不要浪费你的语法时间,而是使用政策工具:

点击这里:政策工具

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM