轉自:http://100air.iteye.com/blog/52946
用Applet寫的java小程式如果沒有經過簽名,那麼訪問用戶端程式下載後會受到安全限制;沙箱機制對Applet的安全性限制在瀏覽器或者appletviewer中運行遠程主機上存放的Applet時,Java VM認為它是不可信任的,將其置於所謂sandbox的保護之下,在這樣的情況下Applet的運行受到下面的限制
:
a) Applet不能讀寫用戶端主機上的檔案
b) Applet不能執行JCE/JCA中的addProvider操作
c) 在進行網路連接時Applet只能與提供它的伺服器建立串連
d) Applet在事件捕獲、讀取系統資訊等其他方面受到限制
e) 在Netscape瀏覽器中,不提供java.security.*的支援,在IE瀏覽器中對Applet的運行做了比appletviewer中更加高的限制
怎樣對java小程式簽名受到很多人的關注,網上也有這些方面可供參考的文檔,但都不是完整,在這裡我給出一份可具體操作的文檔,希望能給大家一些協助。 情境:test.jar:內含待簽名的java小程式 結果:簽名後,用戶端能自動下載java小程式,且java小程式能訪問用戶端的任何資源
步驟:
(1)將java小程式打包
jar cvf test.jar test.class
(2)產生名為chinani.store的密鑰庫,別名為chinani
keytool -genkey -keystore chinani.store -alias chinani
密碼:123456 (根據需要自己輸入) 以下根據需要輸入,最後確認:y
(3)匯出chinani.cer數位憑證
keytool -export -keystore chinani.store -alias chinani -file chinani.cer
密碼:123456 (根據需要自己輸入)
(4)對test.jar檔案進行簽名
jarsigner -keystore chinani.store test.jar chinani
密碼:123456 (根據需要自己輸入)
最後寫一個html檔案,運行此檔案即可自動下載安裝運行java小程式HTML檔案內容如下:
<applet code=Test
archive="Test.jar"
width=320 height=300>
</applet>