我在我們的(代碼簽名的)Java applet「訪問被拒絕(java.net.SocketPermission xxxx:443 connect_resolve」)中存在一個錯誤。我們有一個HTML「保存」 (通過javascript)applet的方法來保存一個文件,加載到applet,到web服務器上,經過一些廣泛的谷歌研究之後,我通過在doPrivileged()中包裝applet的save方法代碼來修復它。高興。Java Applet沙盒安全性,本地訪問與外部訪問
我想確認我徹底明白,原來的情況和我申請的解決方案(向後,我知道,但環顧四周並沒有讓我真正研究這個問題)。
請告訴我特異性目的令我困惑的是我們在我們的內部網絡的測試服務器上廣泛測試了我們的applet,並且直到我們試圖從我們網絡外部的客戶端機器上獲得javascript「保存」按鈕時纔會出現此錯誤。所以在這一點上,我只是做了一個有教育的猜測:這就是Java小程序沙箱機制的工作原理。
這是真的嗎?只要客戶端小應用程序從位於同一個域網絡中的客戶端機器訪問Web服務器資源,它就被認爲是在沙箱牆內?如果客戶端機器位於Web服務器的本地網絡外部,則小程序請求會被視爲在沙箱外部並且需要doPrivileged?或者在這裏有另一種解釋,我錯過了?
我一直無法在sun的文檔或通過谷歌找到任何明確證明或反駁我斷言的內容。從人與Java小程序更多的經驗,澄清是極大的讚賞
默認情況下,應用程序只應連接到從其下載的服務器。所以我想這就是爲什麼你需要一個特權的行動,但這只是一個猜測。 – biziclop 2011-01-31 21:40:54