2011-03-04 101 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