我在网站上有一个已签名的小程序。因此,将出现Java安全性对话框,并且用户需要在applet工作之前向applet授予权限。我想做的是:
问题是,只要applet嵌入页面,就会出现安全对话框。我可以延迟嵌入,但是没有办法从applet本身检查它的权限,因为它需要在加载之前完成。
也许我可以加载一个无形运行的第二个普通applet,并检查权限。但是我该怎么做呢?是否有任何Java类可以检查客户端是否信任证书?
感谢。
答案 0 :(得分:0)
您可以以编程方式检查JAR文件的证书和签名,就像JVM在加载applet时一样。这不容易,但是,至少乍一看,你将不得不这样做:
使用隐藏的小程序下载您的JAR并验证其证书,例如applet viewer。您可以使用java.security.cert
包手动执行此操作。了解如何执行此操作的最佳方法是JarSigner
source code,尤其是verifyJar()
。类似的东西:
// download the JAR
URL url = new URL("jar:http://mywebsite.com/myjar.jar!/");
JarURLConnection jarConnection = (JarURLConnection)url.openConnection();
// get the certificates and other security stuff
CodeSigners[] codeSigners = jarConnection.getJarEntry().getCodeSigners();
Certificate[] certificates = jarConnection.getJarEntry().getCertificates();
// verify the signatures
// don't know the code, but you can analyze JarSigner example at http://download.oracle.com/javase/tutorial/security/toolfilex/rstep2.html
使用LiveConnect(可能是别的?)来设置一个cookie,这样你就知道“如果用户已经在之前的会话中允许了证书”。
我没想过这么多,所以可能有更好的方法。祝你好运,并回复!