2011-03-04 59 views
0

全部 我已经签署了包括appletviewer.jar在内的所有jar文件。我正在运行最新版本的JDK。直到今天下午,我正在运行并成功查看小程序,但突然我发现这个异常。我不明白发生了什么... 请尽快帮助我。Applet权限被拒绝

exception: Permission denied: null. 
java.lang.SecurityException: Permission denied: null 
    at sun.plugin2.applet.Plugin2Manager$AppletExecutionRunnable.run(Unknown Source) 
    at java.lang.Thread.run(Unknown Source) 
Exception: java.lang.SecurityException: Permission denied: null 
Exception in thread "thread applet-applet.EmbeddedViewerApplet.class-3" java.lang.SecurityException: Permission denied: http://localhost:8080/ExtraCare/resources/appletviewer.jar 
    at sun.plugin.util.GrayBoxPainter.setProgressFilter(Unknown Source) 
    at sun.plugin2.applet.Plugin2Manager.setupGrayBoxPainter(Unknown Source) 
    at sun.plugin2.applet.Plugin2Manager.showAppletException(Unknown Source) 
    at sun.plugin2.applet.Plugin2Manager$AppletExecutionRunnable.run(Unknown Source) 
    at java.lang.Thread.run(Unknown Source) 

谢谢 米希尔Parekh的 +91 94266 21000。

+0

你使用任何VCS?如果是这样,你可以看看引入了什么变化。 – 2011-03-04 12:59:56

+0

您没有http URL上的小程序标记,以及文件URL上的代码,是吗? – 2011-03-04 13:21:14

回答

-1

您可能想要将您的呼叫包装在doPrivileged块中。事先,您可能想调用您想要调用的方法的checkPermission。 这里有两篇有用的文章。 http://download.oracle.com/javase/1.4.2/docs/api/java/security/AccessController.html

http://www.raditha.com/java/sandbox/unsigned.php

但是,如果你使用JNLP部署,System.setSecurityManager(空)应该可以解决你的问题,你将有你的小程序的更多特权,让你有效地躲避浏览器沙盒,没有什么麻烦。请记住,这样做不仅不是一种好的做法,而且实际上确实会将applet的用户暴露给恶意代码。

+0

清除安全管理器会删除流程中运行的所有代码的安全限制。您需要确保您的代码永远不会重新用于在需要安全性的进程中降低安全性。同样,doPrivileged的自由派洒水也可能会产生问题。 – 2011-03-04 13:23:18

+0

“但是,如果您使用jnlp部署,则System.setSecurityManager(null)应该可以解决您的问题,并且您将拥有更多的applet特权,..”。嵌入式applet和JWS启动应用程序的方式没有区别。在这种情况下工作。在调用System.setSecurityManager(null)之前,它们都必须是可信的,并且这样做会产生几乎相同的效果。 – 2011-03-04 13:35:40