2011-04-05 29 views
1

爲什麼當我在本地主機上打開HTML頁面時,我的Java Applet不向我請求啓動權限?爲什麼我的applet不向我請求權限,而是拋出AccessControlException?

更重要的是,小程序啓動,但它什麼都不能做。其職責之一是與網頁連接。但事實並非如此。在控制檯我可以讀:

java.security.AccessControlException:訪問被拒絕(java.net.SocketPermission www.onet.pl:80連接,解決)

我想有一個問題我的Java的安全設置。

+2

「同源」策略意味着不受信任的代碼只能訪問它來自的主機(除非目標主機包含適當的'crossdomain.xml'文件)。 – 2011-04-05 12:52:39

回答

0

自從我編寫了最後一個小程序以來,我有一段時間了,但我認爲你可能需要在你的罐子上簽名。

+0

不,你誤解了我。我希望我的小程序像Web中的任何其他小程序一樣工作。當Java向我請求許可和小程序啓動時,我單擊「運行」。但在我的情況下,當我嘗試從我的本地主機啓動時,Java並未要求我獲得許可。 – Leez 2011-04-05 13:25:16

+0

@李茲:我想他理解你的要求。除非你的applet已經簽名,否則你不能要求額外的權限! – 2011-04-05 13:30:29

0

不受信任(即未簽名)applet的一般策略是,它們只允許(網絡方式)連接到它們加載的服務器。對於從文件系統本地加載的小程序,這意味着它們可以連接本地主機。

只有當小程序被簽名(但是如果沒有特殊的安全策略文件,用戶給予所有權限,或者小應用程序使用JNLP函數請求某些訪問),纔會要求用戶進行許可但這僅用於本地訪問) - 爲此,您需要最新的插件(1.6.0_10或更高版本)。

正如湯姆提到的,遠程服務器可以允許其他站點的小程序(以及其他動態網頁內容,如JavaScript,Flash等)通過cross domain policy file訪問他的服務器。不過,我不確定Java插件上的哪個版本實現了這一點。

相關問題