finly

工作、读书、运动

  BlogJava :: 首页 :: 新随笔 :: 联系 :: 聚合  :: 管理 ::
  5 随笔 :: 0 文章 :: 3 评论 :: 0 Trackbacks
昨天真郁闷....部门老大给我提出了一种难于想象的需求,通常我们从网站上下载文件都有IE弹出框。
而他对我的要求是:不要弹出IE对话框,点按钮后直接把文件保存到本地。
当时即时晕倒,都不知道是什么客户来的,居然有这种需求。-_-!
综合考虑后,我决定用applet在客户端运行一段代码。在客户端里用apache的开源项目httpClient模拟http请求(如输入用户名密码登陆,浏览某个连接下载等)。由于要涉及到读写客户端的磁盘文件,所以在客户端运行程序的时候必定会抛出securityException。当时在这里折腾了很久,老是把注意力里集中在修改客户端的安全策略文件上。
事实上,有一种更好的办法,那就是对applet程序所依赖的jar包进行数字签名。
步骤如下:
打开命令行窗口,定位到c:/目录下。
1keytool -genkey -keystore pepper.store -alias pepper

  这个命令用来产生一个密匙库,执行完毕后应该在c:/中产生一个pepper.store的文件,这里的pepper是我自己的名字,你可以对它进行修改。另外在执行命令的时候还有提示你输入密匙库的密码,这里你一定要记住,否则后面要用的时候无法输入。

2
keytool -export -keystore pepper.store -alias pepper -file pepper.cert
  这个命令用来产生签名时所要用的证书,同样这里的pepper也可以换成你自己需要的名字。这个命令执行完后在c:/中产生一个pepper.cert的文件。

3
jarsigner -keystore pepper.store myapplet.jar pepper
  这个命令用上面产生的证书将我们的jar文件进行了签名。(myapplet.jar是我们项目中所依赖的jar包)

执行完以上三步之后,就已经完全可以了。而不需要像网上某些文章说的那样还要修改客户端的安全策略文件。
最后在页面上把applet标记加上
<applet code="Tasdf.class" CODEBASE = "." archive="myapplet.jar" width=30 height=15>
</applet>
posted on 2006-12-01 10:15 finly 阅读(1049) 评论(2)  编辑  收藏

评论

# re: 关于在applet中对jar包进行数字签名问题. 2007-12-24 16:01 fghfg
fghfgghfgh  回复  更多评论
  

# re: 关于在applet中对jar包进行数字签名问题.[未登录] 2010-01-28 11:40 lala
为啥我数字签名都做好了,还是不能运行呀?
  回复  更多评论
  


只有注册用户登录后才能发表评论。


网站导航: