finly

          工作、讀書、運(yùn)動(dòng)

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

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

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

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

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

          評(píng)論

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

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


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


          網(wǎng)站導(dǎo)航:
           
          主站蜘蛛池模板: 平顶山市| 宜昌市| 玛纳斯县| 东海县| 中超| 韶山市| 商洛市| 淮南市| 中方县| 宁乡县| 油尖旺区| 房产| 于田县| 灵台县| 漾濞| 阿坝县| 华容县| 舟山市| 昌图县| 大名县| 道孚县| 德兴市| 司法| 峡江县| 墨脱县| 凤阳县| 毕节市| 肇源县| 辉县市| 沙雅县| 浦城县| 梧州市| 大名县| 靖宇县| 三台县| 梁河县| 富宁县| 定边县| 眉山市| 肇庆市| 浦江县|