Applet数字签名,授予访问本地资源,读写权限设置

步骤一:将Applet Class打成Jar包
步骤二:生成证书及签名
1、keytool -genkey -keystore 7csky.store -alias 7csky
  这个命令用来产生一个密匙库,执行完毕后应该在当前目录中产生一个7csky.store的文件,这里的7csky是我自己定义的名字,你可以对它进行修改。另外在执行命令的时候还有提示你输入密匙库的密码,这里你一定要记住,否则后面要用的时候无法输入。

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

  3、 jarsigner -keystore 7csky.store MyApplet.jar 7csky
  这个命令用上面产生的证书将我们的jar文件进行了签名。

步骤三:新建一个策略文件,并把这些策略文件加入(修改文件)
      1.新建applet.policy的文件,其内容如下:
      keystore "http://192.168.200.35/JYDA/security/7csky.store","JKS";grant signedBy "pepper"{ permission java.io.FilePermission "<<ALL FILES>>", "read,write";};
      2、 修改${java.home}/jre/lib/security目录下的java.security,找到下面这两行:
  policy.url.1=file:${java.home}/lib/security/java.policy
  policy.url.2=file:${user.home}/.java.policy

  在下面添写第三行
  policy.url.3=http://192.168.200.35/JYDA/security/7csky.store  
完成这个修改后我们在前面创建的applet.policy文件才有效。

注意:
      在linux下的firefox中试了一下,发现有时firefox无法正常显示applet。发生这种情况的原因是由于firefox未安装jdk插件,读者可按如下的方法为linux版的firefox安装jdk插件:
    jdk插件的库文件是libjavaplugin_oji.so,这个文件在<JDK安装目录>/jre/plugin/i386/ns7目录中,其中ns7根据当前jdk版本不同而有所差异,但前两个字母都为ns。在linux下,jdk一般都安装在/usr/java目录中。
    找到
libjavaplugin_oji.so文件后,再进行<firefox的安装目录>/plugins目录中,使用如下的命令为libjavaplugin_oji.so文件添加一个符号链接:
ln -s <jdk安装目录>/jre/plugin/i386/ns7/libjavaplugin_oji.so
重启Firefox,再访问applet.jsp页面,就可以正常显示applet了。

另:在html页面中,用javascript调用applet的方法时,同样不能访问客户端本地文件。只有在applet内部才可以访问本地文件。
posted @ 2009-08-12 12:25  jamin  阅读(884)  评论(0编辑  收藏  举报