finly

          工作、讀書、運動

            BlogJava :: 首頁 :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理 ::
            5 隨筆 :: 0 文章 :: 3 評論 :: 0 Trackbacks
          昨天真郁悶....部門老大給我提出了一種難于想象的需求,通常我們從網(wǎng)站上下載文件都有IE彈出框。
          而他對我的要求是:不要彈出IE對話框,點按鈕后直接把文件保存到本地。
          當(dāng)時即時暈倒,都不知道是什么客戶來的,居然有這種需求。-_-!
          綜合考慮后,我決定用applet在客戶端運行一段代碼。在客戶端里用apache的開源項目httpClient模擬http請求(如輸入用戶名密碼登陸,瀏覽某個連接下載等)。由于要涉及到讀寫客戶端的磁盤文件,所以在客戶端運行程序的時候必定會拋出securityException。當(dāng)時在這里折騰了很久,老是把注意力里集中在修改客戶端的安全策略文件上。
          事實上,有一種更好的辦法,那就是對applet程序所依賴的jar包進行數(shù)字簽名。
          步驟如下:
          打開命令行窗口,定位到c:/目錄下。
          1、keytool -genkey -keystore pepper.store -alias pepper

            這個命令用來產(chǎn)生一個密匙庫,執(zhí)行完畢后應(yīng)該在c:/中產(chǎn)生一個pepper.store的文件,這里的pepper是我自己的名字,你可以對它進行修改。另外在執(zhí)行命令的時候還有提示你輸入密匙庫的密碼,這里你一定要記住,否則后面要用的時候無法輸入。

          2、
          keytool -export -keystore pepper.store -alias pepper -file pepper.cert
            這個命令用來產(chǎn)生簽名時所要用的證書,同樣這里的pepper也可以換成你自己需要的名字。這個命令執(zhí)行完后在c:/中產(chǎn)生一個pepper.cert的文件。

          3
          jarsigner -keystore pepper.store myapplet.jar pepper
            這個命令用上面產(chǎn)生的證書將我們的jar文件進行了簽名。(myapplet.jar是我們項目中所依賴的jar包)

          執(zhí)行完以上三步之后,就已經(jīng)完全可以了。而不需要像網(wǎng)上某些文章說的那樣還要修改客戶端的安全策略文件。
          最后在頁面上把applet標(biāo)記加上
          <applet code="Tasdf.class" CODEBASE = "." archive="myapplet.jar" width=30 height=15>
          </applet>
          posted on 2006-12-01 10:15 finly 閱讀(1067) 評論(2)  編輯  收藏

          評論

          # re: 關(guān)于在applet中對jar包進行數(shù)字簽名問題. 2007-12-24 16:01 fghfg
          fghfgghfgh  回復(fù)  更多評論
            

          # re: 關(guān)于在applet中對jar包進行數(shù)字簽名問題.[未登錄] 2010-01-28 11:40 lala
          為啥我數(shù)字簽名都做好了,還是不能運行呀?
            回復(fù)  更多評論
            


          只有注冊用戶登錄后才能發(fā)表評論。


          網(wǎng)站導(dǎo)航:
           
          主站蜘蛛池模板: 兴海县| 兰考县| 罗山县| 金昌市| 凭祥市| 临潭县| 柳林县| 邹城市| 布尔津县| 满城县| 莆田市| 长宁区| 黑龙江省| 陵川县| 本溪市| 深泽县| 门源| 灵武市| 镇康县| 无锡市| 洛南县| 星子县| 峨山| 奉节县| 平泉县| 万盛区| 哈密市| 华安县| 织金县| 奈曼旗| 江津市| 会宁县| 兖州市| 从江县| 永平县| 博湖县| 靖边县| 兴文县| 大英县| 深圳市| 墨脱县|