BBS水木清华站∶精华区
发信人: newzenith (丁丁...我要周游世界), 信区: Java
标 题: Re: 询问Apple访问本地文件?
发信站: BBS 水木清华站 (Sun Mar 21 13:37:25 1999)
【 在 Learnerboy ( dingding ) 的大作中提到: 】
∶ 本人目前用Java开发一个Internet应用,其中涉及到文件下载.
∶ 众所周知,Applet不能访问客户机本地文件.那么,如何用Java
∶ 实现用户在浏览器中进行文件下载呢?听说,签名Applet具有
∶ 本地访问能力,具体原理是什么?另外,还有其它方法吗?
∶ 望各位网友发表高见.
从JDK1.1开始,就提供了一种对JAR进行签名的机制,可以使经过签名认证的APPLET具有
与APPLICATION同等的权力(如SOCKET连接、本地文件访问等等)。使用JDK1.1的签名认
证机制是这样的:
JDK1.1中提供了一个Javakey程序,这个程序能完成如下功能:1.生成公私密钥对,2.生
成公钥证书,3.生成对JAR文件的签名。利用这些功能我们就能完成一个签名APPLET的全
套制作。首先,要生成签名者的一对密钥(如果对公钥体制不了解的可以去看看密码学方
面的入门知识),然后利用公钥产生一个公钥证书文件,并通过网络(或者其它方式传递
给需要运行APPLET的主机),由运行APPLET的主机决定是否信任这个签名者(注意,一旦
信任了这个签名者,以后由这个签名者的私钥签名的APPLET将在这台主机上拥有跟
APPLICATION一样的权限),接着将需要具备本地访问权限的APPLET的CLASS文件用JAR
包起来(不要告诉我你不会用JAR哦,很容易用的,基本跟TAR一样),并且用签名者的
私钥对这个新生成的JAR文件进行签名。最后,不要忘记,在HTML文件的APPLET TAG中加上
ARCHIVE=***.JAR,否则浏览器将找不到你的APPLET。整个过程就是这么简单,至于具体
的例子,精华区里有一篇文章说得很清楚。
另外,如果你使用的是JDK1.2的话,使用方式将有点不同。JDK1.2用keytool、jarsigner
取代了JAVAKEY,但是使用起来更加简单。而且,JDK1.2还引入了一种POLICY机制,使得
对applet甚至是APPLICATION的安全限制更加灵活。它可以指定APPLET拥有哪种权限,而
不是让APPLET一下子拥有所有的权限。比如,可以单独授权一个APPLET具有与某个指定的
IP地址的主机建立SOCKET连接的权限,或者访问本地某个目录下的指定文件的权限。所有
的POLICY的设置可以通过一个工具POLICYTOOL来完成,非常方便。使用这个工具甚至可以
让没有经过签名认证的APPLET也获得指定的权限(只要指定APPLET的URL地址就行了)。
最新版的Java Tutorial中有几个例子,很容易的说。
--
_/_/_/ _/_/_/
_/ _/ _/ _/
_/ _/ _/ _/
_/ _/ _/ _/
_/ _/ _/ _/
_/_/_/ _/_/_/ 外面的世界很精彩...
※ 修改:·newzenith 於 Mar 21 13:39:46 修改本文·[FROM: argo.zsu.edu.cn]
※ 来源:·BBS 水木清华站 bbs.net.tsinghua.edu.cn·[FROM: argo.zsu.edu.cn]
BBS水木清华站∶精华区