【发布时间】:2013-09-07 15:16:53
【问题描述】:
我做了一个小程序,如果将权限添加到 java.policy 就可以运行(见下文)。
permission java.awt.AWTPermission "createRobot";
permission java.awt.AWTPermission "readDisplayPixels";
permission java.awt.AWTPermission "accessClipboard";
permission java.awt.AWTPermission "accessEventQueue";
permission java.awt.AWTPermission "showWindowWithoutWarningBanner";
否则java控制台会显示:
java.security.AccessControlException: 拒绝访问("java.awt.AWTPermission" "createRobot")
由于用户不想修改策略文件,如何以产品方式做到这一点?
另外,小程序已经被签名,下面的文件被放到服务器中。
ScreenShot.cer ScreenShot.store ScreenShot.jar ScreenShot.policy
HTML 标签:
<applet name="SnapShot" archive="ScreenShot.jar" codebase="." code="ScreenShot.class" width="1" height="1" mayscript="true">
<param name="cache_archive" value="ScreenShot.jar">
<param name="java_arguments" value="-Dsun.java2d.noddraw=true">
<param name="permissions" value="all-permissions">
</applet>
【问题讨论】:
-
“我已经完成了小程序签名” 这是否意味着您对小程序进行了数字签名? “..并将下面的文件放入服务器。” 需要在服务器上的这 4 个文件中唯一的文件是
myApplet.jar。其余的都是多余的。但只是注意到myApplet.jar和ScreenShot.jar之间的区别。描述这些事情时不要转述。是第一个名字还是第二个? -
这是一个错误;实际上,它应该是 ScreenShot.jar。我刚刚更正了。谢谢提醒
-
OK.. 再说一遍,这是否意味着您对小程序进行了数字签名?
-
是的,确实如此。但是 AWTPermission 仍然很糟糕
-
罐子有多大?你能把它上传到我可以下载的地方(检查数字签名)吗?