1
我有一个小程序,允许用户使用其个人证书签署文档。小程序已经签名,但是当它尝试加载密钥库时,我得到了与sunMSCAPI相关的访问被拒绝错误。它被引起的以下几行代码:如何在小程序中使用MSCAPI加载密钥库
store = KeyStore.getInstance("Windows-MY");
store.load(null, null);
据我了解小程序签名的,有签名过程后,没有额外的步骤,我需要通过(编辑策略文件和等)跳。我试图包装所有的小程序功能:
AccessController.doPrivileged(new PrivilegedAction() {
public Object run() {
etc...
但这并没有帮助。我已经扎根,并在各种论坛上发现一些评论,sunMSCAPI仅在JDK 6中可用...我已经得到了。我的想法已经过时,任何帮助都将不胜感激。
潜在的援助,这里的拒绝访问错误的堆栈跟踪:
java.security.AccessControlException: access denied (java.security.SecurityPermission authProvider.SunMSCAPI)
at java.security.AccessControlContext.checkPermission(Unknown Source)
at java.security.AccessController.checkPermission(Unknown Source)
at java.lang.SecurityManager.checkPermission(Unknown Source)
at sun.security.mscapi.KeyStore.engineLoad(KeyStore.java:736)
at sun.security.mscapi.KeyStore$MY.engineLoad(KeyStore.java:43)
at java.security.KeyStore.load(Unknown Source)
at com.bloop.signature.PKCS11.loadKeyStore(PKCS11.java:42)
at com.bloop.signature.PKCS11.sign(PKCS11.java:29)
at com.bloop.signature.applet.SignApplet.signDocument(SignApplet.java:103)
at com.bloop.signature.applet.SignApplet.access$200(SignApplet.java:19)
at com.bloop.signature.applet.SignApplet$1.run(SignApplet.java:64)
at java.lang.Thread.run(Unknown Source)