我正在尝试解决一个问题,因为签名的jars无法在appletviewer下工作。我的主要目标是在浏览器之外运行它,所以我尝试使用appletviewer -如果您有其他建议,请告诉我。
以下是背景:
问题是:
而且,虽然中间签名证书(上面的yyy)不存在,根签名证书(zzz -或alias1)是:
$ keytool -list -v -keystore /etc/ssl/certs/java/cacerts -storepass changeit|grep alias1
alias1, Mmm d, yyyy, trustedCertEntry,运行此命令:
$ appletviewer myhtml.html给予:
Caused by: java.security.AccessControlException: access denied (java.lang.RuntimePermission preferences)问题集1:
由于不确定上面的内容,我尝试将证书添加到另一个名为cacerts2的本地文件中。我可以证实:
请注意,现在输出中存在中间别名(yyy -或alias2),并针对alias1和alias2进行了验证。像这样运行appletviewer:
$ appletviewer -J-Djavax.net.ssl.trustStore=cacerts2 -J-Djavax.net.ssl.trustStorePassword=changeit myhtml.html仍然会导致同样的异常。
问题集2:
我尝试的第三件事是创建这样的策略文件(在mypolicy.policy中):
keystore "cacerts2";
// Tried with this and without the next line:
//keystorePasswordURL "cacerts.pass";
// where file cacerts.pass has only "changeit" / "changeit\n" in it (tried both)
// Tried the following three:
grant signedBy "alias1" {
//grant signedBy "alias2" {
//grant {
permission java.lang.RuntimePermission "preferences";
};像这样跑:
$ appletviewer -J-Djava.security.policy=mypolicy.policy myhtml.html就像这样:
$ appletviewer -J-Djavax.net.ssl.trustStore=cacerts2 -J-Djavax.net.ssl.trustStorePassword=changeit -J-Djava.security.policy=mypolicy.policy myhtml.html结果:
问题集3:
发布于 2012-01-13 00:47:53
我的主要目标是在浏览器之外运行它。
使用Java Web Start,它可以在大约1.2天内启动小程序自由浮动。(或将代码转换为框架。)
如果这主要是测试,您可以尝试[医]苹果。从那时起,我就没有时间为它实现一个沙箱(因此,即使是未签名的applet代码也会表现得好像它是可信的)。
AppletViewer过去常常在没有安全沙箱的情况下启动applets,即使它们没有签名.现在它是相反的,有一个沙箱,没有办法让它接受签名的代码作为信任!
IDE似乎将策略文件应用于查看器,以使其在用户配置IDE时发挥作用。
https://stackoverflow.com/questions/8844045
复制相似问题