
在项目中使用APPLET打印. 我在实施过程中遇到了一些问题,总结如下.
首先,对Applet进行数字签名,授予对本地资源的访问权限,并设置读写权限.
第1步: 将Applet类放入Jar包中
jar -cvf MyApplet.jar .
第2步: 生成证书和签名

1、keytool -genkey -keystore 7csky.store -alias 7csky此命令用于生成密钥库. 执行后,应在当前目录中生成一个7csky.store文件. 这是我自己的名字7csky. 您可以修改它. 另外,执行命令时,系统会提示您输入密钥库的密码. 您必须在这里记住它,否则以后想要使用它时将无法输入.
2、keytool -export -keystore 7csky.store -alias 7csky -file 7csky.cert
此命令用于生成用于签名的证书. 同样,此处的7csky也可以用您自己的名字替换. 执行此命令后,将在当前目录中生成一个7csky.cert文件.
3、 jarsigner -keystore 7csky.store MyApplet.jar 7csky
此命令使用上面生成的证书对我们的jar文件进行签名.
第3步: 创建一个新的策略文件,然后添加这些策略文件(修改文件)

1. 使用以下内容创建一个新的applet.policy文件:
keystore "http://192.168.200.35/JYDA/security/7csky.store","JKS";
grant signedBy "7csky"{ permission java.io.FilePermission "<<ALL FILES>>", "read,write";};
已通过“ 7csky”签署{permission java.io.FilePermission“ <<所有文件>>”,“读,写”;};
表示将文件系统中所有文件的读写权限授予当前已签名的APPLET.
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文件仅在完成此修改后才有效.

此外applet数字签名,使用APPLET进行打印时,即使APPLET已签名,某些浏览器仍会弹出警告框,提示APPLET请求打印机操作. 您需要将以下配置添加到策略文件.
permission java.lang.RuntimePermission "queuePrintJob"; permission java.net.SocketPermission "127.0.0.1:1024", "listen,connect";
注意:
在Linux下的firefox中尝试一下,发现有时firefox无法正常显示applet. 发生这种情况的原因是因为firefox中未安装jdk插件,读者可以按以下方式为Linux版本的firefox安装jdk插件:
jdk插件的库文件为libjavaplugin_oji.so,此文件位于
找到libjavaplugin_oji.so文件后,转到
ln -s
重新启动Firefox,然后访问applet.jsp页面,该applet可以正常显示.
也: 当在html页面中使用javascript调用applet方法时applet数字签名,也无法访问客户端本地文件. 本地文件只能在applet中访问.
本文来自电脑杂谈,转载请注明本文网址:
https://www.pc-fly.com/a/jisuanjixue/article-159755-1.html
此后
中国应该实行