【发布时间】:2012-12-17 22:10:08
【问题描述】:
我在浏览器中嵌入了一个小程序。在小程序init() 方法中,我有以下代码:
Toolkit.getDefaultToolkit().addAWTEventListener(new AWTEventListener() {
public void eventDispatched(AWTEvent event) {
if(event instanceof MouseEvent){
MouseEvent evt = (MouseEvent)event;
if(evt.getID() == MouseEvent.MOUSE_CLICKED){
System.out.println("Mouse Clicked");
}
}
}
}, AWTEvent.MOUSE_EVENT_MASK);
加载小程序时出现错误:
access denied ("java.awt.AWTPermission" "listenToAllAWTEvents")
政策
现在在我的策略文件(下面的路径)中,我在底部附加了:
权限
grant {
permission java.security.AllPermission;
};
路径
C:/Program Files/Java/jdk1.7.0_10/jre/lib/security/java.policy
但我仍然遇到同样的访问被拒绝问题。
任何人都知道为什么即使我授予 java.policy 文件中的所有权限,我仍然会收到该错误?
【问题讨论】:
-
“我有以下代码:” 为什么?你想达到什么目的? “现在在我的“..java.policy”中不要弄乱策略文件,它们不是部署具有扩展权限的小程序的实用方法。小程序需要进行数字签名,如果它是做这样的事情。
-
我只是想添加我自己的全局鼠标监听器。这将避免让我为每个单独的组件编写鼠标侦听器。
-
作为最终用户,我不愿意仅仅为了从同一 JVM 中的所有小程序获取事件而允许任何人扩展权限。对小程序中的组件进行递归调用并添加侦听器,或者更好的是,查看
ActionAPI 和键绑定之类的内容。 -
感谢该链接,它现在可以使用了。我正在修改错误的 java.policy 文件。我同意应该签署小程序,但这是我们目前所拥有的。此外,此小程序部署在用户很少的内部网络中。我还将权限范围缩小到“listenToAllAWTEvents”。
标签: java swing security applet awt