Java 自签名小程序未获得完全权限

Java 自签名小程序未获得完全权限,java,security,permissions,applet,accesscontrolexception,Java,Security,Permissions,Applet,Accesscontrolexception,我也在谷歌上搜索了很多像和stackoverlow这样的链接,但仍然没有成功 要点很简单。Jar的签名使用: keytool -genkey -alias signFiles -keystore compstore -keypass bca321 -dname "cn=test" -storepass abc123 jarsigner -keystore compstore -storepass abc123 -keypass bca321 -signedjar SignedJar.jar Un

我也在谷歌上搜索了很多像和stackoverlow这样的链接,但仍然没有成功

要点很简单。Jar的签名使用:

keytool -genkey -alias signFiles -keystore compstore -keypass bca321 -dname "cn=test" -storepass abc123
jarsigner -keystore compstore -storepass abc123 -keypass bca321 -signedjar SignedJar.jar UnsignedJar.jar signFiles
它在本地机器上运行得很好。但当SignedJar.jar通过HTTPS像小程序一样使用时,即使用户接受IE或FF或Chrome证书-没有区别,它也会停止使用:

java.security.AccessControlException: access denied (javax.smartcardio.CardPermission Broadcom Corp Contacted SmartCard 0 connect)
    at java.security.AccessControlContext.checkPermission(Unknown Source)
    at java.security.AccessController.checkPermission(Unknown Source)
    at java.lang.SecurityManager.checkPermission(Unknown Source)
    at sun.security.smartcardio.TerminalImpl.connect(Unknown Source)
是的,它尝试读取插入到终端中的智能卡,并在调用connect时获得异常

是的,我也尝试过这种方法:

AccessController.doPrivileged(new PrivilegedAction() {
...
但是没有运气。那么陷阱在哪里呢

提前感谢,,
Kirill

我今天遇到了这个问题,java 1.7.0_11,使用自签名证书签名的小程序JAR添加到可信证书列表中。当我删除策略文件中授予小程序代码库所有权限的部分时,它就消失了。

在创建公钥/私钥、创建关联证书并对哪个小程序JAR与证书进行签名后,您应该为JAR中的每个文件创建一个哈希,并用私钥对其进行签名。这些散列、公钥和证书必须与JAR清单一起添加到JAR文件的META-INF目录中

以下是命令行:

$ jar -tf SignedApplet.jar

请参见

可能您需要创建一个包含以下权限授予的策略文件这只是我对其条目的猜测,您需要进一步研究如何授予CardPermission的权限…:授予{permission javax.smartcardio.CardPermission Broadcom Corp.联系智能卡0,connect;};你已经签署了所有的代码,包括库了吗?使用相同的签名,并向清单添加Trusted Only:true。